文档
注册

aclrtSetDevice

函数功能

指定当前线程中用于运算的Device。

对于Atlas 200/300/500 推理产品,调用本接口会隐式创建默认Context,默认Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。

对于Atlas 200/500 A2推理产品,调用本接口会隐式创建默认Context,该默认Context中包含1个默认Stream。

对于Atlas 训练系列产品,调用本接口会隐式创建默认Context,该默认Context中包含1个默认Stream。

对于Atlas A2训练系列产品/Atlas 800I A2推理产品,调用本接口会隐式创建默认Context,该默认Context中包含1个默认Stream。

对于Atlas 推理系列产品(Ascend 310P处理器),调用本接口会隐式创建默认Context,在标准形态下,该默认Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。

约束说明

  • 建议aclrtSetDevice接口和aclrtResetDevice接口配对使用,在不使用Device上资源时,通过调用aclrtResetDevice接口及时释放本进程使用的Device资源。

    aclrtSetDevice接口和aclrtResetDevice接口涉及引用计数的实现,aclrtSetDevice接口每被调用一次,则引用计数加一,aclrtResetDevice接口每被调用一次,则该引用计数减一,当引用计数减到0时,才会真正释放Device上的资源。

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

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

函数原型

aclError aclrtSetDevice(int32_t deviceId)

参数说明

参数名

输入/输出

说明

deviceId

输入

Device ID。

用户调用aclrtGetDeviceCount接口获取可用的Device数量后,这个Device ID的取值范围:[0, (可用的Device数量-1)]

返回值说明

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

参考资源

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

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

当前产品无相关内容

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