跳到主要内容

函数:set_ts_device

函数:get_device

C函数原型aclError aclrtGetDevice(int32_t *deviceId)
Python函数device_id, ret = acl.rt.get_device()
函数功能获取当前正在使用的Device的ID,同步接口。
输入说明
返回值说明device_id:int,正在使用的Device设备号。 ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明如果没有调用acl.rt.set_device接口显式指定Device或没有调用acl.rt.create_context接口隐式指定Device,则调用acl.rt.get_device接口时,返回错误。

父主题: Device管理

函数:get_run_mode

C函数原型aclError aclrtGetRunMode(aclrtRunMode *runMode)
Python函数run_mode, ret = acl.rt.get_run_mode()
函数功能获取当前昇腾AI软件栈的运行模式,同步接口。
输入说明
返回值说明run_mode:int,表示运行模式。
- 0:ACL_DEVICE,昇腾AI软件栈运行在Device的Control CPU或板端环境上。
- 1:ACL_HOST,昇腾AI软件栈运行在Host CPU上。
ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明
参考资源接口调用流程与示例,请参见运行管理资源申请与释放

父主题: Device管理

函数:set_ts_device

C函数原型aclError aclrtSetTsDevice(aclrtTsId tsId)
Python函数ret = acl.rt.set_ts_device(ts_id)
函数功能设置本次计算需要使用的Task Schedule,仅昇腾AI处理器支持vector core计算单元才生效,同步接口。
输入说明ts_id:int,指定本次计算需要使用的Task Schedule。如果昇腾AI软件栈中仅有AICORE Task Schedule,则设置该参数无效,默认使用AICORE Task Schedule。
- 0:ACL_TS_ID_AICORE,使用AICORE Task Schedule。
- 1:ACL_TS_ID_AIVECTOR,使用AIVECTOR Task Schedule。
- 2:ACL_TS_ID_RESERVED。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: Device管理

函数:get_device_count

C函数原型aclError aclrtGetDeviceCount(uint32_t *count)
Python函数count, ret = acl.rt.get_device_count()
函数功能获取可用Device的数量,同步接口。
输入说明
输出说明
返回值说明count:int,获取Device数量。 ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明

父主题: Device管理

函数:get_device_utilization_rate

C函数原型aclError aclrtGetDeviceUtilizationRate(int32_t deviceId, aclrtUtilizationInfo *utilizationInfo)
Python函数utilization_info, ret = acl.rt.get_device_utilization_rate (device_id)
函数功能查询Device上Cube、Vector、AI CPU等的利用率。同步接口。
输入说明device_id:int,Device ID。 用户调用acl.rt.get_device_count接口获取可用的Device数量后,这个Device ID的取值范围:[0, (可用的Device数量-1)]。
输出说明
返回值说明utilization_info:dict,aclrtUtilizationInfo类型利用率信息字典,具体请参见aclrtUtilizationInforet:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明- 昇腾虚拟化实例场景下,不支持调用本接口查询利用率,接口返回值无实际意义。
- 开启Profiling功能时,不支持调用本接口查询利用率,接口返回值无实际意义。
- 查询Device内存利用率为预留功能,当前版本不支持,若调用本接口查询内存利用率,查询到的利用率为-1。

父主题: Device管理

函数:create_context

C函数原型aclError****aclrtCreateContext(aclrtContext *context, int32_t deviceId)
Python函数context, ret = acl.rt.create_context(device_id)
函数功能在当前进程或线程中显式创建一个Context。同步接口。 对于Atlas 200/500 A2推理产品,该默认Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。
输入说明device_id:int,指定需要创建Context的Device设备号。
返回值说明context:int,表示创建的Context的指针地址。 ret:int,错误码。
- 返回0表示成功。
- 返回其它值表示失败。
约束说明支持以下使用场景:
- 若不调用acl.rt.create_context接口显式创建Context,那系统会使用默认Context,该默认Context是在调用acl.rt.set_device接口时隐式创建的。
- 隐式创建Context:适合简单、无复杂交互逻辑的应用,但缺点在于,在多线程编程中,执行结果取决于线程调度的顺序。
- (推荐)显式创建Context:适合大型、复杂交互逻辑的应用,且便于提高程序的可读性、可维护性。
- 若在某一进程内创建多个Context(Context的数量与Stream相关,Stream数量有限制,请参见acl.rt.create_stream),当前线程在同一时刻内只能使用其中一个Context,建议通过acl.rt.set_context接口明确指定当前线程的Context,增加程序的可维护性**。**
(说明:)
参考资源接口调用流程与示例,请参见运行管理资源申请与释放同步等待

父主题: Context管理

在线提单