aclrtGetLogicDevIdByPhyDevId
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
功能说明
根据物理设备ID获取对应的逻辑设备ID。
函数原型
aclError aclrtGetLogicDevIdByPhyDevId(const int32_t phyDevId, int32_t *const logicDevId)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| phyDevId | 输入 | 物理设备ID。 |
| logicDevId | 输出 | 逻辑设备ID。 |
返回值说明
返回0表示成功,返回其他值表示失败,请参见aclError。
用户设备ID、逻辑设备ID、物理设备ID之间的关系
若未设置ASCEND_RT_VISIBLE_DEVICE环境变量,逻辑设备ID与用户设备ID相同;若在非容器场景下,物理设备ID与逻辑设备ID相同。
下图以容器场景且设置ASCEND_RT_VISIBLE_DEVICE环境变量为例说明三者之间的关系:通过ASCEND_RT_VISIBLE_DEVICES环境变量设置的Device ID依次为1、2,对应的Device索引值依次为0、1,通过aclrtSetDevice接口设置的用户设备ID为0,即对应的Device索引值为0,因此用户设备ID=0对应逻辑设备ID=1,容器中的逻辑设备ID=1又映射到物理设备ID=6,因此最终是使用ID为6的物理设备进行计算。

关于ASCEND_RT_VISIBLE_DEVICES环境的详细介绍请参见《环境变量参考》。