aclrtGetDeviceUtilizationRate
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管理
aclrtDestroyContext
函数功能
销毁一个Context,释放Context的资源,同步接口。只能销毁通过aclrtCreateContext接口创建的Context。
函数原型
aclError aclrtDestroyContext(aclrtContext context)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| context | 输入 | 需销毁的Context。 |
返回值说明
返回0表示成功,返回其它值表示失败。
参考资源
接口调用流程及示例,参见运行管理资源申请与释放。
父主题: Context管理
aclrtSetCurrentContext
函数功能
设置线程的Context,同步接口。
约束说明
- 支持以下场景:
- 如果在某线程(例如:thread1)中调用aclrtCreateContext接口显式创建一个Context(例如:ctx1),则可以不调用aclrtSetCurrentContext接口指定该线程的Context,系统默认将ctx1作为thread1的Context。
- 如果没有调用aclrtCreateContext接口显式创建Context,则系统将默认Context作为线程的Context,此时,不能通过aclrtDestroyContext接口来释放默认Context。
- 如果多次调用aclrtSetCurrentContext接口设置线程的Context,以最后一次为准。
- 若给线程设置的Context所对应的Device已经被复位,则不能将该Context设置为线程的Context,否则会导致业务异常。
- 推荐在某一线程中创建的Context,在该线程中使用。若在线程A中调用aclrtCreateContext接口创建Context,在线程B中使用该Context,则需由用户自行保证两个线程中同一个Context下同一个Stream中任务执行的顺序。
函数原型
aclError aclrtSetCurrentContext(****aclrtContext context)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| context | 输入 | 指定线程当前的Context。 |
返回值说明
返回0表示成功,返回其它值表示失败。
父主题: Context管理
在线提单