指定当前线程中用于运算的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 推理系列产品,调用本接口会隐式创建默认Context,在标准形态下,该默认Context中包含2个Stream,1个默认Stream和1个执行内部同步的Stream。
aclrtResetDevice接口内部涉及引用计数的实现,建议aclrtResetDevice接口与aclrtSetDevice接口配对使用,aclrtSetDevice接口每被调用一次,则引用计数加一。aclrtResetDevice接口每被调用一次,则该引用计数减一,当引用计数减到0时,才会真正释放Device上的资源。
aclrtResetDeviceForce接口可与aclrtSetDevice接口配对使用,也可不与aclrtSetDevice接口配对使用,若不配对使用,一个进程中,针对同一个Device,调用一次或多次aclrtSetDevice接口后,仅需调用一次本接口可释放Device上的资源。
aclError aclrtSetDevice(int32_t deviceId)
参数名 |
输入/输出 |
说明 |
---|---|---|
deviceId |
输入 |
Device ID。 用户调用aclrtGetDeviceCount接口获取可用的Device数量后,这个Device ID的取值范围:[0, (可用的Device数量-1)] |
返回0表示成功,返回其他值表示失败。
接口调用流程及示例,参见运行管理资源申请与释放。