已合并
[docs] 更新并新增API模块相关环境变量文档 #46207
yucaopanmu创建于 16 天前
[docs] 更新并新增API模块相关环境变量文档 #46207
已合并
共 17 个文件变更+201-14
| @@ -43,7 +43,7 @@ | |||
| 43 | |[INF_NAN_MODE_ENABLE](op_execution/INF_NAN_MODE_ENABLE.md)|通过此环境变量可控制AI处理器对输入数据为Inf/NaN的处理方式,即控制AI处理器使用饱和模式还是INF_NAN模式。| | 43 | |[INF_NAN_MODE_ENABLE](op_execution/INF_NAN_MODE_ENABLE.md)|通过此环境变量可控制AI处理器对输入数据为Inf/NaN的处理方式,即控制AI处理器使用饱和模式还是INF_NAN模式。| |
| 44 | |[INF_NAN_MODE_FORCE_DISABLE](op_execution/INF_NAN_MODE_FORCE_DISABLE.md)|<term>Atlas A2 训练系列产品</term>/<term>Atlas A3 训练系列产品</term>,通过此环境变量可强制关闭INF_NAN模式。| | 44 | |[INF_NAN_MODE_FORCE_DISABLE](op_execution/INF_NAN_MODE_FORCE_DISABLE.md)|<term>Atlas A2 训练系列产品</term>/<term>Atlas A3 训练系列产品</term>,通过此环境变量可强制关闭INF_NAN模式。| |
| 45 | |[FORCE_OVERFLOW_CHECK](op_execution/FORCE_OVERFLOW_CHECK.md)|通过此环境变量可在非饱和模式(INF_NAN模式)下开启溢出检测开关,用于Inf/NaN问题的异步定位。| | 45 | |[FORCE_OVERFLOW_CHECK](op_execution/FORCE_OVERFLOW_CHECK.md)|通过此环境变量可在非饱和模式(INF_NAN模式)下开启溢出检测开关,用于Inf/NaN问题的异步定位。| |
| 46 | -|[COMBINED_ENABLE](op_execution/COMBINED_ENABLE.md)|通过此环境变量可设置combined标志。| | 46 | +|[COMBINED_ENABLE](op_execution/COMBINED_ENABLE.md)|通过此环境变量可控制是否启用组合连续化优化,用于优化由多个view操作产生的非连续张量的连续化转换。| |
| 47 | |[ASCEND_LAUNCH_BLOCKING](op_execution/ASCEND_LAUNCH_BLOCKING.md)|通过此环境变量可控制算子执行时是否启用同步模式。| | 47 | |[ASCEND_LAUNCH_BLOCKING](op_execution/ASCEND_LAUNCH_BLOCKING.md)|通过此环境变量可控制算子执行时是否启用同步模式。| |
| 48 | |[TASK_QUEUE_ENABLE](op_execution/TASK_QUEUE_ENABLE.md)|通过此环境变量可配置task_queue算子下发队列是否开启和优化等级。| | 48 | |[TASK_QUEUE_ENABLE](op_execution/TASK_QUEUE_ENABLE.md)|通过此环境变量可配置task_queue算子下发队列是否开启和优化等级。| |
| 49 | |[PER_STREAM_QUEUE](op_execution/PER_STREAM_QUEUE.md)|通过此环境变量可配置是否开启一个stream一个task_queue算子下发队列。| | 49 | |[PER_STREAM_QUEUE](op_execution/PER_STREAM_QUEUE.md)|通过此环境变量可配置是否开启一个stream一个task_queue算子下发队列。| |
| @@ -59,6 +59,10 @@ | |||
| 59 | | --- | --- | | 59 | | --- | --- | |
| 60 | |[ACL_OP_COMPILER_CACHE_DIR](op_compilation/ACL_OP_COMPILER_CACHE_DIR.md)|通过此环境变量可配置算子编译磁盘缓存的目录。| | 60 | |[ACL_OP_COMPILER_CACHE_DIR](op_compilation/ACL_OP_COMPILER_CACHE_DIR.md)|通过此环境变量可配置算子编译磁盘缓存的目录。| |
| 61 | |[ACL_OP_COMPILER_CACHE_MODE](op_compilation/ACL_OP_COMPILER_CACHE_MODE.md)|通过此环境变量可配置算子编译磁盘缓存模式。| | 61 | |[ACL_OP_COMPILER_CACHE_MODE](op_compilation/ACL_OP_COMPILER_CACHE_MODE.md)|通过此环境变量可配置算子编译磁盘缓存模式。| |
| 62 | +|[ACL_OP_INIT_MODE](op_compilation/ACL_OP_INIT_MODE.md)|通过此环境变量可配置算子编译的初始化模式。| | ||
| 63 | +|[ACLNN_EXTENSION_SWITCH](op_compilation/ACLNN_EXTENSION_SWITCH.md)|通过此环境变量可控制op-plugin代码生成过程中是否启用ACLNN扩展代码路径。| | ||
| 64 | +|[ACLNN_EXTENSION_PATH](op_compilation/ACLNN_EXTENSION_PATH.md)|通过此环境变量可指定ACLNN扩展代码的搜索路径,在op-plugin代码生成过程中生效。| | ||
| 65 | +|[PYTORCH_CUSTOM_DERIVATIVES_PATH](op_compilation/PYTORCH_CUSTOM_DERIVATIVES_PATH.md)|通过此环境变量可指定自定义算子自动微分定义文件derivatives.yaml的路径,在op-plugin代码生成过程中生效。| | ||
| 62 | 66 | ||
| 63 | ## 内存管理 | 67 | ## 内存管理 |
| 64 | 68 | ||
| @@ -0,0 +1,29 @@ | |||
| 1 | +# ACLNN\_EXTENSION\_PATH | ||
| 2 | + | ||
| 3 | +## 功能描述 | ||
| 4 | + | ||
| 5 | +通过此环境变量可指定ACLNN扩展代码的搜索路径。在op-plugin代码生成(codegen)过程中,torchnpugen工具根据此路径查找ACLNN扩展相关的op\_plugin源文件、自定义算子YAML配置和exposed\_api.py等文件。通常与[ACLNN\_EXTENSION\_SWITCH](ACLNN_EXTENSION_SWITCH.md)配合使用,当ACLNN扩展开关开启时,此路径生效。 | ||
| 6 | + | ||
| 7 | +此环境变量默认不配置,此时torchnpugen使用内置的`third_party/op-plugin`目录作为默认搜索路径。 | ||
| 8 | + | ||
| 9 | +## 配置示例 | ||
| 10 | + | ||
| 11 | +```bash | ||
| 12 | +export ACLNN_EXTENSION_PATH=/path/to/aclnn/extension | ||
| 13 | +``` | ||
| 14 | + | ||
| 15 | +> [!NOTE] | ||
| 16 | +> | ||
| 17 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 18 | + | ||
| 19 | +## 使用约束 | ||
| 20 | + | ||
| 21 | +- 仅在代码生成(codegen)阶段生效,不影响运行时行为。 | ||
| 22 | +- 需与[ACLNN\_EXTENSION\_SWITCH](ACLNN_EXTENSION_SWITCH.md)配合使用,单独设置不生效。 | ||
| 23 | +- 路径需包含有效的op\_plugin目录和相关源文件。 | ||
| 24 | + | ||
| 25 | +## 支持的型号 | ||
| 26 | + | ||
| 27 | +- <term>Atlas 训练系列产品</term> | ||
| 28 | +- <term>Atlas A2 训练系列产品</term> | ||
| 29 | +- <term>Atlas A3 训练系列产品</term> | ||
| @@ -0,0 +1,28 @@ | |||
| 1 | +# ACLNN\_EXTENSION\_SWITCH | ||
| 2 | + | ||
| 3 | +## 功能描述 | ||
| 4 | + | ||
| 5 | +通过此环境变量可控制op-plugin代码生成(codegen)过程中是否启用ACLNN扩展代码路径。设置为`true`或`ON`时,torchnpugen工具在生成算子代码时使用ACLNN扩展相关的源码路径、模板和注册方式;未设置时,使用内置的默认代码生成逻辑。 | ||
| 6 | + | ||
| 7 | +此环境变量默认不配置,此时不启用ACLNN扩展代码路径。 | ||
| 8 | + | ||
通过此环境变量可控制OpPlugin代码生成(codegen)过程中是否启用ACLNN扩展代码路径。
该环境变量默认未配置,此时不启用ACLNN扩展代码路径。 ![]() ![]() | |||
| 9 | +## 配置示例 | ||
| 10 | + | ||
| 11 | +```bash | ||
| 12 | +export ACLNN_EXTENSION_SWITCH=true | ||
| 13 | +``` | ||
| 14 | + | ||
| 15 | +> [!NOTE] | ||
| 16 | +> | ||
| 17 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 18 | + | ||
| 19 | +## 使用约束 | ||
| 20 | + | ||
| 21 | +- 仅在代码生成(codegen)阶段生效,不影响运行时行为。 | ||
| 22 | +- 需与[ACLNN\_EXTENSION\_PATH](ACLNN_EXTENSION_PATH.md)配合使用,开启扩展时需同时指定有效的扩展代码路径。 | ||
| 23 | + | ||
| 24 | +## 支持的型号 | ||
| 25 | + | ||
| 26 | +- <term>Atlas 训练系列产品</term> | ||
| 27 | +- <term>Atlas A2 训练系列产品</term> | ||
| 28 | +- <term>Atlas A3 训练系列产品</term> | ||
| @@ -14,10 +14,14 @@ | |||
| 14 | export ACL_OP_COMPILER_CACHE_DIR=/home/cache | 14 | export ACL_OP_COMPILER_CACHE_DIR=/home/cache |
| 15 | ``` | 15 | ``` |
| 16 | 16 | ||
| 17 | +> [!NOTE] | ||
| 18 | +> | ||
| 19 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 20 | + | ||
| 17 | ## 使用约束 | 21 | ## 使用约束 |
| 18 | 22 | ||
| 19 | - 该环境变量仅在单算子模式下可以使用,图模式不支持该环境变量。 | 23 | - 该环境变量仅在单算子模式下可以使用,图模式不支持该环境变量。 |
| 20 | -- 该环境变量需要与ACL\_OP\_COMPILER\_CACHE\_MODE配合使用。 | 24 | +- 该环境变量需要与[ACL\_OP\_COMPILER\_CACHE\_MODE](ACL_OP_COMPILER_CACHE_MODE.md)配合使用。 |
| 21 | - 如果同时设置了环境变量和torch\_npu\_option,则以代码中的torch\_npu\_option方式为优先。 | 25 | - 如果同时设置了环境变量和torch\_npu\_option,则以代码中的torch\_npu\_option方式为优先。 |
| 22 | - 如果设置了ACL\_OP\_DEBUG\_LEVEL编译选项,则只有编译选项值为0或3才会启用编译缓存功能,其它取值禁用编译缓存功能。ACL\_OP\_DEBUG\_LEVEL编译选项具体可参考《CANN GE图引擎API》的“[aclCompileOpt](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/910/API/ascendgraphapi/aclcppdevg_03_1371.html)”章节。 | 26 | - 如果设置了ACL\_OP\_DEBUG\_LEVEL编译选项,则只有编译选项值为0或3才会启用编译缓存功能,其它取值禁用编译缓存功能。ACL\_OP\_DEBUG\_LEVEL编译选项具体可参考《CANN GE图引擎API》的“[aclCompileOpt](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/910/API/ascendgraphapi/aclcppdevg_03_1371.html)”章节。 |
| 23 | 27 | ||
| @@ -16,6 +16,10 @@ | |||
| 16 | export ACL_OP_COMPILER_CACHE_MODE=enable | 16 | export ACL_OP_COMPILER_CACHE_MODE=enable |
| 17 | ``` | 17 | ``` |
| 18 | 18 | ||
| 19 | +> [!NOTE] | ||
| 20 | +> | ||
| 21 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 22 | + | ||
| 19 | ## 使用约束 | 23 | ## 使用约束 |
| 20 | 24 | ||
| 21 | - 该环境变量仅在单算子模式下可以使用,图模式不支持该环境变量。 | 25 | - 该环境变量仅在单算子模式下可以使用,图模式不支持该环境变量。 |
| @@ -0,0 +1,42 @@ | |||
| 1 | +# ACL\_OP\_INIT\_MODE | ||
| 2 | + | ||
| 3 | +## 功能描述 | ||
| 4 | + | ||
| 5 | +通过此环境变量可配置算子编译的初始化模式。 | ||
| 6 | + | ||
| 7 | +- 配置为“0”:aclops初始化模式,在NPU初始化阶段立即加载并初始化所有算子编译相关信息。 | ||
| 8 | +- 配置为“1”:aclops延迟初始化模式,算子编译相关信息在首次执行算子时延迟加载和初始化,可加速NPU初始化过程。 | ||
| 9 | +- 配置为“2”:禁用aclops,不加载算子编译相关信息。走aclop路径的算子执行时将抛出错误,提示检查`ACL_OP_INIT_MODE`配置;走aclnn路径的算子不受影响,可正常执行。 | ||
| 10 | + | ||
约束说明里面的对应内容删掉这里补充完整 ![]() ![]() | |||
| 11 | +默认值根据设备型号和CANN版本自动确定: | ||
| 12 | + | ||
| 13 | +- <term>Ascend 950DT</term>等仅支持aclnn的设备,默认值为“2”。 | ||
先确认一下这类设备有没有要求特定的cann版本要求? 仅支持aclnn的设备(如 ![]() ![]() | |||
| 14 | +- <term>Atlas A2 训练系列产品</term>/<term>Atlas A3 训练系列产品</term>(CANN >= 8.3.RC1),默认值为“1”。 | ||
| 15 | +- 其他设备,默认值为“0”。 | ||
| 16 | + | ||
| 17 | +## 配置示例 | ||
| 18 | + | ||
| 19 | +```bash | ||
| 20 | +export ACL_OP_INIT_MODE=1 | ||
| 21 | +``` | ||
| 22 | + | ||
| 23 | +> [!NOTE] | ||
| 24 | +> | ||
| 25 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 26 | + | ||
| 27 | +## 使用约束 | ||
| 28 | + | ||
| 29 | +- 必须在启动Python进程前配置该环境变量,进程运行过程中修改不会生效。 | ||
| 30 | +- 仅支持配置为“0”、“1”或“2”,其他取值将重置为默认值。 | ||
| 31 | +- 仅支持aclnn的设备(如<term>Ascend 950DT</term>)只能配置为“2”,配置为其他值时将自动切换为“2”。 | ||
| 32 | +- 配置为“2”时,aclops功能被禁用,走aclop路径的算子将无法执行,`jitCompile`等编译选项将不可用;走aclnn路径的算子不受影响,可正常执行。 | ||
| 33 | + | ||
![]() ![]() | |||
| 34 | +## 支持的型号 | ||
| 35 | + | ||
| 36 | +- <term>Atlas 训练系列产品</term> | ||
| 37 | +- <term>Atlas A2 训练系列产品</term> | ||
| 38 | +- <term>Atlas A3 训练系列产品</term> | ||
| 39 | +- <term>Atlas 800I A2 推理产品</term> | ||
| 40 | +- <term>Atlas 推理系列产品</term> | ||
| 41 | +- <term>Ascend 950DT</term> | ||
| 42 | + | ||
| @@ -0,0 +1,29 @@ | |||
| 1 | +# PYTORCH\_CUSTOM\_DERIVATIVES\_PATH | ||
| 2 | + | ||
| 3 | +## 功能描述 | ||
| 4 | + | ||
| 5 | +通过此环境变量可指定自定义算子自动微分(autograd)定义文件`derivatives.yaml`的路径。在op-plugin代码生成(codegen)流程中,该文件定义了NPU自定义算子的反向传播规则,供torchnpugen代码生成器在生成算子autograd代码时使用。 | ||
| 6 | + | ||
op-plugin改成OpPlugin ![]() ![]() | |||
| 7 | +此环境变量默认不配置,此时torchnpugen使用内置的`third_party/op-plugin/op_plugin/config/`目录下对应PyTorch版本的`derivatives.yaml`作为默认路径。 | ||
| 8 | + | ||
这样优化一下,确认一下还有没有其他配置情况
![]() ![]() | |||
| 9 | +> [!NOTE] | ||
| 10 | +> | ||
| 11 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 12 | + | ||
| 13 | +## 配置示例 | ||
| 14 | + | ||
| 15 | +```bash | ||
| 16 | +export PYTORCH_CUSTOM_DERIVATIVES_PATH=/path/to/op-plugin/op_plugin/config/pytorch_v2.1/derivatives.yaml | ||
| 17 | +``` | ||
| 18 | + | ||
| 19 | +## 使用约束 | ||
| 20 | + | ||
| 21 | +- 仅在代码生成(codegen)阶段生效,非运行时环境变量。 | ||
| 22 | +- 路径需指向有效的`derivatives.yaml`文件,文件格式需符合PyTorch自定义导数定义规范。 | ||
| 23 | +- 需与[ACLNN\_EXTENSION\_SWITCH](ACLNN_EXTENSION_SWITCH.md)配合使用,仅在ACLNN扩展开关开启时生效。 | ||
| 24 | + | ||
| 25 | +## 支持的型号 | ||
| 26 | + | ||
| 27 | +- <term>Atlas 训练系列产品</term> | ||
| 28 | +- <term>Atlas A2 训练系列产品</term> | ||
| 29 | +- <term>Atlas A3 训练系列产品</term> | ||
| @@ -8,6 +8,13 @@ | |||
| 8 | 8 | ||
| 9 | 默认配置为0。 | 9 | 默认配置为0。 |
| 10 | 10 | ||
| 11 | +> [!NOTE] | ||
| 12 | +> | ||
| 13 | +> - **PyTorch社区:** 社区对应环境变量`CUDA_LAUNCH_BLOCKING`,功能一致,均用于控制算子是否采用同步执行模式,但`torch_npu`与`torch`存在以下差异: | ||
| 14 | +> - 命名不同:NPU使用`ASCEND_LAUNCH_BLOCKING`,GPU使用`CUDA_LAUNCH_BLOCKING`。 | ||
| 15 | +> - `ASCEND_LAUNCH_BLOCKING`设置为“1”时会关闭task_queue算子下发队列(`TASK_QUEUE_ENABLE`设置不生效),`CUDA_LAUNCH_BLOCKING`无此关联机制。 | ||
| 16 | +> - `ASCEND_LAUNCH_BLOCKING`设置为“0”时会增加内存消耗,有导致OOM的风险,`CUDA_LAUNCH_BLOCKING`无此副作用。 | ||
| 17 | + | ||
这些都不用要,note也不要加,直接写这句话就行,原生的链接找一下加上 该环境变量对应PyTorch的CUDA_LAUNCH_BLOCKING,功能一致,均用于控制算子是否采用同步执行模式。 ![]() ![]() | |||
| 11 | ## 配置示例 | 18 | ## 配置示例 |
| 12 | 19 | ||
| 13 | ```bash | 20 | ```bash |
| @@ -18,7 +25,6 @@ export ASCEND_LAUNCH_BLOCKING=1 | |||
| 18 | 25 | ||
| 19 | - ASCEND\_LAUNCH\_BLOCKING设置为“1”时,强制算子采用同步模式运行会导致性能下降。 | 26 | - ASCEND\_LAUNCH\_BLOCKING设置为“1”时,强制算子采用同步模式运行会导致性能下降。 |
| 20 | - ASCEND\_LAUNCH\_BLOCKING设置为“1”时,task\_queue算子队列关闭,[TASK\_QUEUE\_ENABLE](TASK_QUEUE_ENABLE.md)设置不生效。 | 27 | - ASCEND\_LAUNCH\_BLOCKING设置为“1”时,task\_queue算子队列关闭,[TASK\_QUEUE\_ENABLE](TASK_QUEUE_ENABLE.md)设置不生效。 |
| 21 | - | ||
| 22 | - ASCEND\_LAUNCH\_BLOCKING设置为“0”时,会增加内存消耗,有导致OOM的风险。 | 28 | - ASCEND\_LAUNCH\_BLOCKING设置为“0”时,会增加内存消耗,有导致OOM的风险。 |
| 23 | 29 | ||
| 24 | ## 支持的型号 | 30 | ## 支持的型号 |
| @@ -2,9 +2,9 @@ | |||
| 2 | 2 | ||
| 3 | ## 功能描述 | 3 | ## 功能描述 |
| 4 | 4 | ||
| 5 | -通过此环境变量可设置combined标志。设置为0表示关闭此功能;设置为1表示开启,用于优化两个非连续的算子组合类场景。 | 5 | +通过此环境变量可控制是否启用组合连续化优化。设置为“0”表示关闭此功能;设置为“1”表示开启,用于优化由多个view操作(如reshape+slice、permute+select等,最多2个组合操作)产生的非连续张量的连续化转换,通过推断view信息栈避免完整内存拷贝。 |
| 6 | 6 | ||
| 7 | -默认配置为0。 | 7 | +默认配置为“0”。 |
| 8 | 8 | ||
通过此环境变量可控制是否启用组合连续化优化。开启后,该功能旨在优化由多个 view 操作(如 reshape+slice、permute+select 等,最多支持 2 个组合操作)产生的非连续张量的连续化转换过程,通过推断 view 信息栈避免完整的内存拷贝。
默认配置为“0”。 ![]() ![]() | |||
| 9 | ## 配置示例 | 9 | ## 配置示例 |
| 10 | 10 | ||
| @@ -12,9 +12,15 @@ | |||
| 12 | export COMBINED_ENABLE=1 | 12 | export COMBINED_ENABLE=1 |
| 13 | ``` | 13 | ``` |
| 14 | 14 | ||
| 15 | +> [!NOTE] | ||
| 16 | +> | ||
| 17 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 18 | + | ||
| 15 | ## 使用约束 | 19 | ## 使用约束 |
| 16 | 20 | ||
| 17 | -无 | 21 | +- 必须在启动Python进程前配置该环境变量,进程运行过程中修改不会生效。 |
| 22 | +- 仅支持配置为“0”或“1”。 | ||
| 23 | +- 该环境变量仅在aclop路径的连续化优化中生效。走aclnn路径的算子不经过此优化,不受此环境变量影响。 | ||
| 18 | 24 | ||
| 19 | ## 支持的型号 | 25 | ## 支持的型号 |
| 20 | 26 | ||
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | ## 功能描述 | 3 | ## 功能描述 |
| 4 | 4 | ||
| 5 | -通过此环境变量可在非饱和模式(INF_NAN模式)下开启溢出检测开关,用于训练过程中Inf/NaN问题的异步定位,不改变浮点计算模式。环境变量默认值为“0”。 | 5 | +通过此环境变量可在非饱和模式(INF\_NAN模式)下开启溢出检测开关,用于训练过程中Inf/NaN问题的异步定位,不改变浮点计算模式。环境变量默认值为“0”。 |
| 6 | 6 | ||
| 7 | - 环境变量值为“0”时:代表不开启溢出检测开关,行为与未配置时一致。 | 7 | - 环境变量值为“0”时:代表不开启溢出检测开关,行为与未配置时一致。 |
| 8 | - 环境变量值为“1”时:代表开启溢出检测开关,溢出检测接口([get\_npu\_overflow\_flag](https://gitcode.com/Ascend/op-plugin/blob/master/docs/zh/custom_APIs/torch_npu-npu/(beta)torch_npu-npu-get_npu_overflow_flag.md)、[npu\_check\_overflow](https://gitcode.com/Ascend/op-plugin/blob/master/docs/zh/custom_APIs/torch_npu-npu/(beta)torch_npu-npu-utils-npu_check_overflow.md)、[clear\_npu\_overflow\_flag](https://gitcode.com/Ascend/op-plugin/blob/master/docs/zh/custom_APIs/torch_npu-npu/(beta)torch_npu-npu-clear_npu_overflow_flag.md))在INF\_NAN模式下可用:通过读取溢出状态标志判断是否发生过数值溢出,而非将梯度搬运至Host侧判断是否为Inf/NaN,因此不会引入同步等待,适合对执行时序敏感的溢出定位场景。 | 8 | - 环境变量值为“1”时:代表开启溢出检测开关,溢出检测接口([get\_npu\_overflow\_flag](https://gitcode.com/Ascend/op-plugin/blob/master/docs/zh/custom_APIs/torch_npu-npu/(beta)torch_npu-npu-get_npu_overflow_flag.md)、[npu\_check\_overflow](https://gitcode.com/Ascend/op-plugin/blob/master/docs/zh/custom_APIs/torch_npu-npu/(beta)torch_npu-npu-utils-npu_check_overflow.md)、[clear\_npu\_overflow\_flag](https://gitcode.com/Ascend/op-plugin/blob/master/docs/zh/custom_APIs/torch_npu-npu/(beta)torch_npu-npu-clear_npu_overflow_flag.md))在INF\_NAN模式下可用:通过读取溢出状态标志判断是否发生过数值溢出,而非将梯度搬运至Host侧判断是否为Inf/NaN,因此不会引入同步等待,适合对执行时序敏感的溢出定位场景。 |
| @@ -32,6 +32,10 @@ print(torch_npu.npu.utils.get_npu_overflow_flag()) # True,通过溢出状态 | |||
| 32 | export FORCE_OVERFLOW_CHECK=1 | 32 | export FORCE_OVERFLOW_CHECK=1 |
| 33 | ``` | 33 | ``` |
| 34 | 34 | ||
| 35 | +> [!NOTE] | ||
| 36 | +> | ||
| 37 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 38 | + | ||
| 35 | ## 使用约束 | 39 | ## 使用约束 |
| 36 | 40 | ||
| 37 | - 需CANN版本不低于9.1.0,版本不满足时打印WARNING日志并忽略该环境变量。 | 41 | - 需CANN版本不低于9.1.0,版本不满足时打印WARNING日志并忽略该环境变量。 |
| @@ -9,7 +9,7 @@ | |||
| 9 | 9 | ||
| 10 | 针对<term>Atlas 训练系列产品</term>/<term>Atlas 推理系列产品</term>/<term>Atlas 200I/500 A2 推理产品</term>,仅支持饱和模式,该环境变量不生效。 | 10 | 针对<term>Atlas 训练系列产品</term>/<term>Atlas 推理系列产品</term>/<term>Atlas 200I/500 A2 推理产品</term>,仅支持饱和模式,该环境变量不生效。 |
| 11 | 11 | ||
| 12 | -针对<term>Atlas A2 训练系列产品</term>/<term>Atlas A3 训练系列产品</term>,默认值为“1”(INF_NAN模式),支持配置为“0”(饱和模式)。 | 12 | +针对<term>Atlas A2 训练系列产品</term>/<term>Atlas A3 训练系列产品</term>,默认值为“1”(INF\_NAN模式),支持配置为“0”(饱和模式)。 |
| 13 | 13 | ||
| 14 | 针对<term>Ascend 950DT</term>,仅支持INF\_NAN模式,该环境变量不生效。 | 14 | 针对<term>Ascend 950DT</term>,仅支持INF\_NAN模式,该环境变量不生效。 |
| 15 | 15 | ||
| @@ -55,9 +55,14 @@ torch.sqrt(torch.tensor([-1.0], dtype=torch.float16).npu()) | |||
| 55 | export INF_NAN_MODE_ENABLE=1 | 55 | export INF_NAN_MODE_ENABLE=1 |
| 56 | ``` | 56 | ``` |
| 57 | 57 | ||
| 58 | +> [!NOTE] | ||
| 59 | +> | ||
| 60 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 61 | + | ||
| 58 | ## 使用约束 | 62 | ## 使用约束 |
| 59 | 63 | ||
| 60 | -无 | 64 | +- 必须在启动Python进程前配置该环境变量,进程运行过程中修改不会生效。 |
| 65 | +- 仅支持配置为“0”或“1”。 | ||
| 61 | 66 | ||
| 62 | ## 支持的型号 | 67 | ## 支持的型号 |
| 63 | 68 | ||
| @@ -15,9 +15,15 @@ | |||
| 15 | export INF_NAN_MODE_FORCE_DISABLE=1 | 15 | export INF_NAN_MODE_FORCE_DISABLE=1 |
| 16 | ``` | 16 | ``` |
| 17 | 17 | ||
| 18 | +> [!NOTE] | ||
| 19 | +> | ||
| 20 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 21 | + | ||
| 18 | ## 使用约束 | 22 | ## 使用约束 |
| 19 | 23 | ||
| 20 | -无 | 24 | +- 必须在启动Python进程前配置该环境变量,进程运行过程中修改不会生效。 |
| 25 | +- 仅支持配置为“0”或“1”。 | ||
| 26 | +- 强制关闭INF\_NAN模式后,计算过程中产生的Inf和NaN会被转换成对应数据类型的最大值和0值,可能导致运算结果与预期不一致,非特殊情况不建议配置。 | ||
| 21 | 27 | ||
| 22 | ## 支持的型号 | 28 | ## 支持的型号 |
| 23 | 29 | ||
| @@ -23,7 +23,7 @@ | |||
| 23 | **图 3** Level 2优化<a id="Level-2优化"></a> | 23 | **图 3** Level 2优化<a id="Level-2优化"></a> |
| 24 |  | 24 |  |
| 25 | 25 | ||
| 26 | - 此环境变量默认配置为“1”。 | 26 | +此环境变量默认配置为"1"。 |
| 27 | 27 | ||
不用改,就是中文引号 ![]() ![]() | |||
| 28 | ## 配置示例 | 28 | ## 配置示例 |
| 29 | 29 | ||
| @@ -31,6 +31,10 @@ | |||
| 31 | export TASK_QUEUE_ENABLE=2 | 31 | export TASK_QUEUE_ENABLE=2 |
| 32 | ``` | 32 | ``` |
| 33 | 33 | ||
| 34 | +> [!NOTE] | ||
| 35 | +> | ||
| 36 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 37 | + | ||
| 34 | ## 使用约束 | 38 | ## 使用约束 |
| 35 | 39 | ||
| 36 | [ASCEND\_LAUNCH\_BLOCKING](ASCEND_LAUNCH_BLOCKING.md)设置为“1”时,task\_queue算子队列关闭,TASK\_QUEUE\_ENABLE设置不生效。 | 40 | [ASCEND\_LAUNCH\_BLOCKING](ASCEND_LAUNCH_BLOCKING.md)设置为“1”时,task\_queue算子队列关闭,TASK\_QUEUE\_ENABLE设置不生效。 |
| @@ -1,4 +1,4 @@ | |||
| 1 | -# TORCH_NPU_FALLBACK_CPU_DISABLE | 1 | +# TORCH\_NPU\_FALLBACK\_CPU\_DISABLE |
| 2 | 2 | ||
| 3 | ## 功能描述 | 3 | ## 功能描述 |
| 4 | 4 | ||
| @@ -23,6 +23,10 @@ export TORCH_NPU_FALLBACK_CPU_DISABLE=1 | |||
| 23 | export TORCH_NPU_FALLBACK_CPU_DISABLE=0 | 23 | export TORCH_NPU_FALLBACK_CPU_DISABLE=0 |
| 24 | ``` | 24 | ``` |
| 25 | 25 | ||
| 26 | +> [!NOTE] | ||
| 27 | +> | ||
| 28 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 29 | + | ||
| 26 | ## 使用约束 | 30 | ## 使用约束 |
| 27 | 31 | ||
| 28 | - 该环境变量仅支持配置为“0”或“1”,默认值为“0”。 | 32 | - 该环境变量仅支持配置为“0”或“1”,默认值为“0”。 |
| @@ -1,4 +1,4 @@ | |||
| 1 | -# TORCH_NPU_LEGACY_IMPL_LIST | 1 | +# TORCH\_NPU\_LEGACY\_IMPL\_LIST |
| 2 | 2 | ||
| 3 | ## 功能描述 | 3 | ## 功能描述 |
| 4 | 4 | ||
| @@ -30,6 +30,10 @@ | |||
| 30 | export TORCH_NPU_LEGACY_IMPL_LIST=randomness | 30 | export TORCH_NPU_LEGACY_IMPL_LIST=randomness |
| 31 | ``` | 31 | ``` |
| 32 | 32 | ||
| 33 | +> [!NOTE] | ||
| 34 | +> | ||
| 35 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 36 | + | ||
| 33 | ## 使用约束 | 37 | ## 使用约束 |
| 34 | 38 | ||
| 35 | - 必须在启动Python进程前配置该环境变量。 | 39 | - 必须在启动Python进程前配置该环境变量。 |
| @@ -1,4 +1,4 @@ | |||
| 1 | -# TORCH_NPU_USE_COMPATIBLE_IMPL | 1 | +# TORCH\_NPU\_USE\_COMPATIBLE\_IMPL |
| 2 | 2 | ||
| 3 | ## 功能描述 | 3 | ## 功能描述 |
| 4 | 4 | ||
| @@ -13,6 +13,10 @@ | |||
| 13 | export TORCH_NPU_USE_COMPATIBLE_IMPL=1 | 13 | export TORCH_NPU_USE_COMPATIBLE_IMPL=1 |
| 14 | ``` | 14 | ``` |
| 15 | 15 | ||
| 16 | +> [!NOTE] | ||
| 17 | +> | ||
| 18 | +> 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。 | ||
| 19 | + | ||
| 16 | ## 使用约束 | 20 | ## 使用约束 |
| 17 | 21 | ||
| 18 | - 此环境变量需要在`import torch`之前配置才能生效。 | 22 | - 此环境变量需要在`import torch`之前配置才能生效。 |


通过此环境变量可指定ACLNN扩展代码的搜索路径。在OpPlugin代码生成(codegen)过程中,torchnpugen工具根据此路径查找ACLNN扩展相关的op_plugin源文件、自定义算子YAML配置和exposed_api.py等文件。通常与ACLNN_EXTENSION_SWITCH配合使用,当ACLNN扩展开关开启时,此路径生效。
当
ACLNN_EXTENSION_SWITCH启用时:当
ACLNN_EXTENSION_SWITCH未启用时,未配置和配置指定路径,该功能都不生效。