Closed
【docs】update inductor docs #45521
AACAESAdd on Aug 29Closed at Sep 10
【docs】update inductor docs #45521
Closed
AACAESAdd on Aug 29Closed at Sep 10
Total: 37 files changed+1031-107
@@ -66,8 +66,6 @@
66 - [TORCHINDUCTOR\_NPU\_BACKEND](inductor/TORCHINDUCTOR_NPU_BACKEND.md)66 - [TORCHINDUCTOR\_NPU\_BACKEND](inductor/TORCHINDUCTOR_NPU_BACKEND.md)
67 - [(beta)INDUCTOR\_ASCEND\_CHECK\_ACCURACY](inductor/INDUCTOR_ASCEND_CHECK_ACCURACY.md)67 - [(beta)INDUCTOR\_ASCEND\_CHECK\_ACCURACY](inductor/INDUCTOR_ASCEND_CHECK_ACCURACY.md)
68 - [NPU\_INDUCTOR\_FALLBACK\_LIST](inductor/NPU_INDUCTOR_FALLBACK_LIST.md)68 - [NPU\_INDUCTOR\_FALLBACK\_LIST](inductor/NPU_INDUCTOR_FALLBACK_LIST.md)
69- - [(beta)TORCHINDUCTOR\_ENABLE\_MFUSION](inductor/TORCHINDUCTOR_ENABLE_MFUSION.md)
70- - [TORCHINDUCTOR\_USE\_AKG](inductor/TORCHINDUCTOR_USE_AKG.md)
71 69 
72- [附录](appendix/_menu_appendix.md)70- [附录](appendix/_menu_appendix.md)
73 - [在进行模型分布式训练时遇到报错“RuntimeError: The Inner Error ...”](appendix/runtimeerror_Inner_Error.md)71 - [在进行模型分布式训练时遇到报错“RuntimeError: The Inner Error ...”](appendix/runtimeerror_Inner_Error.md)
@@ -94,8 +94,34 @@
94 94 
95|环境变量名称|简介|95|环境变量名称|简介|
96|--|--|96|--|--|
97-|[TORCHINDUCTOR_NPU_BACKEND](inductor/TORCHINDUCTOR_NPU_BACKEND.md)|通过该环境变量可配置图模式下的优化模式,支持Triton、MLIR、DVM、Ascend C等优化模式。|97+|[TORCH_COMPILE_DEBUG](inductor/TORCH_COMPILE_DEBUG.md)|通过此环境变量可开启torch.compile的调试模式,导出FX图、codegen输出等调试信息。|
98-|[(beta)INDUCTOR_ASCEND_CHECK_ACCURACY](inductor/INDUCTOR_ASCEND_CHECK_ACCURACY.md)|INDUCTOR_ASCEND_CHECK_ACCURACY是TorchNPU提供的精度校验工具,仅在torch.compile图编译后端为"Inductor"且模式为"Triton"时自动检测融合算子的数值精度。|98+|[TORCH_LOGS](inductor/TORCH_LOGS.md)|通过此环境变量可控制PyTorch各模块的日志输出级别,与社区行为一致。|
H
HhtchuSep 7

TORCH_LOGS 是框架公共变量,响应文档不在这个pr里承载

likedislike
AACAES
Sep 7 Comments:
99+|[TORCH_CACHING_PRECOMPILE](inductor/TORCH_CACHING_PRECOMPILE.md)|通过此环境变量可开启自动缓存预编译实验性功能,自动保存和加载Dynamo编译缓存,加速后续编译过程,与社区行为一致。|
100+|[TORCHINDUCTOR_NPU_BACKEND](inductor/TORCHINDUCTOR_NPU_BACKEND.md)|通过该环境变量可配置图模式下的优化模式,支持Triton、DVM、Ascend C等优化模式。|
101+|[TORCHINDUCTOR_CACHE_DIR](inductor/TORCHINDUCTOR_CACHE_DIR.md)|通过此环境变量可配置Inductor编译缓存的目录路径,与社区行为一致。|
102+|[INDUCTOR_DVM_ENABLE_MATMUL_FUSION](inductor/INDUCTOR_DVM_ENABLE_MATMUL_FUSION.md)|通过此环境变量可开启DVM MatMul template融合,将矩阵乘算子融合为DVM template kernel。|
103+|[(beta)INDUCTOR_ASCEND_CHECK_ACCURACY](inductor/INDUCTOR_ASCEND_CHECK_ACCURACY.md)|INDUCTOR_ASCEND_CHECK_ACCURACY是TorchNPU提供的精度校验工具,在torch.compile图编译模式(Inductor)的Triton模式与DVM模式下自动检测融合算子的数值精度。|
104+|[INDUCTOR_ASCEND_DEBUG](inductor/INDUCTOR_ASCEND_DEBUG.md)|通过此环境变量可控制Triton编译时是否启用调试模式。|
105+|[INDUCTOR_ASCEND_DUMP_FX_GRAPH](inductor/INDUCTOR_ASCEND_DUMP_FX_GRAPH.md)|通过此环境变量可控制在Inductor降层时是否导出FX图。|
106+|[INDUCTOR_ASCEND_FX_GRAPH_CACHE](inductor/INDUCTOR_ASCEND_FX_GRAPH_CACHE.md)|通过此环境变量可配置Inductor降层时FX图缓存的目录路径。|
107+|[INDUCTOR_ASCEND_LOG_LEVEL](inductor/INDUCTOR_ASCEND_LOG_LEVEL.md)|通过此环境变量可配置Inductor模块的日志级别。|
99|[NPU_INDUCTOR_FALLBACK_LIST](inductor/NPU_INDUCTOR_FALLBACK_LIST.md)|通过此环境变量可指定需要回退到PyTorch原生的算子列表。|108|[NPU_INDUCTOR_FALLBACK_LIST](inductor/NPU_INDUCTOR_FALLBACK_LIST.md)|通过此环境变量可指定需要回退到PyTorch原生的算子列表。|
100-|[(beta)TORCHINDUCTOR_ENABLE_MFUSION](inductor/TORCHINDUCTOR_ENABLE_MFUSION.md)|通过此环境变量可控制是否启用MFusion融合优化功能,仅在torch.compile图编译后端为"Inductor"生效。|109+|[TORCHINDUCTOR_MAX_AUTOTUNE](inductor/TORCHINDUCTOR_MAX_AUTOTUNE.md)|通过此环境变量可控制是否开启max autotune功能,与社区行为一致。|
101-|[TORCHINDUCTOR_USE_AKG](inductor/TORCHINDUCTOR_USE_AKG.md)|通过此环境变量可配置torch.compile图模式(Inductor)下MLIR(Multi-Level Intermediate Representation)模式启用AKG(Auto Kernel Generator)后端优化。|110+|[TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDS](inductor/TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDS.md)|通过此环境变量可配置max autotune过程中矩阵乘算子参与调优的候选实现列表。|
111+|[TORCHINDUCTOR_COMPILE_THREADS](inductor/TORCHINDUCTOR_COMPILE_THREADS.md)|通过此环境变量可配置并发编译的进程数量,与社区行为一致。|
112+|[TORCHNPU_PRECOMPILE_THREADS](inductor/TORCHNPU_PRECOMPILE_THREADS.md)|通过此环境变量可配置torch_npu Inductor的预编译线程数。|
113+|[TORCHINDUCTOR_NPU_CATLASS_DIR](inductor/TORCHINDUCTOR_NPU_CATLASS_DIR.md)|通过此环境变量可配置Catlass模板库的路径,与社区TORCHINDUCTOR_CUTLASS_DIR对应。|
114+|[TORCHINDUCTOR_CATLASS_ENABLED_OPS](inductor/TORCHINDUCTOR_CATLASS_ENABLED_OPS.md)|通过此环境变量可配置Catlass模板库支持的矩阵乘类型算子列表,与社区TORCHINDUCTOR_CUTLASS_ENABLED_OPS对应。|
115+|[CATLASS_EPILOGUE_FUSION](inductor/CATLASS_EPILOGUE_FUSION.md)|通过此环境变量可控制是否开启Catlass epilogue融合功能,与社区CUTLASS_EPILOGUE_FUSION对应。|
116+|[TORCHINDUCTOR_PROFILE_WITH_DO_BENCH_USING_PROFILING](inductor/TORCHINDUCTOR_PROFILE_WITH_DO_BENCH_USING_PROFILING.md)|通过此环境变量可控制autotune过程中是否使用profiling进行性能测量,与社区行为一致。|
117+|[ENABLE_INPLACE_BUFFERS](inductor/ENABLE_INPLACE_BUFFERS.md)|通过此环境变量可控制是否启用原地缓冲区优化。|
118+|[TORCHINDUCTOR_ENABLE_WELFORD](inductor/TORCHINDUCTOR_ENABLE_WELFORD.md)|通过此环境变量可控制是否启用Welford算法计算方差与均值类归约。|
119+|[TORCHINDUCTOR_ENABLE_LAYERNORM_V4](inductor/TORCHINDUCTOR_ENABLE_LAYERNORM_V4.md)|通过此环境变量可控制是否启用LayerNormV4专属实现(需A5系列且Welford同时开启)。|
120+|[TORCHINDUCTOR_ENABLE_FAST_GELU](inductor/TORCHINDUCTOR_ENABLE_FAST_GELU.md)|通过此环境变量可控制GELU激活函数是否使用tanh近似decomposition。|
121+|[ENABLE_PARALLEL_SCHEDULER](inductor/ENABLE_PARALLEL_SCHEDULER.md)|通过此环境变量可控制是否启用并行调度器FX pass。|
122+|[PARALLEL_SCHEDULER_NODES_MIN](inductor/PARALLEL_SCHEDULER_NODES_MIN.md)|通过此环境变量可配置并行调度器分组的最小调度节点数。|
123+|[SHUT_DOWN_FX_PASS_LIST](inductor/SHUT_DOWN_FX_PASS_LIST.md)|通过此环境变量可指定需要关闭的torch_npu图优化FX pass列表。|
124+|[NPU_INDUCTOR_DYNAMIC_FX_PASS](inductor/NPU_INDUCTOR_DYNAMIC_FX_PASS.md)|通过此环境变量可控制图优化FX pass是否使用动态shape模式。|
125+|[FX_SUBGRAPH_DUMP_PATH](inductor/FX_SUBGRAPH_DUMP_PATH.md)|通过此环境变量可配置DVM模式下FX子图的dump路径。|
126+|[TORCHINDUCTOR_WORKER_LOGPATH](inductor/TORCHINDUCTOR_WORKER_LOGPATH.md)|通过此环境变量可指定Inductor worker子进程的日志路径,与社区行为一致。|
127+|[TORCHINDUCTOR_WORKER_SUPPRESS_LOGGING](inductor/TORCHINDUCTOR_WORKER_SUPPRESS_LOGGING.md)|通过此环境变量可控制是否抑制Inductor worker子进程的日志输出,与社区行为一致。|
@@ -0,0 +1,32 @@
1+# CATLASS\_EPILOGUE\_FUSION
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可控制是否开启Catlass epilogue融合功能。开启后,Catlass模板库会将epilogue操作(如bias add、activation等)融合到matmul kernel中,减少额外的kernel launch和内存搬运。
6+ 
7+- 默认值为`0`,关闭Catlass epilogue融合。
8+- 配置为`1`:开启Catlass epilogue融合。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> **PyTorch社区:** 社区对应环境变量`CUTLASS_EPILOGUE_FUSION`,行为一致,默认值为`0`。
14+ 
15+## 配置示例
16+ 
17+开启Catlass epilogue融合:
18+ 
19+```bash
20+export CATLASS_EPILOGUE_FUSION=1
21+```
22+ 
23+## 使用约束
24+ 
25+- 需在导入`torch_npu`之前设置。
26+- 需同时配置`TORCHINDUCTOR_NPU_CATLASS_DIR`(指定Catlass模板库路径)和`TORCHINDUCTOR_MAX_AUTOTUNE=1`时生效。
27+ 
28+## 支持的型号
29+ 
30+- <term>Atlas A2 训练系列产品</term>
31+- <term>Atlas A3 训练系列产品</term>
32+- <term>Ascend 950DT</term>
@@ -0,0 +1,32 @@
1+# ENABLE\_INPLACE\_BUFFERS
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可控制是否启用原地缓冲区(inplace buffers)优化。启用后,Inductor允许内核将输入缓冲区复用为输出缓冲区,减少内存分配。
6+ 
7+- 默认值为`1`(`true`、`yes`等效),启用原地缓冲区。
8+- 配置为`0`:禁用原地缓冲区。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - 禁用此选项后,Inductor的`inplace_buffers`配置将被设为`False`,同时会禁用NPU-IR的多缓冲区优化。
14+> - **PyTorch社区:** 社区通过`torch._inductor.config.inplace_buffers`配置项控制原地缓冲区,无同名环境变量。
15+ 
16+## 配置示例
17+ 
18+禁用原地缓冲区:
19+ 
20+```bash
21+export ENABLE_INPLACE_BUFFERS=0
22+```
23+ 
24+## 使用约束
25+ 
26+需在导入`torch_npu`之前设置。
27+ 
28+## 支持的型号
29+ 
30+- <term>Atlas 训练系列产品</term>
31+- <term>Atlas A2 训练系列产品</term>
32+- <term>Atlas A3 训练系列产品</term>
@@ -0,0 +1,32 @@
1+# ENABLE\_PARALLEL\_SCHEDULER
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可控制是否启用并行调度器FX pass。启用后,`torch_npu`在图优化阶段按算子类型(Cube/Vector)对调度节点分组重排,使矩阵乘类(Cube)与向量类(Vector)算子切分到不同流水分组,提升计算与通信、大算子与小算子间的并行度。
6+ 
7+- 默认值为`false`,不启用并行调度器。
8+- 配置为`true`:启用并行调度器。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - 仅对NPU wrapper代码生成(NPUPythonWrapperCodeGen)生效。
14+> - 分组最小节点数由`PARALLEL_SCHEDULER_NODES_MIN`控制。
15+> - 此功能为`torch_npu`特有。**PyTorch社区:** 社区无此环境变量。
16+ 
17+## 配置示例
18+ 
19+```bash
20+export ENABLE_PARALLEL_SCHEDULER=true
21+```
22+ 
23+## 使用约束
24+ 
25+需在导入`torch_npu`之前设置。
26+ 
27+## 支持的型号
28+ 
29+- <term>Atlas 训练系列产品</term>
30+- <term>Atlas A2 训练系列产品</term>
31+- <term>Atlas A3 训练系列产品</term>
32+- <term>Ascend 950DT</term>
@@ -0,0 +1,30 @@
1+# FX\_SUBGRAPH\_DUMP\_PATH
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可配置FX子图的dump路径。设置后,在DVM模式(`TORCHINDUCTOR_NPU_BACKEND="dvm"`)下编译时会把FX子图导出到该路径(按`<路径>/<device索引>/<kernel名>`组织),用于子图划分与DVM编译问题的定位分析。
6+ 
7+- 默认值未配置,不dump FX子图。
8+- 设置有效路径:将FX子图导出到指定目录。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> 此功能为`torch_npu`特有。**PyTorch社区:** 社区通过`torch._inductor.config`的debug输出控制,无此环境变量。
14+ 
15+## 配置示例
16+ 
17+```bash
18+export FX_SUBGRAPH_DUMP_PATH=/tmp/fx_subgraph_dump
19+```
20+ 
21+## 使用约束
22+ 
23+- 需在导入`torch_npu`之前设置,并确保目标路径有写权限。
24+- 仅在DVM模式(`TORCHINDUCTOR_NPU_BACKEND="dvm"`)下生效。
25+ 
26+## 支持的型号
27+ 
28+- <term>Atlas 训练系列产品</term>
29+- <term>Atlas A2 训练系列产品</term>
30+- <term>Atlas A3 训练系列产品</term>
@@ -2,7 +2,7 @@
2 2 
3## 功能描述3## 功能描述
4 4 
5-INDUCTOR_ASCEND_CHECK_ACCURACY是TorchNPU提供的精度校验工具,在torch.compile图编译后端为“inductor”时自动检测融合算子的数值精度。5+INDUCTOR_ASCEND_CHECK_ACCURACY是TorchNPU提供的精度校验工具,在torch.compile图编译模式(Inductor)下自动检测融合算子的数值精度。
6 6 
7该工具可捕获融合算子对应的FX子图,生成独立可执行的单算子测试用例,并在相同输入条件下比对eager与融合算子的输出差异。当差异超出预设阈值时,自动输出精度校验失败日志及诊断信息,辅助开发者快速定位精度问题。7该工具可捕获融合算子对应的FX子图,生成独立可执行的单算子测试用例,并在相同输入条件下比对eager与融合算子的输出差异。当差异超出预设阈值时,自动输出精度校验失败日志及诊断信息,辅助开发者快速定位精度问题。
8 8 
@@ -33,10 +33,10 @@ export INDUCTOR_ASCEND_CHECK_ACCURACY_RTOL_ATOL="rtol=1e-6,atol=1e-7"
33 33 
34> [!CAUTION]34> [!CAUTION]
35>35>
36-> 如需根据不同数据类型(如float32、float16、bfloat16等)配置不同的精度阈值,请手动修改不同后端源码中的acc_comp_tol字典。各后端配置文件路径如下:36+> 如需根据不同数据类型(如float32、float16、bfloat16等)配置不同的精度阈值,请手动修改不同模式源码中的acc_comp_tol字典。各模式配置文件路径如下:
37>37>
38> - Triton:[config](../../../../../torch_npu/_inductor/config.py)38> - Triton:[config](../../../../../torch_npu/_inductor/config.py)
39-> - MLIR和DVM:[config](../../../../../torch_npu/_inductor/ascend_npu_ir/ascend_npu_ir/config.py)39+> - DVM:[config](../../../../../torch_npu/_inductor/ascend_npu_ir/ascend_npu_ir/config.py)
40 40 
41精度比对无异常时不打印额外信息。比对有异常时打印如下格式的告警:41精度比对无异常时不打印额外信息。比对有异常时打印如下格式的告警:
42 42 
@@ -44,18 +44,22 @@ export INDUCTOR_ASCEND_CHECK_ACCURACY_RTOL_ATOL="rtol=1e-6,atol=1e-7"
44CHECK ACCURACY FAILED! Kernel: <kernel_name>, Output idx: <idx>, Mismatched: <m>/<n> (<pct>%), Greatest Rel Diff: <rel>, Greatest Abs Diff: <abs>, rtol: <rtol>, atol: <atol>, dump_path: <path> 44CHECK ACCURACY FAILED! Kernel: <kernel_name>, Output idx: <idx>, Mismatched: <m>/<n> (<pct>%), Greatest Rel Diff: <rel>, Greatest Abs Diff: <abs>, rtol: <rtol>, atol: <atol>, dump_path: <path>
45```45```
46 46 
47-当设置为Triton后端时会将数据及fx graph文件保存至打印信息的dump_path目录下。47+当设置为Triton模式(`TORCHINDUCTOR_NPU_BACKEND="default"`)时会将数据及fx graph文件保存至打印信息的dump_path目录下。
48+ 
49+> [!NOTE]
50+>
51+> - 此功能为`torch_npu`特有,PyTorch社区无直接对应变量。
48 52 
49## 使用约束53## 使用约束
50 54 
51- 此环境变量仅可在PyTorch2.7.1和PyTorch2.9.0版本使用。55- 此环境变量仅可在PyTorch2.7.1和PyTorch2.9.0版本使用。
52 56 
53-- 在torch.compile图编译后端为“inductor”时可使用此环境变量。57+- 在torch.compile图编译模式(Inductor)下可使用此环境变量。
54 58 
55-- 此环境变量开启时,Triton后端会自动将`torch._inductor.config.split_reductions`设置为`False`。59+- 此环境变量开启时,Triton模式(`TORCHINDUCTOR_NPU_BACKEND="default"`)会自动将`torch._inductor.config.split_reductions`设置为`False`。
56 60 
57## 支持的型号61## 支持的型号
58 62 
59- <term>Atlas A2 训练系列产品</term>63- <term>Atlas A2 训练系列产品</term>
60- <term>Atlas A3 训练系列产品</term>64- <term>Atlas A3 训练系列产品</term>
61-- <term>Ascend 950DT</term>(仅支持Inductor后端编译器中的Triton模式、DVM模式和Ascend C模式,不支持MLIR模式)65+- <term>Ascend 950DT</term>(仅支持Inductor后端编译器中的Triton模式、DVM模式和Ascend C模式)
@@ -0,0 +1,32 @@
1+# INDUCTOR\_ASCEND\_DEBUG
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可控制Triton编译时是否启用调试模式。启用后,Triton编译器会生成包含调试信息的编译元数据,辅助定位编译阶段的问题。
6+ 
7+- 默认值为`0`,不启用调试模式。
8+- 配置为`1`:启用调试模式。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - 此环境变量仅在Triton模式(`TORCHINDUCTOR_NPU_BACKEND="default"`)下生效。
14+> - 实际生效还需满足`assert_indirect_indexing`为True且非HIP(Heterogeneous-compute Interface for Portability,AMD异构计算接口)设备。
15+> - 仅影响Triton编译过程的调试信息输出,不影响算子功能。
16+> - **PyTorch社区:** 社区通过`torch._inductor.config.debug`配置调试模式,无此环境变量。
17+ 
18+## 配置示例
19+ 
20+```bash
21+export INDUCTOR_ASCEND_DEBUG=1
22+```
23+ 
24+## 使用约束
25+ 
26+需在导入`torch_npu`之前设置。
27+ 
28+## 支持的型号
29+ 
30+- <term>Atlas 训练系列产品</term>
31+- <term>Atlas A2 训练系列产品</term>
32+- <term>Atlas A3 训练系列产品</term>
@@ -0,0 +1,31 @@
1+# INDUCTOR\_ASCEND\_DUMP\_FX\_GRAPH
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可控制在Inductor降层时是否导出FX图。启用后,系统会在降层过程中将FX图导出为文件,便于开发者分析图优化和降层过程。
6+ 
7+- 默认值为`False`,不导出FX图。
8+- 配置为`True`:导出FX图。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - 当`INDUCTOR_ASCEND_CHECK_ACCURACY`启用时,会自动启用FX图dump。
14+> - dump文件路径由`TORCHINDUCTOR_CACHE_DIR`或`INDUCTOR_ASCEND_FX_GRAPH_CACHE`控制。
15+> - **PyTorch社区:** 社区通过`torch._inductor.config.trace.enabled`和`torch._inductor.config.trace.log_url`控制FX图导出,无此环境变量。
16+ 
17+## 配置示例
18+ 
19+```bash
20+export INDUCTOR_ASCEND_DUMP_FX_GRAPH=True
21+```
22+ 
23+## 使用约束
24+ 
25+需在导入`torch_npu`之前设置。
26+ 
27+## 支持的型号
28+ 
29+- <term>Atlas 训练系列产品</term>
30+- <term>Atlas A2 训练系列产品</term>
31+- <term>Atlas A3 训练系列产品</term>
@@ -0,0 +1,30 @@
1+# INDUCTOR\_ASCEND\_FX\_GRAPH\_CACHE
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可配置Inductor降层时FX图缓存的目录路径。设置后,系统会将追踪的FX图缓存到指定目录,便于后续复用和分析。
6+ 
7+- 默认值未设置,不缓存FX图。
8+- 设置路径:缓存FX图到指定目录。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> **PyTorch社区:** 社区对应环境变量`TORCHINDUCTOR_FX_GRAPH_CACHE`,用于控制FX图缓存,`torch_npu`在此基础上扩展了独立的缓存路径配置。
14+ 
15+## 配置示例
16+ 
17+```bash
18+export INDUCTOR_ASCEND_FX_GRAPH_CACHE=/data/fx_graph_cache
19+```
20+ 
21+## 使用约束
22+ 
23+- 需在导入`torch_npu`之前设置。
24+- 需确保目标目录可写。
25+ 
26+## 支持的型号
27+ 
28+- <term>Atlas 训练系列产品</term>
29+- <term>Atlas A2 训练系列产品</term>
30+- <term>Atlas A3 训练系列产品</term>
@@ -0,0 +1,33 @@
1+# INDUCTOR\_ASCEND\_LOG\_LEVEL
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可配置Inductor模块的日志级别,控制日志输出的详细程度。
6+ 
7+- 默认值为`WARNING`,输出警告信息。
8+- 配置为`DEBUG`:最详细的调试信息。
9+- 配置为`INFO`:一般信息。
10+- 配置为`ERROR`:错误信息。
11+- 配置为`CRITICAL`:严重错误信息。
12+ 
13+ 
14+> [!NOTE]
15+>
16+> - 此环境变量在`torch_npu._inductor`模块初始化时读取并缓存,运行中修改不会生效。
17+> - **PyTorch社区:** 社区通过`torch._inductor.config.log_level`配置日志级别,无此环境变量。
18+ 
19+## 配置示例
20+ 
21+```bash
22+export INDUCTOR_ASCEND_LOG_LEVEL=DEBUG
23+```
24+ 
25+## 使用约束
26+ 
27+需在导入`torch_npu`之前设置。
28+ 
29+## 支持的型号
30+ 
31+- <term>Atlas 训练系列产品</term>
32+- <term>Atlas A2 训练系列产品</term>
33+- <term>Atlas A3 训练系列产品</term>
@@ -0,0 +1,33 @@
1+# INDUCTOR\_DVM\_ENABLE\_MATMUL\_FUSION
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可开启DVM MatMul template融合功能。开启后,Inductor在DVM模式(`TORCHINDUCTOR_NPU_BACKEND="dvm"`)下会将矩阵乘算子(`mm`、`bmm`、`addmm`、`baddbmm`)通过DVM template进行融合,生成高效的融合kernel,提升矩阵乘性能。
6+ 
7+- 默认值为`0`,关闭DVM MatMul template融合。
8+- 配置为`1`:开启DVM MatMul template融合。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - 此环境变量为`torch_npu`特有。
14+> - 开启后会注册DVM mm template lowering,将矩阵乘算子融合为DVM template kernel。
15+> - **PyTorch社区:** 社区无此环境变量。
16+ 
17+## 配置示例
18+ 
19+开启DVM MatMul template融合:
20+ 
21+```bash
22+export INDUCTOR_DVM_ENABLE_MATMUL_FUSION=1
23+```
24+ 
25+## 使用约束
26+ 
27+- 需在导入`torch_npu`之前设置。
28+- 仅在DVM模式(`TORCHINDUCTOR_NPU_BACKEND="dvm"`)下生效。
29+ 
30+## 支持的型号
31+ 
32+- <term>Atlas A2 训练系列产品</term>
33+- <term>Atlas A3 训练系列产品</term>
@@ -0,0 +1,33 @@
1+# NPU\_INDUCTOR\_DYNAMIC\_FX\_PASS
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可控制图优化FX pass是否使用动态shape(symbolic shape)模式。启用后,针对动态shape的图优化pass按符号shape语义执行;关闭后,这些pass回退到legacy的静态shape行为。
6+ 
7+- 默认值为`1`,使用动态shape模式的FX pass。
8+- 配置为`0`、`false`或`off`:回退到静态shape行为。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - 主要用于动态shape场景下FX pass行为异常时的回退开关。
14+> - 此功能为`torch_npu`特有。**PyTorch社区:** 社区无此环境变量。
15+ 
16+## 配置示例
17+ 
18+回退静态行为:
19+ 
20+```bash
21+export NPU_INDUCTOR_DYNAMIC_FX_PASS=0
22+```
23+ 
24+## 使用约束
25+ 
26+需在导入`torch_npu`之前设置。
27+ 
28+## 支持的型号
29+ 
30+- <term>Atlas 训练系列产品</term>
31+- <term>Atlas A2 训练系列产品</term>
32+- <term>Atlas A3 训练系列产品</term>
33+- <term>Ascend 950DT</term>
@@ -2,7 +2,7 @@
2 2 
3## 功能描述3## 功能描述
4 4 
5-通过此环境变量可指定需要回退到PyTorch原生的算子列表。当某些算子在NPU后端执行出现问题或需要使用算子原生实现时,可通过此环境变量进行配置。5+通过此环境变量可指定需要回退到PyTorch原生的算子列表。当某些算子在NPU上执行出现问题或需要使用算子原生实现时,可通过此环境变量进行配置。
6 6 
7- 默认值为`None`,不进行算子回退。7- 默认值为`None`,不进行算子回退。
8- 配置指定算子:以逗号分隔的算子名称列表(如`aten.div,aten.add.Tensor`),对应的算子将回退到PyTorch原生实现。8- 配置指定算子:以逗号分隔的算子名称列表(如`aten.div,aten.add.Tensor`),对应的算子将回退到PyTorch原生实现。
@@ -24,9 +24,13 @@ import os
24os.environ["NPU_INDUCTOR_FALLBACK_LIST"] = "allfallback"24os.environ["NPU_INDUCTOR_FALLBACK_LIST"] = "allfallback"
25```25```
26 26 
27+> [!NOTE]
28+>
29+> - **PyTorch社区:** 社区通过`torch._inductor.config.fallback_kernel_list`控制回退算子列表,`torch_npu`通过环境变量方式提供类似功能。
30+ 
27## 使用约束31## 使用约束
28 32 
29-- 该环境变量仅在Inductor后端场景下生效。33+- 该环境变量仅在图模式(Inductor)场景下生效。
30- 算子名称需使用完整的aten算子命名格式(如`aten.div.Tensor`、`aten.add.Tensor`)。34- 算子名称需使用完整的aten算子命名格式(如`aten.div.Tensor`、`aten.add.Tensor`)。
31- 多算子使用逗号进行分隔,不支持空格。35- 多算子使用逗号进行分隔,不支持空格。
32- 回退操作会导致相应算子失去NPU硬件加速能力,请谨慎使用。36- 回退操作会导致相应算子失去NPU硬件加速能力,请谨慎使用。
@@ -37,5 +41,4 @@ os.environ["NPU_INDUCTOR_FALLBACK_LIST"] = "allfallback"
37- <term>Atlas 训练系列产品</term>41- <term>Atlas 训练系列产品</term>
38- <term>Atlas A2 训练系列产品</term>42- <term>Atlas A2 训练系列产品</term>
39- <term>Atlas A3 训练系列产品</term>43- <term>Atlas A3 训练系列产品</term>
40-- <term>Atlas 800I A2 推理产品</term>44+- <term>Ascend 950DT</term>(仅支持Inductor后端编译器中的Triton模式和DVM模式)
41-- <term>Ascend 950DT</term>(仅支持Inductor后端编译器中的Triton模式和DVM模式,不支持MLIR模式)
@@ -0,0 +1,30 @@
1+# PARALLEL\_SCHEDULER\_NODES\_MIN
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可配置并行调度器分组的 Minimum Scheduler Node Count(最小调度节点数)。当Cube组或Vector组的节点数小于内部阈值(该环境变量的1/5)时,并行调度器放弃本次分组重排,保持原有调度顺序,避免为很小的算子组引入额外调度开销。
6+ 
7+- 默认值为`20`,组内节点数少于4时不分组。
8+- 设置正整数:按所配置值的1/5作为分组下限。
9+ 
10+> [!NOTE]
11+>
12+> 此功能为`torch_npu`特有。**PyTorch社区:** 社区无此环境变量。
13+ 
14+## 配置示例
15+ 
16+```bash
17+export ENABLE_PARALLEL_SCHEDULER=true
18+export PARALLEL_SCHEDULER_NODES_MIN=40
19+```
20+ 
21+## 使用约束
22+ 
23+需在导入`torch_npu`之前设置,且仅在`ENABLE_PARALLEL_SCHEDULER=true`时生效。
24+ 
25+## 支持的型号
26+ 
27+- <term>Atlas 训练系列产品</term>
28+- <term>Atlas A2 训练系列产品</term>
29+- <term>Atlas A3 训练系列产品</term>
30+- <term>Ascend 950DT</term>
@@ -0,0 +1,41 @@
1+# SHUT\_DOWN\_FX\_PASS\_LIST
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可指定需要关闭的`torch_npu`图优化FX pass列表。列表中的pass在注册阶段即被跳过(不参与推理与训练的图优化),用于规避特定pass引入的问题或对照验证pass效果。
6+ 
7+- 默认值未配置,仅内置默认关闭的pass保持关闭(如`fused_matmul_relu_pass`等,由对应config开关决定)。
8+- 逗号分隔的pass名称列表:列表中的pass不注册。
9+- 配置为`all`:关闭全部自定义FX pass。
10+ 
11+ 
12+> [!NOTE]
13+>
14+> - pass名称为注册时的函数名(如`fused_matmul_relu_pass`、`multi_slice_concat_pass`),可通过`torch_npu`日志或源码`torch_npu/_inductor/fx_passes/ascend_custom_passes/`确认。
15+> - 该变量在默认关闭列表的基础上追加,不会打开已默认关闭的pass。
16+> - 此功能为`torch_npu`特有。**PyTorch社区:** 社区无此环境变量。
17+ 
18+## 配置示例
19+ 
20+关闭指定pass:
21+ 
22+```bash
23+export SHUT_DOWN_FX_PASS_LIST="fused_matmul_relu_pass,multi_slice_concat_pass"
24+```
25+ 
26+关闭全部自定义pass:
27+ 
28+```bash
29+export SHUT_DOWN_FX_PASS_LIST="all"
30+```
31+ 
32+## 使用约束
33+ 
34+需在导入`torch_npu`之前设置。
35+ 
36+## 支持的型号
37+ 
38+- <term>Atlas 训练系列产品</term>
39+- <term>Atlas A2 训练系列产品</term>
40+- <term>Atlas A3 训练系列产品</term>
41+- <term>Ascend 950DT</term>
@@ -0,0 +1,32 @@
1+# TORCHINDUCTOR\_CACHE\_DIR
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可配置Inductor编译缓存的目录路径。设置后,Inductor会将编译生成的kernel缓存到指定目录,便于后续复用,加速后续编译过程。
6+ 
7+- 默认值未配置,使用默认缓存目录(通常为系统临时目录下的`torchinductor_<username>`)。
8+- 设置路径:缓存编译产物到指定目录。
9+ 
10+> [!NOTE]
11+>
12+> - 此环境变量在全部模式(`TORCHINDUCTOR_NPU_BACKEND="default"`/`"dvm"`/`"ascendc"`等)下均生效。
13+> - 设置独立的缓存目录便于多用户共享缓存或持久化缓存。
14+> - **PyTorch社区:** 社区对应环境变量`TORCHINDUCTOR_CACHE_DIR`,行为一致,用于指定Inductor编译缓存目录。
15+ 
16+## 配置示例
17+ 
18+```bash
19+export TORCHINDUCTOR_CACHE_DIR=/tmp/torchinductor_cache
20+```
21+ 
22+## 使用约束
23+ 
24+- 需在导入`torch_npu`之前设置。
25+- 需确保目标目录可写且有足够的磁盘空间。
26+ 
27+## 支持的型号
28+ 
29+- <term>Atlas 训练系列产品</term>
30+- <term>Atlas A2 训练系列产品</term>
31+- <term>Atlas A3 训练系列产品</term>
32+- <term>Ascend 950DT</term>
@@ -0,0 +1,32 @@
1+# TORCHINDUCTOR\_CATLASS\_ENABLED\_OPS
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可配置Catlass模板库支持的矩阵乘类型算子列表。设置后,Inductor将对指定类型的matmul算子尝试使用Catlass模板库进行模板调优。
6+ 
7+- 默认值为`"mm,addmm,bmm"`,即对`mm`、`addmm`、`bmm`算子启用Catlass。
8+- 可添加`grouped_mm`扩展支持范围。
9+ 
10+> [!NOTE]
11+>
12+> - 此环境变量以逗号分隔算子名称,不支持空格。
13+> - **PyTorch社区:** 社区对应环境变量`TORCHINDUCTOR_CUTLASS_ENABLED_OPS`,行为一致,默认值为`"mm,addmm,bmm"`。
14+ 
15+## 配置示例
16+ 
17+扩展支持grouped_mm:
18+ 
19+```bash
20+export TORCHINDUCTOR_CATLASS_ENABLED_OPS="mm,addmm,bmm,grouped_mm"
21+```
22+ 
23+## 使用约束
24+ 
25+- 需在导入`torch_npu`之前设置。
26+- 需同时配置`TORCHINDUCTOR_NPU_CATLASS_DIR`(指定Catlass模板库路径)和`TORCHINDUCTOR_MAX_AUTOTUNE=1`时生效。
27+ 
28+## 支持的型号
29+ 
30+- <term>Atlas A2 训练系列产品</term>
31+- <term>Atlas A3 训练系列产品</term>
32+- <term>Ascend 950DT</term>
@@ -0,0 +1,31 @@
1+# TORCHINDUCTOR\_COMPILE\_THREADS
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可配置并发编译的进程数量。Inductor在编译时会使用多个进程并行编译kernel,以加速编译过程。
6+ 
7+- 默认值为`32`,使用32个进程进行并发编译。
8+- 配置为正整数:使用指定的进程数进行并发编译。
9+ 
10+> [!NOTE]
11+>
12+> - 增大线程数可加速编译,但会增加内存占用。
13+> - 建议不超过机器CPU核心数。
14+> - **PyTorch社区:** 社区对应环境变量`TORCHINDUCTOR_COMPILE_THREADS`,行为一致,默认值为`32`。
15+ 
16+## 配置示例
17+ 
18+```bash
19+export TORCHINDUCTOR_COMPILE_THREADS=16
20+```
21+ 
22+## 使用约束
23+ 
24+需在导入`torch_npu`之前设置。
25+ 
26+## 支持的型号
27+ 
28+- <term>Atlas 训练系列产品</term>
29+- <term>Atlas A2 训练系列产品</term>
30+- <term>Atlas A3 训练系列产品</term>
31+- <term>Ascend 950DT</term>
@@ -0,0 +1,31 @@
1+# TORCHINDUCTOR\_ENABLE\_FAST\_GELU
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可控制GELU激活函数的decomposition实现。启用后,`aten.gelu`在图模式下降解为tanh近似公式(`0.5*x*(1+tanh(√(2/π)*(x+0.044715*x³)))`的sigmoid等价形式),用乘加与sigmoid替代`erf`算子,提升kernel执行性能。
6+ 
7+- 默认值为`0`,使用默认decomposition(含`erf`)。
8+- 配置为`1`:GELU降解为tanh近似(fast gelu)实现。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - tanh近似与`erf`精确实现存在数值差异,对精度敏感的训练任务建议先验证。
14+> - 此功能为`torch_npu`特有。**PyTorch社区:** 社区通过`torch._inductor.config`的激活函数decomposition控制,无此环境变量。
15+ 
16+## 配置示例
17+ 
18+```bash
19+export TORCHINDUCTOR_ENABLE_FAST_GELU=1
20+```
21+ 
22+## 使用约束
23+ 
24+需在导入`torch_npu`之前设置。
25+ 
26+## 支持的型号
27+ 
28+- <term>Atlas 训练系列产品</term>
29+- <term>Atlas A2 训练系列产品</term>
30+- <term>Atlas A3 训练系列产品</term>
31+- <term>Ascend 950DT</term>
@@ -0,0 +1,29 @@
1+# TORCHINDUCTOR\_ENABLE\_LAYERNORM\_V4
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可控制是否启用LayerNormV4专属实现。启用后,宽度为512的LayerNorm在Welford路径下使用专属的LayerNormV4实现:归约epilogue融合进Welford kernel后,LayerNormV4更快且避免了SIMD归约与SIMT后处理的切分。
6+ 
7+- 默认值为`0`,不启用LayerNormV4实现。
8+- 配置为`1`:启用LayerNormV4实现。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> 此功能为`torch_npu`特有。**PyTorch社区:** 社区无此环境变量。
14+ 
15+## 配置示例
16+ 
17+```bash
18+export TORCHINDUCTOR_ENABLE_WELFORD=1
19+export TORCHINDUCTOR_ENABLE_LAYERNORM_V4=1
20+```
21+ 
22+## 使用约束
23+ 
24+需在导入`torch_npu`之前设置。生效需同时满足:A5系列芯片、`TORCHINDUCTOR_ENABLE_WELFORD=1`、输入dtype为`float16`或`bfloat16`,且归一化维度为512。
25+ 
26+## 支持的型号
27+ 
28+- <term>Atlas A3 训练系列产品</term>
29+- <term>Ascend 950DT</term>
@@ -1,35 +0,0 @@
1-# (beta)TORCHINDUCTOR\_ENABLE\_MFUSION
2- 
3-## 功能描述
4- 
5-通过此环境变量可控制是否启用MFusion融合优化功能。MFusion是一种针对NPU平台的图融合优化技术,能够自动融合多个算子为单一kernel,从而减少数据传输开销,提升整体计算性能。
6- 
7-- 配置为“0”或未配置时:禁用MFusion融合优化。
8-- 配置为“1”时:启用MFusion融合优化。
9- 
10-此环境变量默认配置为“0”。
11- 
12-## 配置示例
13- 
14-禁用MFusion(默认行为):
15- 
16-```bash
17-export TORCHINDUCTOR_ENABLE_MFUSION="0"
18-```
19- 
20-启用MFusion:
21- 
22-```bash
23-export TORCHINDUCTOR_ENABLE_MFUSION="1"
24-```
25- 
26-## 使用约束
27- 
28-- 该功能仅在torch.compile图编译后端为“Inductor”生效。
29-- 该功能仅在PyTorch2.7.1和2.9.0版本生效。
30- 
31-## 支持的型号
32- 
33-- <term>Atlas 训练系列产品</term>
34-- <term>Atlas A2 训练系列产品</term>
35-- <term>Atlas A3 训练系列产品</term>
@@ -0,0 +1,32 @@
1+# TORCHINDUCTOR\_ENABLE\_WELFORD
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可控制是否启用Welford算法计算方差与均值类归约。启用后,`torch.var_mean`、`torch.var`、`torch.std`等算子在Triton模式(`TORCHINDUCTOR_NPU_BACKEND="default"`)下使用Welford单遍算法lowering(SIMT Welford),将归约epilogue融合进Welford kernel,减少中间结果落盘,提升数值稳定性与性能。
6+ 
7+- 默认值为`0`,使用默认的两步方差(two-step variance)或逐项展开路径。
8+- 配置为`1`:启用Welford lowering。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - 归约元素较少(小于`unroll_reductions_threshold`)时仍会走两步方差展开路径,不受此变量影响。
14+> - 此功能为`torch_npu`特有。**PyTorch社区:** 社区无此环境变量,社区Inductor默认展开方差计算。
15+ 
16+## 配置示例
17+ 
18+```bash
19+export TORCHINDUCTOR_ENABLE_WELFORD=1
20+```
21+ 
22+## 使用约束
23+ 
24+- 需在导入`torch_npu`之前设置。
25+- 仅在Triton模式(`TORCHINDUCTOR_NPU_BACKEND="default"`)下生效。
26+ 
27+## 支持的型号
28+ 
29+- <term>Atlas 训练系列产品</term>
30+- <term>Atlas A2 训练系列产品</term>
31+- <term>Atlas A3 训练系列产品</term>
32+- <term>Ascend 950DT</term>
@@ -0,0 +1,34 @@
1+# TORCHINDUCTOR\_MAX\_AUTOTUNE
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可控制是否开启max autotune功能。开启后,Inductor会对候选config进行更全面的自动调优,以获取最优的kernel配置。
6+ 
7+- 默认值为`0`,关闭max autotune。
8+- 配置为`1`:开启max autotune。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - 开启max autotune会增加编译时间,但可能获得更优的kernel性能。
14+> - 矩阵乘算子可调优的候选实现由`TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDS`控制。
15+> - **PyTorch社区:** 社区对应环境变量`TORCHINDUCTOR_MAX_AUTOTUNE`,行为一致,默认值为`0`。
16+ 
17+## 配置示例
18+ 
19+开启max autotune:
20+ 
21+```bash
22+export TORCHINDUCTOR_MAX_AUTOTUNE=1
23+```
24+ 
25+## 使用约束
26+ 
27+需在导入`torch_npu`之前设置。
28+ 
29+## 支持的型号
30+ 
31+- <term>Atlas 训练系列产品</term>
32+- <term>Atlas A2 训练系列产品</term>
33+- <term>Atlas A3 训练系列产品</term>
34+- <term>Ascend 950DT</term>
@@ -0,0 +1,34 @@
1+# TORCHINDUCTOR\_MAX\_AUTOTUNE\_GEMM\_BACKENDS
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可配置max autotune过程中矩阵乘(matmul)类算子参与调优的候选实现列表。此处的"实现"指matmul kernel的生成来源(如ATen算子库、Triton模板、Catlass模板),不同于`TORCHINDUCTOR_NPU_BACKEND`配置的编译模式(Triton、DVM等)。仅在`TORCHINDUCTOR_MAX_AUTOTUNE=1`时生效。
6+ 
7+- 默认值为`"ATEN,TRITON,CPP"`,即尝试ATen算子库、Triton模板和CPP模板三类候选实现。
8+- 若需尝试Catlass模板,请在配置中添加`"CATLASS"`。
9+ 
10+> [!NOTE]
11+>
12+> - 此环境变量以逗号分隔实现名称,不支持空格。
13+> - 添加`"CATLASS"`后,需同时配置`TORCHINDUCTOR_NPU_CATLASS_DIR`指定Catlass模板库路径。
14+> - **PyTorch社区:** 社区对应环境变量`TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDS`,行为一致,默认值为`"ATEN,TRITON,CPP"`。
15+ 
16+## 配置示例
17+ 
18+尝试CATLASS和ATen候选实现:
19+ 
20+```bash
21+export TORCHINDUCTOR_MAX_AUTOTUNE=1
22+export TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDS="CATLASS,ATEN"
23+```
24+ 
25+## 使用约束
26+ 
27+- 需在导入`torch_npu`之前设置。
28+- 仅在`TORCHINDUCTOR_MAX_AUTOTUNE=1`时生效。
29+ 
30+## 支持的型号
31+ 
32+- <term>Atlas A2 训练系列产品</term>
33+- <term>Atlas A3 训练系列产品</term>
34+- <term>Ascend 950DT</term>
@@ -2,14 +2,11 @@
2 2 
3## 功能描述3## 功能描述
4 4 
5-通过此环境变量可配置图模式(Inductor)下的后端优化策略,支持在Triton、MLIR、DVM、Ascend C等模式之间切换。5+通过此环境变量可配置图模式(Inductor)下的编译模式,支持在Triton、DVM、Ascend C等模式之间切换。
6 6 
7-- 配置为“default”或未配置时:使用默认的Triton模式。7+- 默认值为“default”,使用默认的Triton模式。
8-- 配置为“mlir”时:使用MLIR模式。8+- 配置为“dvm”:使用DVM模式。
9-- 配置为“dvm”时:使用DVM模式。9+- 配置为“ascendc”:使用Ascend C模式。
10-- 配置为“ascendc”时:使用Ascend C模式。
11- 
12-此环境变量默认配置为“default”。
13 10 
14## 配置示例11## 配置示例
15 12 
@@ -19,12 +16,6 @@
19export TORCHINDUCTOR_NPU_BACKEND="default"16export TORCHINDUCTOR_NPU_BACKEND="default"
20```17```
21 18 
22-使用MLIR模式:
23- 
24-```bash
25-export TORCHINDUCTOR_NPU_BACKEND="mlir"
26-```
27- 
28使用DVM模式:19使用DVM模式:
29 20 
30```bash21```bash
@@ -37,15 +28,19 @@ export TORCHINDUCTOR_NPU_BACKEND="dvm"
37export TORCHINDUCTOR_NPU_BACKEND="ascendc"28export TORCHINDUCTOR_NPU_BACKEND="ascendc"
38```29```
39 30 
31+> [!NOTE]
32+>
33+> - 此环境变量为`torch_npu`特有,用于在NPU上选择Inductor编译模式。
34+> - PyTorch社区通过`torch._inductor.config`配置后端行为,无此环境变量。
35+ 
40## 使用约束36## 使用约束
41 37 
42-此环境变量必须在`import torch`之前设置,否则不生效。38+- 此环境变量在首次调用`torch.compile`前设置即可(后端在首次编译时惰性加载,`import torch`/`import torch_npu`之后设置同样生效)。
43- 39+- Ascend C模式需PyTorch 2.9.0及以上版本支持。
44-Ascend C模式需PyTorch 2.9.0及以上版本支持。
45 40 
46## 支持的型号41## 支持的型号
47 42 
48- <term>Atlas 训练系列产品</term>43- <term>Atlas 训练系列产品</term>
49- <term>Atlas A2 训练系列产品</term>44- <term>Atlas A2 训练系列产品</term>
50- <term>Atlas A3 训练系列产品</term>45- <term>Atlas A3 训练系列产品</term>
51-- <term>Ascend 950DT</term>(仅支持Inductor后端编译器中的Triton模式、DVM模式和Ascend C模式,不支持MLIR模式)46+- <term>Ascend 950DT</term>(仅支持Inductor后端编译器中的Triton模式、DVM模式和Ascend C模式)
@@ -0,0 +1,31 @@
1+# TORCHINDUCTOR\_NPU\_CATLASS\_DIR
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可配置Catlass模板库的路径。Catlass是NPU平台上的矩阵乘模板加速库,Inductor在autotune时可通过Catlass模板库对matmul类算子进行模板调优。
6+ 
7+- 默认值未配置,使用`torch`安装目录下`../third_party/catlass`路径(源码编译场景),若该路径不存在则不加载Catlass模板库。
8+- 设置有效路径:从配置的路径加载Catlass模板库。
9+ 
10+> [!NOTE]
11+>
12+> - 若路径配置错误,会有WARNING信息提示,并自动跳过Catlass模板库。
13+> - 使用Catlass模板库需同时配置`TORCHINDUCTOR_MAX_AUTOTUNE=1`和`TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDS`包含`"CATLASS"`。
14+> - **PyTorch社区:** 社区对应环境变量`TORCHINDUCTOR_CUTLASS_DIR`,用于配置CUTLASS(CUDA Templates for Linear Algebra Subroutines)库路径,`torch_npu`使用Catlass替代。
15+ 
16+## 配置示例
17+ 
18+```bash
19+export TORCHINDUCTOR_NPU_CATLASS_DIR="/path/to/catlass/dir"
20+```
21+ 
22+## 使用约束
23+ 
24+- 需在导入`torch_npu`之前设置。
25+- 需确保路径有效且Catlass模板库已正确安装。
26+ 
27+## 支持的型号
28+ 
29+- <term>Atlas A2 训练系列产品</term>
30+- <term>Atlas A3 训练系列产品</term>
31+- <term>Ascend 950DT</term>
@@ -0,0 +1,34 @@
1+# TORCHINDUCTOR\_PROFILE\_WITH\_DO\_BENCH\_USING\_PROFILING
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可控制autotune过程中是否使用profiling进行性能测量。开启后,Inductor会使用profiling获取更精确的kernel执行时间,而非基于事件计时的估算。
6+ 
7+- 默认值为`0`,不使用profiling,基于事件计时估算性能。
8+- 配置为`1`:使用profiling测量kernel执行时间。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - 使用profiling可获得更精确的调优结果,但会增加autotune的时间开销。
14+> - **PyTorch社区:** 社区对应环境变量`TORCHINDUCTOR_PROFILE_WITH_DO_BENCH_USING_PROFILING`,行为一致,默认值为`0`。
15+ 
16+## 配置示例
17+ 
18+开启基于profiling的autotune:
19+ 
20+```bash
21+export TORCHINDUCTOR_MAX_AUTOTUNE=1
22+export TORCHINDUCTOR_PROFILE_WITH_DO_BENCH_USING_PROFILING=1
23+```
24+ 
25+## 使用约束
26+ 
27+- 需在导入`torch_npu`之前设置。
28+- 仅在`TORCHINDUCTOR_MAX_AUTOTUNE=1`时生效。
29+ 
30+## 支持的型号
31+ 
32+- <term>Atlas A2 训练系列产品</term>
33+- <term>Atlas A3 训练系列产品</term>
34+- <term>Ascend 950DT</term>
@@ -1,36 +0,0 @@
1-# TORCHINDUCTOR\_USE\_AKG
2- 
3-## 功能描述
4- 
5-通过此环境变量可配置torch.compile图模式(Inductor)下MLIR(Multi-Level Intermediate Representation)模式启用AKG(Auto Kernel Generator)后端优化。AKG基于Affine Dialect进行融合切分等调度优化,提升融合能力,降低调度和执行开销。
6- 
7-- 未配置或配置为`0`时:在启用MLIR的情况下,继续使用默认的MLIR优化流程。
8-- 配置为`1`时:在启用MLIR的情况下,使用AKG编译优化。
9- 
10-此环境变量默认配置为`0`。
11- 
12-## 配置示例
13- 
14-在启用MLIR后,再开启AKG:
15- 
16-```bash
17-export TORCHINDUCTOR_NPU_BACKEND="mlir"
18-export TORCHINDUCTOR_USE_AKG=1
19-```
20- 
21-保持MLIR默认优化流程:
22- 
23-```bash
24-export TORCHINDUCTOR_NPU_BACKEND="mlir"
25-export TORCHINDUCTOR_USE_AKG=0
26-```
27- 
28-## 使用约束
29- 
30-该环境变量仅在torch.compile图模式(Inductor)的MLIR模式下生效。
31- 
32-## 支持的型号
33- 
34-- <term>Atlas 训练系列产品</term>
35-- <term>Atlas A2 训练系列产品</term>
36-- <term>Atlas A3 训练系列产品</term>
@@ -0,0 +1,33 @@
1+# TORCHINDUCTOR\_WORKER\_LOGPATH
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可指定Inductor worker子进程的日志输出路径。Inductor在编译kernel时会使用子进程进行并行编译,此环境变量控制子进程日志文件的保存位置。
6+ 
7+- 默认值未设置,不指定日志文件路径,worker子进程日志输出行为由`TORCHINDUCTOR_WORKER_SUPPRESS_LOGGING`决定。
8+- 设置路径:worker子进程日志保存到指定位置。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - 此环境变量在`INDUCTOR_ASCEND_DEBUG=1`或`config.debug`开启时,会被重定向到终端输出(便于实时观察编译日志)。
14+> - 需确保目标路径可写。
15+> - **PyTorch社区:** 社区对应环境变量`TORCHINDUCTOR_WORKER_LOGPATH`,行为一致,用于指定Inductor worker子进程的日志路径。
16+ 
17+## 配置示例
18+ 
19+```bash
20+export TORCHINDUCTOR_WORKER_LOGPATH=/tmp/inductor_worker_logs
21+```
22+ 
23+## 使用约束
24+ 
25+- 需在导入`torch_npu`之前设置。
26+- 需确保目标目录可写。
27+ 
28+## 支持的型号
29+ 
30+- <term>Atlas 训练系列产品</term>
31+- <term>Atlas A2 训练系列产品</term>
32+- <term>Atlas A3 训练系列产品</term>
33+- <term>Ascend 950DT</term>
@@ -0,0 +1,35 @@
1+# TORCHINDUCTOR\_WORKER\_SUPPRESS\_LOGGING
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可设置是否抑制Inductor worker子进程的日志输出。Inductor在编译kernel时会使用子进程进行并行编译,开启抑制后,子进程的日志输出将被重定向到/dev/null。
6+ 
7+- 默认值为`True`(抑制),子进程日志被重定向到/dev/null。
8+- 配置为`0`或空字符串:不抑制,worker子进程日志正常输出。
9+- 配置为`1`或其他非`0`值:抑制worker子进程的日志输出。
10+ 
11+ 
12+> [!NOTE]
13+>
14+> - 在`INDUCTOR_ASCEND_DEBUG=1`或`config.debug`开启时,若未显式设置此变量,会强制不抑制(便于调试)。
15+> - 抑制worker日志可减少终端输出噪声,但会丢失autotune过程中的调试信息。
16+> - **PyTorch社区:** 社区对应环境变量`TORCHINDUCTOR_WORKER_SUPPRESS_LOGGING`,行为一致,用于控制Inductor worker子进程的日志抑制。
17+ 
18+## 配置示例
19+ 
20+不抑制worker日志(调试时查看子进程输出):
21+ 
22+```bash
23+export TORCHINDUCTOR_WORKER_SUPPRESS_LOGGING=0
24+```
25+ 
26+## 使用约束
27+ 
28+需在导入`torch_npu`之前设置。
29+ 
30+## 支持的型号
31+ 
32+- <term>Atlas 训练系列产品</term>
33+- <term>Atlas A2 训练系列产品</term>
34+- <term>Atlas A3 训练系列产品</term>
35+- <term>Ascend 950DT</term>
@@ -0,0 +1,30 @@
1+# TORCHNPU\_PRECOMPILE\_THREADS
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可配置`torch_npu` Inductor的预编译线程数。预编译线程用于加速图编译过程中的并行编译任务。
6+ 
7+- 默认值为`max(os.cpu_count() // max(compile_threads, 2), 32)`(且不低于32),其中`compile_threads`由`TORCHINDUCTOR_COMPILE_THREADS`控制。
8+- 设置正整数:使用指定的线程数;设置为非法值(非整数)时程序会记录异常日志并退出。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - 此环境变量在`torch_npu._inductor`模块初始化时读取。
14+> - **PyTorch社区:** 社区对应环境变量`TORCHINDUCTOR_COMPILE_THREADS`,用于控制编译线程数,`torch_npu`在此基础上扩展了预编译线程数控制。
15+ 
16+## 配置示例
17+ 
18+```bash
19+export TORCHNPU_PRECOMPILE_THREADS=16
20+```
21+ 
22+## 使用约束
23+ 
24+需在导入`torch_npu`之前设置。
25+ 
26+## 支持的型号
27+ 
28+- <term>Atlas 训练系列产品</term>
29+- <term>Atlas A2 训练系列产品</term>
30+- <term>Atlas A3 训练系列产品</term>
@@ -0,0 +1,41 @@
1+# TORCH\_CACHING\_PRECOMPILE
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可开启自动缓存预编译(automatic caching precompile)实验性功能。开启后,`torch.compile`会在编译过程中自动将Dynamo缓存条目与后端编译产物序列化到全局Precompile Cache中,并在后续运行中自动加载复用,从而跳过重复编译,加速后续编译过程。
6+ 
7+- 默认值为`0`,关闭自动缓存预编译。
8+- 配置为`1`:开启自动缓存预编译。
9+ 
10+开启后,系统会进行以下处理:
11+ 
12+- **编译时自动加载**:`torch.compile`调用时自动从DynamoCache查找并加载已有的编译缓存。
13+- **编译后自动保存**:编译完成后自动将Dynamo缓存条目与后端产物(如AOTAutograd cache)写入DynamoCache。
14+- **Guard过滤**:自动丢弃不可序列化的guard(如`ID_MATCH`、`CLOSURE_MATCH`、`WEAKREF_ALIVE`、`DICT_VERSION`),以确保缓存可跨进程复用。
15+- **与`torch.compiler.save_cache_artifacts()`配合**:调用`save_cache_artifacts()`时会将`PrecompileContext`中的缓存条目一并保存。
16+ 
17+> [!NOTE]
18+>
19+> - 此功能为实验性功能,适用于需要多次编译相同模型的场景(如训练多轮次),可显著减少后续编译时间。
20+> - 开启后会丢弃部分guard,可能导致缓存命中条件放宽,使用时需关注编译结果的正确性。
21+> - 建议在与`torch.compiler.save_cache_artifacts()`/`load_cache_artifacts()`配合使用时开启。
22+> - **PyTorch社区:** 社区对应环境变量`TORCH_CACHING_PRECOMPILE`,行为一致,用于开启Dynamo自动缓存预编译功能,默认值为`0`。
23+ 
24+## 配置示例
25+ 
26+开启自动缓存预编译:
27+ 
28+```bash
29+export TORCH_CACHING_PRECOMPILE=1
30+```
31+ 
32+## 使用约束
33+ 
34+需在进程启动前配置,进程运行过程中修改不会生效。
35+ 
36+## 支持的型号
37+ 
38+- <term>Atlas 训练系列产品</term>
39+- <term>Atlas A2 训练系列产品</term>
40+- <term>Atlas A3 训练系列产品</term>
41+- <term>Ascend 950DT</term>
@@ -0,0 +1,32 @@
1+# TORCH\_COMPILE\_DEBUG
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可开启`torch.compile`的调试模式。开启后,系统会在编译过程中导出FX图、codegen输出等调试信息,便于开发者分析编译流程和定位问题。
6+ 
7+- 默认值为`0`,不开启调试模式。
8+- 配置为`1`:开启调试模式,导出Dynamo输出图、codegen生成的kernel代码等。
9+ 
10+ 
11+> [!NOTE]
12+>
13+> - 开启调试模式后,编译产物(FX图、output_code.py等)会保存到`torch_compile_debug/`目录下。
14+> - 调试模式会产生额外的I/O开销,建议仅在问题定位时使用。
15+> - **PyTorch社区:** 社区对应环境变量`TORCH_COMPILE_DEBUG`,行为一致,用于导出Inductor编译产物辅助调试。
16+ 
17+## 配置示例
18+ 
19+```bash
20+export TORCH_COMPILE_DEBUG=1
21+```
22+ 
23+## 使用约束
24+ 
25+需在进程启动前配置,进程运行过程中修改不会生效。
26+ 
27+## 支持的型号
28+ 
29+- <term>Atlas 训练系列产品</term>
30+- <term>Atlas A2 训练系列产品</term>
31+- <term>Atlas A3 训练系列产品</term>
32+- <term>Ascend 950DT</term>
@@ -0,0 +1,56 @@
1+# TORCH\_LOGS
2+ 
3+## 功能描述
4+ 
5+通过此环境变量可控制PyTorch各模块的日志输出级别,用于调试和排查`torch.compile`及其后端(Inductor、Dynamo等)的行为。设置后,`torch_npu`会将日志配置同步到C++层日志上下文。
6+ 
7+- 默认值未配置,使用默认日志级别(WARNING)。
8+- 配置模块日志:指定需要输出日志的模块及级别。
9+ 
10+ 
11+**语法格式**:
12+ 
13+- `TORCH_LOGS="+module"` — 输出指定模块的DEBUG级别日志
14+- `TORCH_LOGS="-module"` — 仅输出指定模块的ERROR级别日志
15+- `TORCH_LOGS="module1,module2"` — 同时配置多个模块(INFO级别)
16+- `TORCH_LOGS="+module1,-module2"` — 混合配置:`+`/`-`前缀逐项生效,可对同一配置中的不同模块设置不同级别
17+ 
18+常用模块名:`inductor`、`dynamo`、`aot`、`distribute`等。
19+ 
20+> [!NOTE]
21+>
22+> - `TORCH_LOGS`(或`TORCH_NPU_LOGS`)设置后,优先级高于`torch._logging.set_logs()` API调用,API调用将不生效。
23+> - 对于TorchNPU新增的模块(如memory、dispatch、acl等),需使用`TORCH_NPU_LOGS`配置,`TORCH_LOGS`不支持这些模块。
24+> - 在`INDUCTOR_ASCEND_DEBUG=1`时,等效于`TORCH_LOGS="+inductor"`对`torch._inductor` `logger`的效果。
25+> - **PyTorch社区:** 社区对应环境变量`TORCH_LOGS`,行为一致,用于控制PyTorch各模块的日志输出。
26+ 
27+## 配置示例
28+ 
29+输出Inductor的DEBUG级别日志:
30+ 
31+```bash
32+export TORCH_LOGS="+inductor"
33+```
34+ 
35+同时配置多个模块:
36+ 
37+```bash
38+export TORCH_LOGS="+inductor,+dynamo"
M

export TORCH_LOGS="+inductor,-dynamo" 这种可以混用吗

likedislike
AACAES
Sep 4 Comments:
39+```
40+ 
41+混合配置(不同模块不同级别,`+`/`-`可混用):
42+ 
43+```bash
44+export TORCH_LOGS="+inductor,-dynamo"
45+```
46+ 
47+## 使用约束
48+ 
49+需在导入`torch_npu`之前设置。
50+ 
51+## 支持的型号
52+ 
53+- <term>Atlas 训练系列产品</term>
54+- <term>Atlas A2 训练系列产品</term>
55+- <term>Atlas A3 训练系列产品</term>
56+- <term>Ascend 950DT</term>
@@ -1,7 +1,33 @@
1# 图模式1# 图模式
2 2 
3+- [TORCH_COMPILE_DEBUG](TORCH_COMPILE_DEBUG.md)
4+- [TORCH_LOGS](TORCH_LOGS.md)
5+- [TORCH_CACHING_PRECOMPILE](TORCH_CACHING_PRECOMPILE.md)
3- [TORCHINDUCTOR_NPU_BACKEND](TORCHINDUCTOR_NPU_BACKEND.md)6- [TORCHINDUCTOR_NPU_BACKEND](TORCHINDUCTOR_NPU_BACKEND.md)
7+- [TORCHINDUCTOR_CACHE_DIR](TORCHINDUCTOR_CACHE_DIR.md)
8+- [INDUCTOR_DVM_ENABLE_MATMUL_FUSION](INDUCTOR_DVM_ENABLE_MATMUL_FUSION.md)
4- [INDUCTOR_ASCEND_CHECK_ACCURACY](INDUCTOR_ASCEND_CHECK_ACCURACY.md)9- [INDUCTOR_ASCEND_CHECK_ACCURACY](INDUCTOR_ASCEND_CHECK_ACCURACY.md)
10+- [INDUCTOR_ASCEND_DEBUG](INDUCTOR_ASCEND_DEBUG.md)
11+- [INDUCTOR_ASCEND_DUMP_FX_GRAPH](INDUCTOR_ASCEND_DUMP_FX_GRAPH.md)
12+- [INDUCTOR_ASCEND_FX_GRAPH_CACHE](INDUCTOR_ASCEND_FX_GRAPH_CACHE.md)
13+- [INDUCTOR_ASCEND_LOG_LEVEL](INDUCTOR_ASCEND_LOG_LEVEL.md)
5- [NPU_INDUCTOR_FALLBACK_LIST](NPU_INDUCTOR_FALLBACK_LIST.md)14- [NPU_INDUCTOR_FALLBACK_LIST](NPU_INDUCTOR_FALLBACK_LIST.md)
6-- [TORCHINDUCTOR_ENABLE_MFUSION](TORCHINDUCTOR_ENABLE_MFUSION.md)15+- [TORCHINDUCTOR_MAX_AUTOTUNE](TORCHINDUCTOR_MAX_AUTOTUNE.md)
7-- [TORCHINDUCTOR_USE_AKG](TORCHINDUCTOR_USE_AKG.md)16+- [TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDS](TORCHINDUCTOR_MAX_AUTOTUNE_GEMM_BACKENDS.md)
17+- [TORCHINDUCTOR_COMPILE_THREADS](TORCHINDUCTOR_COMPILE_THREADS.md)
18+- [TORCHNPU_PRECOMPILE_THREADS](TORCHNPU_PRECOMPILE_THREADS.md)
19+- [TORCHINDUCTOR_NPU_CATLASS_DIR](TORCHINDUCTOR_NPU_CATLASS_DIR.md)
20+- [TORCHINDUCTOR_CATLASS_ENABLED_OPS](TORCHINDUCTOR_CATLASS_ENABLED_OPS.md)
21+- [CATLASS_EPILOGUE_FUSION](CATLASS_EPILOGUE_FUSION.md)
22+- [TORCHINDUCTOR_PROFILE_WITH_DO_BENCH_USING_PROFILING](TORCHINDUCTOR_PROFILE_WITH_DO_BENCH_USING_PROFILING.md)
23+- [ENABLE_INPLACE_BUFFERS](ENABLE_INPLACE_BUFFERS.md)
24+- [TORCHINDUCTOR_ENABLE_WELFORD](TORCHINDUCTOR_ENABLE_WELFORD.md)
25+- [TORCHINDUCTOR_ENABLE_LAYERNORM_V4](TORCHINDUCTOR_ENABLE_LAYERNORM_V4.md)
26+- [TORCHINDUCTOR_ENABLE_FAST_GELU](TORCHINDUCTOR_ENABLE_FAST_GELU.md)
27+- [ENABLE_PARALLEL_SCHEDULER](ENABLE_PARALLEL_SCHEDULER.md)
28+- [PARALLEL_SCHEDULER_NODES_MIN](PARALLEL_SCHEDULER_NODES_MIN.md)
29+- [SHUT_DOWN_FX_PASS_LIST](SHUT_DOWN_FX_PASS_LIST.md)
30+- [NPU_INDUCTOR_DYNAMIC_FX_PASS](NPU_INDUCTOR_DYNAMIC_FX_PASS.md)
31+- [FX_SUBGRAPH_DUMP_PATH](FX_SUBGRAPH_DUMP_PATH.md)
32+- [TORCHINDUCTOR_WORKER_LOGPATH](TORCHINDUCTOR_WORKER_LOGPATH.md)
33+- [TORCHINDUCTOR_WORKER_SUPPRESS_LOGGING](TORCHINDUCTOR_WORKER_SUPPRESS_LOGGING.md)
@@ -9,6 +9,11 @@
9 9 
10此环境变量默认为未配置。10此环境变量默认为未配置。
11 11 
12+> [!NOTE]
13+>
14+> - 此环境变量用于Eager模式下的算子融合,无需经过图编译。
15+> - **PyTorch社区:** 社区无此环境变量。
16+ 
12## 配置示例17## 配置示例
13 18 
14```bash19```bash
@@ -17,8 +22,10 @@ export TORCH_NPU_LAZY_FUSION=True
17 22 
18## 使用约束23## 使用约束
19 24 
25+- 需在导入`torch_npu`之前设置。
20- 仅在[TASK_QUEUE_ENABLE](../op_execution/TASK_QUEUE_ENABLE.md)为1或2时生效,否则自动禁用算子融合。26- 仅在[TASK_QUEUE_ENABLE](../op_execution/TASK_QUEUE_ENABLE.md)为1或2时生效,否则自动禁用算子融合。
21- 仅在主线程及其反向线程生效,其它独立线程(如dataloader worker)自动禁用。27- 仅在主线程及其反向线程生效,其它独立线程(如dataloader worker)自动禁用。
28+- 仅在DVM支持的芯片型号上生效。
M

DVM支持的芯片型号是哪些,写清楚

likedislike
22 29 
23## 支持的型号30## 支持的型号
24 31