文档
注册
评分
提单
论坛
小AI

函数:set_device

C函数原型

aclError aclrtSetDevice(int32_t deviceId)

Python函数

ret = acl.rt.set_device(device_id)

函数功能

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

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

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

对于Atlas 训练系列产品,该默认Context中包含1个默认Stream。

对于Atlas A2训练系列产品,该默认Context中包含1个默认Stream。

对于Atlas 推理系列产品,在标准形态下,该Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。

输入说明

device_id:int,Device设备号。

用户调用acl.rt.get_device_count接口获取可用的Device数量后,取值范围:[0, (可用的Device数量 - 1)]。

返回值说明

ret:int,错误码。

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

约束说明

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

支持以下使用场景:

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

参考资源

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

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词