Skip to main content

aclrtGetDeviceCount

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管理

aclrtGetDeviceCount

函数功能

获取可用Device的数量,同步接口。

函数原型

aclError aclrtGetDeviceCount(uint32_t *count)

参数说明

参数名输入/输出说明
count输出Device数量的指针。

返回值说明

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

父主题: Device管理

aclrtGetDeviceUtilizationRate

函数功能

查询Device上Cube、Vector、AI CPU等的利用率。同步接口。

约束说明

  • 昇腾虚拟化实例场景下,不支持调用本接口查询利用率,接口返回值无实际意义。
  • 开启Profiling功能时,不支持调用本接口查询利用率,接口返回值无实际意义。
  • 查询Device内存利用率为预留功能,当前版本不支持,若调用本接口查询内存利用率,查询到的利用率为-1。

函数原型

aclError aclrtGetDeviceUtilizationRate(int32_t deviceId, aclrtUtilizationInfo *utilizationInfo)

参数说明

参数名输入/输出说明
deviceId输入Device ID。 用户调用aclrtGetDeviceCount接口获取可用的Device数量后,这个Device ID的取值范围:[0, (可用的Device数量-1)]
utilizationInfo输出利用率信息结构体指针。

返回值说明

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

父主题: Device管理

aclrtQueryDeviceStatus

函数功能

查询Device状态是正常可用、还是异常不可用。同步接口。

函数原型

aclError aclrtQueryDeviceStatus(int32_t deviceId, aclrtDeviceStatus *deviceStatus)

参数说明

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

返回值说明

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

父主题: Device管理

aclrtCreateContext

函数功能

在当前进程或线程中显式创建一个Context。同步接口。

对于Atlas 200/500 A2推理产品,该默认Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。

约束说明

支持以下使用场景:

  • 若不调用aclrtCreateContext接口显式创建Context,那系统会使用默认Context,该默认Context是在调用aclrtSetDevice接口时隐式创建的。
    • 隐式创建Context:适合简单、无复杂交互逻辑的应用,但缺点在于,在多线程编程中,执行结果取决于线程调度的顺序。
    • 显式创建Context:推荐显式,适合大型、复杂交互逻辑的应用,且便于提高程序的可读性、可维护性。
  • 在某一进程中指定Device,该进程内的多个线程可共用在此Device上显式创建的Context(调用aclrtCreateContext接口显式创建Context)。
  • 若在某一进程内创建多个Context(Context的数量与Stream相关,Stream数量有限制,请参见aclrtCreateStream),当前线程在同一时刻内只能使用其中一个Context,建议通过aclrtSetCurrentContext接口明确指定当前线程的Context,增加程序的可维护性**。**

函数原型

aclError aclrtCreateContext(aclrtContext *context, int32_t deviceId)

参数说明

参数名输入/输出说明
deviceId输入需创建Context的Device的ID。
context输出Context的指针。

返回值说明

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

参考资源

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

父主题: Context管理

在线提单