---
title: aclrtSynchronizeDeviceWithTimeout
description: "| 产品 | 是否支持 |"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/aclcppdevg_03_0057.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/aclcppdevg_03_0057.html
indexId: 5a310ff5e4fdfbf29c45c5ccb69cd8a89f8e5429b4f6a967da60ad39d07bdea768
---
# aclrtSynchronizeDeviceWithTimeout

#### 产品支持情况

| 产品 | 是否支持 |
| --- | --- |
| Atlas 350 加速卡 | √ |
| Atlas A3 训练系列产品 / Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品 / Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |


#### 功能说明

阻塞当前线程，直到与当前线程绑定的Context所对应的Device完成运算。该接口是在aclrtSynchronizeDevice接口基础上进行了增强，支持用户设置超时时间，当应用程序异常时可根据所设置的超时时间自行退出，超时退出时本接口返回ACL_ERROR_RT_STREAM_SYNC_TIMEOUT。

多Device场景下，调用该接口等待的是当前Context对应的Device。


#### 函数原型

```
aclError aclrtSynchronizeDeviceWithTimeout(int32_t timeout)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| timeout | 输入 | 接口的超时时间。 取值说明如下： \-1：表示永久等待，和接口aclrtSynchronizeDevice功能一样； >0：配置具体的超时时间，单位是毫秒。 |


#### 返回值说明

返回0表示成功，返回其他值表示失败，请参见aclError。
