Skip to main content

aclrtResetDevice

aclrtGetDeviceSatMode

函数功能

查询当前Context对应的Device的浮点计算结果输出模式,同步接口。

Atlas 200/500 A2推理产品,不支持该接口。

函数原型

aclError aclrtGetDeviceSatMode(aclrtFloatOverflowMode *mode)

参数说明

参数名输入/输出说明
mode输出获取浮点计算结果输出模式。

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: 系统配置

aclrtSetDevice

函数功能

指定当前进程或线程中用于运算的Device,同时隐式创建默认Context。同步接口。

对于Atlas 200/500 A2推理产品,该默认Context中包含1个默认Stream。

约束说明

如果多次调用aclrtSetDevice接口而不调用aclrtResetDevice接口释放本进程使用的Device资源,功能上不会有问题,因为在进程退出时也会释放本进程使用的Device资源。建议aclrtSetDevice接口和aclrtResetDevice接口配对使用,在不使用Device上资源时,通过调用aclrtResetDevice接口及时释放本进程使用的Device资源。

支持以下使用场景:

  • 在不同进程或线程中支持调用aclrtSetDevice接口指定同一个Device用于运算。在同一个进程中的多个线程中,如果调用aclrtSetDevice接口指定同一个Device用于运算,这时隐式创建的默认Context是同一个。
  • 多Device场景下,可在进程中通过aclrtSetDevice接口切换到其它Device。但利用Context切换(调用aclrtSetCurrentContext接口)来切换Device,比使用aclrtSetDevice接口效率高。

函数原型

aclError aclrtSetDevice(int32_t deviceId)

参数说明

参数名输入/输出说明
deviceId输入Device ID。 用户调用aclrtGetDeviceCount接口获取可用的Device数量后,这个Device ID的取值范围:[0, (可用的Device数量-1)]

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用流程及示例,参见运行管理资源申请与释放

父主题: Device管理

aclrtResetDevice

函数功能

复位当前运算的Device,释放Device上的资源,包括默认Context、默认Stream以及默认Context下创建的所有Stream,同步接口。若默认Context或默认Stream下的任务还未完成,系统会等待任务完成后再释放。

约束说明

若要复位的Device上存在显式创建的Context、Stream、Event,在复位前,建议遵循如下接口调用顺序,否则可能会导致业务异常。

**接口调用顺序:调用aclrtDestroyEvent接口释放Event/调用aclrtDestroyStream接口释放显式创建的Stream-->调用aclrtDestroyContext释放显式创建的Context-->**调用aclrtResetDevice接口

函数原型

aclError aclrtResetDevice(int32_t deviceId)

参数说明

参数名输入/输出说明
deviceId输入Device ID。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用流程及示例,参见运行管理资源申请与释放

父主题: Device管理

aclrtGetDevice

函数功能

获取当前正在使用的Device的ID,同步接口。

约束说明

如果没有调用aclrtSetDevice接口显式指定Device或没有调用aclrtCreateContext接口隐式指定Device,则调用aclrtGetDevice接口时,返回错误。

函数原型

aclError aclrtGetDevice(int32_t *deviceId)

参数说明

参数名输入/输出说明
deviceId输出Device ID的指针。

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: Device管理

aclrtGetRunMode

函数功能

获取当前昇腾AI软件栈的运行模式,同步接口。

函数原型

aclError aclrtGetRunMode(aclrtRunMode *runMode)

参数说明

参数名输入/输出说明
runMode输出运行模式的指针。
- ACL_DEVICE:昇腾AI软件栈运行在Device的Control CPU或板端环境上。
- ACL_HOST:昇腾AI软件栈运行在Host CPU上。

返回值说明

返回0表示成功,返回其它值表示失败。

参考资源

接口调用流程及示例代码,参见运行管理资源申请与释放

父主题: Device管理

aclrtSetTsDevice

函数功能

设置本次计算需要使用的Task Schedule,仅昇腾AI处理器支持vector core计算单元才生效,同步接口。

函数原型

aclError aclrtSetTsDevice(aclrtTsId tsId)

参数说明

参数名输入/输出说明
tsId输入指定本次计算需要使用的Task Schedule。如果昇腾AI软件栈中只有AICORE Task Schedule,则设置该参数无效,默认使用AICORE Task Schedule。
text<br>typedef enum aclrtTsId &#123;<br> ACL_TS_ID_AICORE = 0, //使用AICORE Task Schedule<br> ACL_TS_ID_AIVECTOR = 1, //使用AIVECTOR Task Schedule<br> ACL_TS_ID_RESERVED = 2,<br>&#125; aclrtTsId;<br>

返回值说明

返回0表示成功,返回其它值表示失败。

父主题: Device管理

在线提单