已开启
docs: add docs for is_available/PYTORCH_HAL_BASED_NPU_CHECK reference #45973
docs: add docs for is_available/PYTORCH_HAL_BASED_NPU_CHECK reference #45973
已开启
Jesse创建于 9月8日
共 4 个文件变更+37-0
@@ -58,6 +58,7 @@
58 - [TORCH\_NPU\_LAZY\_FUSION](performance_tuning/TORCH_NPU_LAZY_FUSION.md)58 - [TORCH\_NPU\_LAZY\_FUSION](performance_tuning/TORCH_NPU_LAZY_FUSION.md)
59 59 
60- [设备管理](device_management/_menu_device_management.md)60- [设备管理](device_management/_menu_device_management.md)
61+ - [PYTORCH\_HAL\_BASED\_NPU\_CHECK](device_management/PYTORCH_HAL_BASED_NPU_CHECK.md)
61 - [STREAMS\_PER\_DEVICE](device_management/STREAMS_PER_DEVICE.md)62 - [STREAMS\_PER\_DEVICE](device_management/STREAMS_PER_DEVICE.md)
62 - [TORCH\_NPU\_DEVICE\_CAPABILITY](device_management/TORCH_NPU_DEVICE_CAPABILITY.md)63 - [TORCH\_NPU\_DEVICE\_CAPABILITY](device_management/TORCH_NPU_DEVICE_CAPABILITY.md)
63 - [TORCH\_TRANSFER\_TO\_NPU](device_management/TORCH_TRANSFER_TO_NPU.md)64 - [TORCH\_TRANSFER\_TO\_NPU](device_management/TORCH_TRANSFER_TO_NPU.md)
@@ -0,0 +1,34 @@
1+# PYTORCH\_HAL\_BASED\_NPU\_CHECK
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可配置`torch_npu.npu.is_available()`使用的NPU可用性检测方式。
6+ 
7+- 配置为“1”时:`torch_npu.npu.is_available()`通过HAL接口探测设备数量(与`torch_npu.npu.device_count()`采用相同路径)。
8+ - 动态加载`libascend_hal.so`。
9+ - 解析`ASCEND_RT_VISIBLE_DEVICES`环境变量。
10+ - 若HAL探测失败,则回退至Runtime方式检测。
11+- 配置为其他值或者未配置时:`torch_npu.npu.is_available()`通过Runtime接口查询设备数量。
12+ - 首次查询到的非零设备数将被缓存。
13+ - 有效降低NPU初始化前频繁调用`is_available()`的开销。
14+ 
15+此环境变量默认未配置,环境变量的命名与取值语义设计上参考了PyTorch社区的[PYTORCH_NVML_BASED_CUDA_CHECK](https://docs.pytorch.org/docs/stable/cuda_environment_variables.html),在功能模式和使用逻辑上保持一致,便于开发者迁移和理解。
16+ 
wzyly
wzylywzyly9月8日

此环境变量默认未配置,环境变量的命名与取值语义设计上参考了 PyTorch 社区的 PYTORCH_NVML_BASED_CUDA_CHECK,在功能模式和使用逻辑上保持一致,便于开发者迁移和理解。建议加上跳转链接

likedislike
Jesse
Jesse
9月8日 评论:
17+## 配置示例
18+ 
19+启用基于HAL的检测路径:
20+ 
21+```bash
22+export PYTORCH_HAL_BASED_NPU_CHECK=1
23+```
24+ 
25+## 使用约束
26+ 
27+该环境变量仅在值严格等于“1”时生效,若配置为其他值(如“true”、“on”等),均视为未启用,不触发相应功能。
28+ 
29+## 支持的型号
30+ 
31+- <term>Atlas 训练系列产品</term>
32+- <term>Atlas A2 训练系列产品</term>
33+- <term>Atlas A3 训练系列产品</term>
34+- <term>Ascend 950DT</term>
@@ -1,5 +1,6 @@
1# 设备管理1# 设备管理
2 2 
3+- [PYTORCH\_HAL\_BASED\_NPU\_CHECK](PYTORCH_HAL_BASED_NPU_CHECK.md)
3- [STREAMS_PER_DEVICE](STREAMS_PER_DEVICE.md)4- [STREAMS_PER_DEVICE](STREAMS_PER_DEVICE.md)
4- [TORCH_NPU_DEVICE_CAPABILITY](TORCH_NPU_DEVICE_CAPABILITY.md)5- [TORCH_NPU_DEVICE_CAPABILITY](TORCH_NPU_DEVICE_CAPABILITY.md)
5- [TORCH_TRANSFER_TO_NPU](TORCH_TRANSFER_TO_NPU.md)6- [TORCH_TRANSFER_TO_NPU](TORCH_TRANSFER_TO_NPU.md)
@@ -86,6 +86,7 @@
86 86 
87|环境变量名称|简介|87|环境变量名称|简介|
88|--|--|88|--|--|
89+|[PYTORCH_HAL_BASED_NPU_CHECK](device_management/PYTORCH_HAL_BASED_NPU_CHECK.md)|通过此环境变量可配置`torch_npu.npu.is_available()`使用的NPU可用性检测方式,配置为1时使用HAL接口探测设备数量。|
89|[STREAMS_PER_DEVICE](device_management/STREAMS_PER_DEVICE.md)|通过此环境变量可配置stream pool的最大流数。|90|[STREAMS_PER_DEVICE](device_management/STREAMS_PER_DEVICE.md)|通过此环境变量可配置stream pool的最大流数。|
90|[TORCH_NPU_DEVICE_CAPABILITY](device_management/TORCH_NPU_DEVICE_CAPABILITY.md)|通过此环境变量可配置`torch_npu.npu.get_device_capability()`的返回值。|91|[TORCH_NPU_DEVICE_CAPABILITY](device_management/TORCH_NPU_DEVICE_CAPABILITY.md)|通过此环境变量可配置`torch_npu.npu.get_device_capability()`的返回值。|
91|[TORCH_TRANSFER_TO_NPU](device_management/TORCH_TRANSFER_TO_NPU.md)|通过此环境变量可配置是否自动启用transfer_to_npu功能,将PyTorch的CUDA相关API自动替换为NPU对应API。|92|[TORCH_TRANSFER_TO_NPU](device_management/TORCH_TRANSFER_TO_NPU.md)|通过此环境变量可配置是否自动启用transfer_to_npu功能,将PyTorch的CUDA相关API自动替换为NPU对应API。|