已合并
【docs】AIDD Scan Modification & Modification Manual Name #42189
【docs】AIDD Scan Modification & Modification Manual Name #42189
已合并
lyx324521创建于 7月20日
68 个文件变更+114-78
@@ -373,12 +373,12 @@ PyTorch NPU 项目鼓励使用 AI 辅助研发与文档开发,以提升贡献
373 373 
374文档主要包含以下类目:374文档主要包含以下类目:
375 375 
376-- **安装指南**(`installation_guide/`):环境准备、源码编译、pip 安装等说明。376+- **软件安装**(`installation_guide/`):环境准备、源码编译、pip 安装等说明。
377- **快速入门**`quick_start/`):快速上手教程。377- **快速入门**`quick_start/`):快速上手教程。
378-- **原生 API 文档**(`native_apis/`):各版本 PyTorch 原生 API 支持情况。378+- **原生API**(`native_apis/`):各版本 PyTorch 原生 API 支持情况。
379-- **框架特性指南**(`framework_feature_guide_pytorch/`):NPU 图模式、Inductor、内存优化等特性说明。379+- **框架特性**(`framework_feature_guide_pytorch/`):NPU 图模式、Inductor、内存优化等特性说明。
380-- **环境变量参考**(`environment_variable_reference/`):NPU 相关环境变量说明。380+- **环境变量**(`environment_variable_reference/`):NPU 相关环境变量说明。
381-- **故障排除**(`troubleshooting/`):常见问题及错误码分析。381+- **故障处理**(`troubleshooting/`):常见问题及错误码分析。
382- **安全声明**`SECURITYNOTE.md`):安全相关说明。382- **安全声明**`SECURITYNOTE.md`):安全相关说明。
383- **贡献指南**`CONTRIBUTING.md`):本文档。383- **贡献指南**`CONTRIBUTING.md`):本文档。
384 384 
@@ -230,7 +230,7 @@ PyTorch提供分布式训练能力,支持在单机和多机场景下进行训
230| 所属平面 | 不涉及 | 不涉及 |230| 所属平面 | 不涉及 | 不涉及 |
231| 版本 | 所有版本 | 所有版本 |231| 版本 | 所有版本 | 所有版本 |
232| 特殊场景 | 无 | 无 |232| 特殊场景 | 无 | 无 |
233-| 备注 | 该通信过程由开源软件PyTorch控制,配置为PyTorch原生设置,可参考[PyTorch文档](https://pytorch.org/docs/stable/distributed.html#launch-utility)。源端口由操作系统自动分配,分配范围由操作系统的配置决定,例如ubuntu:采用/proc/sys/net/ipv4/ipv4_local_port_range文件指定,可通过cat /proc/sys/net/ipv4/ipv4_local_port_range或sysctl net.ipv4.ip_local_port_range查看 | 该通信过程由CANN中HCCL组件控制,TorchNPU不进行控制,端口范围可参考[《环境变量参考》](https://www.hiascend.com/document/detail/zh/canncommercial/82RC1/maintenref/envvar/envref_07_0001.html)的“执行相关 > 集合通信 >HCCL_IF_BASE_PORT” |233+| 备注 | 该通信过程由开源软件PyTorch控制,配置为PyTorch原生设置,可参考[PyTorch文档](https://pytorch.org/docs/stable/distributed.html#launch-utility)。源端口由操作系统自动分配,分配范围由操作系统的配置决定,例如ubuntu:采用/proc/sys/net/ipv4/ipv4_local_port_range文件指定,可通过cat /proc/sys/net/ipv4/ipv4_local_port_range或sysctl net.ipv4.ip_local_port_range查看 | 该通信过程由CANN中HCCL组件控制,TorchNPU不进行控制,端口范围可参考[《环境变量》](https://www.hiascend.com/document/detail/zh/canncommercial/82RC1/maintenref/envvar/envref_07_0001.html)的“执行相关 > 集合通信 >HCCL_IF_BASE_PORT” |
234 234 
235## 漏洞机制说明235## 漏洞机制说明
236 236 
@@ -4,7 +4,7 @@
4 4 
5通过此环境变量可配置算子编译磁盘缓存的目录。5通过此环境变量可配置算子编译磁盘缓存的目录。
6 6 
7-优先级:ACL\_OP\_COMPILER\_CACHE\_DIR \> ASCEND\_CACHE\_PATH \> 默认路径($HOME/atc\_data)7+优先级:ACL\_OP\_COMPILER\_CACHE\_DIR \> ASCEND\_CACHE\_PATH \> 默认路径($HOME/atc\_data)
8 8 
9如果设置了该环境变量,则按照该环境变量指定路径落盘算子编译缓存;未设置则使用ASCEND\_CACHE\_PATH指定路径;若未设置该环境变量且未使用ASCEND\_CACHE\_PATH指定路径,则使用默认路径($HOME/atc\_data)。9如果设置了该环境变量,则按照该环境变量指定路径落盘算子编译缓存;未设置则使用ASCEND\_CACHE\_PATH指定路径;若未设置该环境变量且未使用ASCEND\_CACHE\_PATH指定路径,则使用默认路径($HOME/atc\_data)。
10 10 
@@ -14,7 +14,7 @@
14>14>
15> - 需要调大阈值场景:若发生告警,并且确认此次数值波动为正常,不影响训练,则调大阈值。15> - 需要调大阈值场景:若发生告警,并且确认此次数值波动为正常,不影响训练,则调大阈值。
16> - 若val超过NPU\_ASD\_UPPER\_THRESH导致告警,则需根据val值调大阈值NPU\_ASD\_UPPER\_THRESH(推荐为val\*2);16> - 若val超过NPU\_ASD\_UPPER\_THRESH导致告警,则需根据val值调大阈值NPU\_ASD\_UPPER\_THRESH(推荐为val\*2);
17-> - 若跳变幅度超过NPU\_ASD\_SIGMA\_THRESH触发告警,则需根据\(val-pre\_val\)和\(max-min\)的比值调大阈值NPU\_ASD\_SIGMA\_THRESH(推荐为\(val-pre\_val\)/\(max-min\)\*2 )。17+> - 若跳变幅度超过NPU\_ASD\_SIGMA\_THRESH触发告警,则需根据\(val-pre\_val\)和\(max-min\)的比值调大阈值NPU\_ASD\_SIGMA\_THRESH(推荐为\(val-pre\_val\)/\(max-min\)\*2)。
18> 18>
19> 相关影响:调大阈值会导致检出率有所降低,但误检率也会降低。19> 相关影响:调大阈值会导致检出率有所降低,但误检率也会降低。
20> - 需要调小阈值场景:若频繁出现loss spike/grad norm spike影响训练,重新拉起依然有spike,但无告警,则按照一定比例(如10)逐渐调小阈值。 20> - 需要调小阈值场景:若频繁出现loss spike/grad norm spike影响训练,重新拉起依然有spike,但无告警,则按照一定比例(如10)逐渐调小阈值。
@@ -14,7 +14,7 @@
14>14>
15> - 需要调大阈值场景:若发生告警,并且确认此次数值波动为正常,不影响训练,则调大阈值。15> - 需要调大阈值场景:若发生告警,并且确认此次数值波动为正常,不影响训练,则调大阈值。
16> - 若val超过NPU\_ASD\_UPPER\_THRESH导致告警,则需根据val值调大阈值NPU\_ASD\_UPPER\_THRESH(推荐为val\*2);16> - 若val超过NPU\_ASD\_UPPER\_THRESH导致告警,则需根据val值调大阈值NPU\_ASD\_UPPER\_THRESH(推荐为val\*2);
17-> - 若跳变幅度超过NPU\_ASD\_SIGMA\_THRESH触发告警,则需根据\(val-pre\_val\)和\(max-min\)的比值调大阈值NPU\_ASD\_SIGMA\_THRESH(推荐为\(val-pre\_val\)/\(max-min\)\*2 )。17+> - 若跳变幅度超过NPU\_ASD\_SIGMA\_THRESH触发告警,则需根据\(val-pre\_val\)和\(max-min\)的比值调大阈值NPU\_ASD\_SIGMA\_THRESH(推荐为\(val-pre\_val\)/\(max-min\)\*2)。
18> 18>
19> 相关影响:调大阈值会导致检出率有所降低,但误检率也会降低。19> 相关影响:调大阈值会导致检出率有所降低,但误检率也会降低。
20> - 需要调小阈值场景:若频繁出现loss spike/grad norm spike影响训练,重新启动依然有spike,但无告警,则按照一定比例(如10)逐渐调小阈值。 20> - 需要调小阈值场景:若频繁出现loss spike/grad norm spike影响训练,重新启动依然有spike,但无告警,则按照一定比例(如10)逐渐调小阈值。
@@ -5,11 +5,11 @@
5通过此环境变量可配置是否开启点对点通信(torch.distributed.isend、torch.distributed.irecv和torch.distributed.batch\_isend\_irecv),并使用独立通信域功能。5通过此环境变量可配置是否开启点对点通信(torch.distributed.isend、torch.distributed.irecv和torch.distributed.batch\_isend\_irecv),并使用独立通信域功能。
6 6 
7- 配置为0时:关闭点对点通信,使用独立通信域功能。7- 配置为0时:关闭点对点通信,使用独立通信域功能。
8-- 配置大于等于1时:开启点对点通信使用独立通信域功能,并且缓区大小为配置值。8+- 配置大于等于1时:开启点对点通信使用独立通信域功能,并且缓区大小为配置值。
9 9 
10单位为MB,默认配置为20。10单位为MB,默认配置为20。
11 11 
12-当开启点对点通信使用独立通信域功能时,每一个通信域都会额外占用2\*P2P\_HCCL\_BUFFSIZE大小的缓区。若集群网络中存在较多的通信域,此缓区占用量就会增多,可能影响模型数据的正常存放。此种场景下,可通过此环境变量减少点对点通信域占用的缓区大小。若业务的模型数据量较小,但点对点通信数据量较大,则可通过此环境变量增大点对点通信域占用的缓区大小,提升点对点通信效率。12+当开启点对点通信使用独立通信域功能时,每一个通信域都会额外占用2\*P2P\_HCCL\_BUFFSIZE大小的缓区。若集群网络中存在较多的通信域,此缓区占用量就会增多,可能影响模型数据的正常存放。此种场景下,可通过此环境变量减少点对点通信域占用的缓区大小。若业务的模型数据量较小,但点对点通信数据量较大,则可通过此环境变量增大点对点通信域占用的缓区大小,提升点对点通信效率。
13 13 
14## 配置示例14## 配置示例
15 15 
@@ -20,7 +20,7 @@ export PER_STREAM_QUEUE=1
20 20 
21## 使用约束21## 使用约束
22 22 
23-当[TASK\_QUEUE\_ENABLE](TASK_QUEUE_ENABLE.md)配置为“1/“2时,此环境变量才能生效。23+当[TASK\_QUEUE\_ENABLE](TASK_QUEUE_ENABLE.md)配置为“1/“2时,此环境变量才能生效。
24 24 
25## 支持的型号25## 支持的型号
26 26 
@@ -9,12 +9,13 @@
9 9 
10此环境变量默认未配置。10此环境变量默认未配置。
11 11 
12-> [!NOTE] 12+> [!NOTE]
13+>
13> 配置RANK\_TABLE\_FILE场景下,执行模型分布式训练时如果出现“RuntimeError: The Inner Error ...”的报错,建议将HCCL\_CONNECT\_TIMEOUT的超时时间适当增大,避免rank table场景下无协商导致的建链超时问题,具体请参考[在进行模型分布式训练时遇到报错“RuntimeError: The Inner Error ...”](runtimeerror_Inner_Error.md)。14> 配置RANK\_TABLE\_FILE场景下,执行模型分布式训练时如果出现“RuntimeError: The Inner Error ...”的报错,建议将HCCL\_CONNECT\_TIMEOUT的超时时间适当增大,避免rank table场景下无协商导致的建链超时问题,具体请参考[在进行模型分布式训练时遇到报错“RuntimeError: The Inner Error ...”](runtimeerror_Inner_Error.md)。
14 15 
15## 配置示例16## 配置示例
16 17 
17-启用ranktable文件方式建链示例:18+启用rank table文件方式建链示例:
18 19 
19```bash20```bash
20export RANK_TABLE_FILE=/home/ranktable.json21export RANK_TABLE_FILE=/home/ranktable.json
@@ -25,7 +26,7 @@ export RANK_TABLE_FILE=/home/ranktable.json
25> - 配置的文件路径不存在时,会通过默认的协商流程进行集合通信域建链。26> - 配置的文件路径不存在时,会通过默认的协商流程进行集合通信域建链。
26> - 配置的文件路径存在,但配置信息有误时,不会通过默认的协商流程进行集合通信域建链,而是在实际通信时会抛出相应的报错。27> - 配置的文件路径存在,但配置信息有误时,不会通过默认的协商流程进行集合通信域建链,而是在实际通信时会抛出相应的报错。
27 28 
28-关闭ranktable文件方式建链示例:29+关闭rank table文件方式建链示例:
29 30 
30```bash31```bash
31unset RANK_TABLE_FILE32unset RANK_TABLE_FILE
@@ -5,7 +5,7 @@
5通过此环境变量可配置`torch_npu.npu.get_device_capability()`的返回值,仅用于兼容原生PyTorch的`torch.cuda.get_device_capability()`接口,不代表NPU硬件实际能力。5通过此环境变量可配置`torch_npu.npu.get_device_capability()`的返回值,仅用于兼容原生PyTorch的`torch.cuda.get_device_capability()`接口,不代表NPU硬件实际能力。
6 6 
7- 未配置时,`torch_npu.npu.get_device_capability()`返回值为`None`7- 未配置时,`torch_npu.npu.get_device_capability()`返回值为`None`
8-- 配置时,`torch_npu.npu.get_device_capability()`返回值为环境变量TORCH\_NPU\_DEVICE\_CAPABILITY的值,配置格式遵循major.minor格式,例如8.0,9.0。8+- 配置时,`torch_npu.npu.get_device_capability()`返回值为环境变量`TORCH_NPU_DEVICE_CAPABILITY`的值,配置格式遵循major.minor格式,例如8.0,9.0。
9 9 
10此环境变量默认为未配置。10此环境变量默认为未配置。
11 11 
@@ -4,8 +4,8 @@
4 4 
5通过此环境变量可开启TorchNPU Eager模式下的DVM算子融合。DVM将多个相邻的小算子合并成单个融合kernel,减少kernel下发次数和中间张量的搬运,从而加速训练和推理。5通过此环境变量可开启TorchNPU Eager模式下的DVM算子融合。DVM将多个相邻的小算子合并成单个融合kernel,减少kernel下发次数和中间张量的搬运,从而加速训练和推理。
6 6 
7-- 配置为"True"时:开启DVM算子融合。7+- 配置为True时:开启DVM算子融合。
8-- 未配置或配置为"False"时:关闭DVM算子融合。8+- 未配置或配置为False时:关闭DVM算子融合。
9 9 
10此环境变量默认为未配置。10此环境变量默认为未配置。
11 11 
@@ -1,4 +1,4 @@
1-# 环境变量参考1+# 环境变量
2 2 
3- [环境变量列表](env_variable_list.md)3- [环境变量列表](env_variable_list.md)
4- [算子执行](op_execution.md)4- [算子执行](op_execution.md)
@@ -1,6 +1,6 @@
1# 编译验证1# 编译验证
2 2 
3-1. 算子适配完成后,需编译TorchNPU包,推荐使用容器场景进行编译安装,具体操作可参考《软件安装》中的“[方式二:源码编译安装](../installation_guide/compilation_installation_using_source_code.md)”章节的“方式一(推荐):容器场景”。3+1. 算子适配完成后,需编译TorchNPU包,推荐使用容器场景进行编译安装,具体操作可参考《软件安装》中的“[方式二:源码安装](../installation_guide/compilation_installation_using_source_code.md)”章节的“方式一(推荐):容器场景”。
42. TorchNPU安装完成后进行新增算子接口的测试验证。测试验证(UT)通过功能正确性验证、边界条件覆盖等,确保算子实现预期,降低联调成本,同时作为长期维护的质量基线,保障算子适配全生命周期的稳定性,自定义算子适配test目录为test/test\_custom\_ops。42. TorchNPU安装完成后进行新增算子接口的测试验证。测试验证(UT)通过功能正确性验证、边界条件覆盖等,确保算子实现预期,降低联调成本,同时作为长期维护的质量基线,保障算子适配全生命周期的稳定性,自定义算子适配test目录为test/test\_custom\_ops。
5 以npu_transpose为例,需要实现以下用例:5 以npu_transpose为例,需要实现以下用例:
6 6 
@@ -44,7 +44,7 @@
44- upper\_thresh2:正整数,最小值为3,默认值为100。二级阈值,特征值超过二级阈值会被认为是一次疑似异常,不会更新到历史均值中。默认检测阈值无需配置,若需要修改阈值可通过此环境变量修改。44- upper\_thresh2:正整数,最小值为3,默认值为100。二级阈值,特征值超过二级阈值会被认为是一次疑似异常,不会更新到历史均值中。默认检测阈值无需配置,若需要修改阈值可通过此环境变量修改。
45- grad\_sample\_interval:正整数,最小值为1,默认值为3。梯度检测的间隔数,标记每多少个梯度中检测一个。配置越小检出率越高,但性能相对会劣化更严重,可能会超过2%。45- grad\_sample\_interval:正整数,最小值为1,默认值为3。梯度检测的间隔数,标记每多少个梯度中检测一个。配置越小检出率越高,但性能相对会劣化更严重,可能会超过2%。
46 46 
47-此环境变量使用详情可参考《环境变量参考》中的“[NPU\_ASD\_CONFIG](../environment_variable_reference/NPU_ASD_CONFIG.md)”章节。47+此环境变量使用详情可参考《环境变量》中的“[NPU\_ASD\_CONFIG](../environment_variable_reference/NPU_ASD_CONFIG.md)”章节。
48 48 
49## 使用样例49## 使用样例
50 50 
@@ -33,7 +33,7 @@
33 - 未配置时,内存数据默认保存至当前路径。33 - 未配置时,内存数据默认保存至当前路径。
34 - 配置时,内存数据保存至指定路径。34 - 配置时,内存数据保存至指定路径。
35 35 
36-此环境变量使用详情请参考《环境变量参考》中的“[OOM\_SNAPSHOT\_ENABLE](../environment_variable_reference/OOM_SNAPSHOT_ENABLE.md)”章节和《环境变量参考》中的“[OOM\_SNAPSHOT\_PATH](../environment_variable_reference/OOM_SNAPSHOT_PATH.md)”章节。36+此环境变量使用详情请参考《环境变量》中的“[OOM\_SNAPSHOT\_ENABLE](../environment_variable_reference/OOM_SNAPSHOT_ENABLE.md)”章节和《环境变量》中的“[OOM\_SNAPSHOT\_PATH](../environment_variable_reference/OOM_SNAPSHOT_PATH.md)”章节。
37 37 
38内存快照的使用方法和案例还可参考社区的相关说明[LINK](https://pytorch.org/docs/2.7/torch_cuda_memory.html#understanding-cuda-memory-usage)。社区内存快照的API具体用法请参考[LINK](https://pytorch.org/docs/2.7/torch_cuda_memory.html#snapshot-api-reference)。38内存快照的使用方法和案例还可参考社区的相关说明[LINK](https://pytorch.org/docs/2.7/torch_cuda_memory.html#understanding-cuda-memory-usage)。社区内存快照的API具体用法请参考[LINK](https://pytorch.org/docs/2.7/torch_cuda_memory.html#snapshot-api-reference)。
39 39 
@@ -1,5 +1,5 @@
1 1 
2-# 框架特性指南2+# 框架特性
3 3 
4- [概述](overview.md)4- [概述](overview.md)
5- [内存资源优化](./memory_resource_optimization.md)5- [内存资源优化](./memory_resource_optimization.md)
@@ -31,7 +31,7 @@
31 31 
32默认值是1。32默认值是1。
33 33 
34-此环境变量使用详情请参考《环境变量参考》中的“[MULTI\_STREAM\_MEMORY\_REUSE](https://www.hiascend.com/document/detail/zh/Pytorch/720/comref/Envvariables/Envir_016.html)”章节。34+此环境变量使用详情请参考《环境变量》中的“[MULTI\_STREAM\_MEMORY\_REUSE](https://www.hiascend.com/document/detail/zh/Pytorch/720/comref/Envvariables/Envir_016.html)”章节。
35 35 
36## 使用样例36## 使用样例
37 37 
@@ -205,7 +205,7 @@
205 205 
206## 编译验证206## 编译验证
207 207 
208-1. 编译TorchNPU插件并安装,推荐使用容器场景进行编译,具体操作可参考《软件安装》中的“[方式二:源码编译安装](../installation_guide/compilation_installation_using_source_code.md)”章节的“方式一(推荐):容器场景”。208+1. 编译TorchNPU插件并安装,推荐使用容器场景进行编译,具体操作可参考《软件安装》中的“[方式二:源码安装](../installation_guide/compilation_installation_using_source_code.md)”章节的“方式一(推荐):容器场景”。
209 209 
2102. 上述开发过程完成后,调用开发者测试脚本,验证基本功能是否正常。2102. 上述开发过程完成后,调用开发者测试脚本,验证基本功能是否正常。
211 211 
@@ -17,7 +17,7 @@
17 17 
18可选择如下任一方式:18可选择如下任一方式:
19 19 
20-- 设置环境变量PYTORCH\_NPU\_ALLOC\_CONF=expandable\_segments:<value\>,此环境变量使用详情请参考《环境变量参考》中的“[PYTORCH\_NPU\_ALLOC\_CONF](../environment_variable_reference/PYTORCH_NPU_ALLOC_CONF.md)”章节。20+- 设置环境变量PYTORCH\_NPU\_ALLOC\_CONF=expandable\_segments:<value\>,此环境变量使用详情请参考《环境变量》中的“[PYTORCH\_NPU\_ALLOC\_CONF](../environment_variable_reference/PYTORCH_NPU_ALLOC_CONF.md)”章节。
21- 修改torch.npu.memory.\_set\_allocator\_settings(“expandable\_segments: <value\>”)接口中的“expandable\_segments”属性值。21- 修改torch.npu.memory.\_set\_allocator\_settings(“expandable\_segments: <value\>”)接口中的“expandable\_segments”属性值。
22 22 
23 value可以取值为True或False。默认为False。23 value可以取值为True或False。默认为False。
@@ -26,7 +26,7 @@ HCCL\_ASYNC\_ERROR\_HANDLING取值情况:
26 26 
27当PyTorch版本为1.11.0时,默认值为0;当PyTorch版本大于等于2.1.0时,默认值为1。27当PyTorch版本为1.11.0时,默认值为0;当PyTorch版本大于等于2.1.0时,默认值为1。
28 28 
29-此环境变量使用详情请参考《环境变量参考》中的“[HCCL\_ASYNC\_ERROR\_HANDLING](../environment_variable_reference/HCCL_ASYNC_ERROR_HANDLING.md)”章节。29+此环境变量使用详情请参考《环境变量》中的“[HCCL\_ASYNC\_ERROR\_HANDLING](../environment_variable_reference/HCCL_ASYNC_ERROR_HANDLING.md)”章节。
30 30 
31## 使用样例31## 使用样例
32 32 
@@ -103,7 +103,7 @@ ci/build.sh: line 11: syntax error near unexpected token `$'{\r''
103 103 
104**报错原因**104**报错原因**
105 105 
106-Windows换行符问题 。文件使用了Windows风格的换行符(CRLF: \r\n ),而Linux bash只认Unix风格的换行符(LF: \n ),导致“\r”被当作命令的一部分执行。106+Windows换行符问题。文件使用了Windows风格的换行符(CRLF: \r\n),而Linux bash只认Unix风格的换行符(LF: \n),导致“\r”被当作命令的一部分执行。
107 107 
108**处理方法**108**处理方法**
109 109 
@@ -109,7 +109,8 @@
109 |2.12.0|X86_64|13.3.1|3.18.4|109 |2.12.0|X86_64|13.3.1|3.18.4|
110 |3.12.0|AArch64|13.3.1|4.3.2|110 |3.12.0|AArch64|13.3.1|4.3.2|
111 111 
112- > [!NOTE]<br>112+ > [!NOTE]
113+ >
113 > 安装指导可参见[安装11.2.0版本gcc](installing_gcc_11-2-0.md)和[安装3.18.4版本cmake](installing_cmake_3-18-4.md)。114 > 安装指导可参见[安装11.2.0版本gcc](installing_gcc_11-2-0.md)和[安装3.18.4版本cmake](installing_cmake_3-18-4.md)。
114 115 
115 2. 安装环境依赖。116 2. 安装环境依赖。
@@ -158,7 +159,7 @@
158 159 
159执行以下命令可检查安装的Python、PyTorch框架和TorchNPU插件版本。160执行以下命令可检查安装的Python、PyTorch框架和TorchNPU插件版本。
160 161 
161-- 查看已安装的Pyhton版本。162+- 查看已安装的Python版本。
162 163 
163 ```bash164 ```bash
164 python --version165 python --version
@@ -61,7 +61,7 @@
61 61 
62执行以下命令可检查安装的Python、PyTorch框架和TorchNPU插件版本。62执行以下命令可检查安装的Python、PyTorch框架和TorchNPU插件版本。
63 63 
64-- 查看已安装的Pyhton版本。64+- 查看已安装的Python版本。
65 65 
66 ```bash66 ```bash
67 python --version67 python --version
@@ -1,4 +1,4 @@
1-# 软件安装指南 1+# 软件安装
2 2 
3- [安装说明](installation_description.md)3- [安装说明](installation_description.md)
4- [安装前准备](preparing_installation.md)4- [安装前准备](preparing_installation.md)
@@ -16,7 +16,7 @@
16 16 
17> [!NOTE]17> [!NOTE]
18>18>
19-> 如需要保存卸载日志,可在pip3 uninstall命令后面加上参数--log <path\>,并对指定的目录<path\>做好权限管控。19+> 如需要保存卸载日志,可在pip3 uninstall命令后面加上参数--log <path\>,并对指定的目录<path\>做好权限管控。
20 20 
21## 卸载CANN软件21## 卸载CANN软件
22 22 
@@ -6,4 +6,4 @@
6> [!NOTE]6> [!NOTE]
7>7>
8> - 在驱动、固件和CANN软件配套场景下,可单独升级PyTorch框架与TorchNPU插件。8> - 在驱动、固件和CANN软件配套场景下,可单独升级PyTorch框架与TorchNPU插件。
9-> - 如果也要升级固件、驱动和CANN软件,请按照“固件-\>驱动-\>CANN软件”的顺序先进行升级,再升级PyTorch框架与TorchNPU插件。9+> - 如果也要升级固件、驱动和CANN软件,请按照“固件驱动CANN软件”的顺序先进行升级,再升级PyTorch框架与TorchNPU插件。
@@ -45,7 +45,7 @@
45 - [Quantization](./pytorch_2-12-0/Quantization.md)45 - [Quantization](./pytorch_2-12-0/Quantization.md)
46 - [Distributed RPC Framework](./pytorch_2-12-0/Distributed-RPC-Framework.md)46 - [Distributed RPC Framework](./pytorch_2-12-0/Distributed-RPC-Framework.md)
47 - [torch.random](./pytorch_2-12-0/torch-random.md)47 - [torch.random](./pytorch_2-12-0/torch-random.md)
48- - [torch.nested](./pytorch_2-12-0/torch-nested.md) 48+ - [torch.nested](./pytorch_2-12-0/torch-nested.md)
49 - [torch.sparse](./pytorch_2-12-0/torch-sparse.md)49 - [torch.sparse](./pytorch_2-12-0/torch-sparse.md)
50 - [torch.Storage](./pytorch_2-12-0/torch-Storage.md)50 - [torch.Storage](./pytorch_2-12-0/torch-Storage.md)
51 - [torch.testing](./pytorch_2-12-0/torch-testing.md)51 - [torch.testing](./pytorch_2-12-0/torch-testing.md)
@@ -1,6 +1,7 @@
1# torch.compiler1# torch.compiler
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.distributed.elastic1# torch.distributed.elastic
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.distributed.pipelining1# torch.distributed.pipelining
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.fft1# torch.fft
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5> 6>
6> 使用以下接口,需要配置以下信息:7> 使用以下接口,需要配置以下信息:
@@ -1,6 +1,7 @@
1# torch.linalg1# torch.linalg
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.nn.functional1# torch.nn.functional
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.nn1# torch.nn
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -93,7 +93,7 @@
93|torch.take|是|支持fp16,fp32,int16,int32,int64,bool|93|torch.take|是|支持fp16,fp32,int16,int32,int64,bool|
94|torch.take_along_dim|是|支持fp32|94|torch.take_along_dim|是|支持fp32|
95|torch.tensor_split|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|95|torch.tensor_split|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
96-|torch.tile|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128<br>若入参dims的长度小于input.shape的长度,则会在dims前自动补全1,使其长度与 input.shape对齐。补全后的dims,需要满足如下限制:<br>- 当需要对第一根轴进行重复时,最多允许同时对4个维度进行重复操作(即dims中大于1的元素个数 ≤ 4),例如:不支持torch.tile(input, [2, 3, 4, 5, 6]) ,支持torch.tile(input, [2, 3, 1, 5, 6])<br>- 当不需要对第一根轴进行重复时,最多允许同时对3个维度进行重复操作(即dims中大于1的元素个数 ≤ 3),例如:不支持torch.tile(input, [1, 3, 4, 5, 6]) ,支持torch.tile(input, [1, 3, 1, 5, 6])<br>- 若执行反向计算,输入Tensor的维度数与入参dims中大于1的元素个数之和不得超过8|96+|torch.tile|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128<br>若入参dims的长度小于input.shape的长度,则会在dims前自动补全1,使其长度与 input.shape对齐。补全后的dims,需要满足如下限制:<br>- 当需要对第一根轴进行重复时,最多允许同时对4个维度进行重复操作(即dims中大于1的元素个数 ≤ 4),例如:不支持torch.tile(input, [2, 3, 4, 5, 6]),支持torch.tile(input, [2, 3, 1, 5, 6])<br>- 当不需要对第一根轴进行重复时,最多允许同时对3个维度进行重复操作(即dims中大于1的元素个数 ≤ 3),例如:不支持torch.tile(input, [1, 3, 4, 5, 6]),支持torch.tile(input, [1, 3, 1, 5, 6])<br>- 若执行反向计算,输入Tensor的维度数与入参dims中大于1的元素个数之和不得超过8|
97|torch.transpose|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|97|torch.transpose|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
98|torch.unsqueeze|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|98|torch.unsqueeze|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
99|torch.vsplit|是|支持bf16,fp16,fp32,uint8,int8,int16,int32,int64,bool,complex64,complex128|99|torch.vsplit|是|支持bf16,fp16,fp32,uint8,int8,int16,int32,int64,bool,complex64,complex128|
@@ -1,6 +1,7 @@
1# torch.compiler1# torch.compiler
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.distributed.elastic1# torch.distributed.elastic
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.distributed.pipelining1# torch.distributed.pipelining
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.fft1# torch.fft
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5> 6>
6> 使用以下接口,需要配置以下信息:7> 使用以下接口,需要配置以下信息:
@@ -1,6 +1,7 @@
1# torch.linalg1# torch.linalg
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.nn.functional1# torch.nn.functional
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.nn1# torch.nn
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -93,7 +93,7 @@
93|torch.take|是|支持fp16,fp32,int16,int32,int64,bool|93|torch.take|是|支持fp16,fp32,int16,int32,int64,bool|
94|torch.take_along_dim|是|支持fp32|94|torch.take_along_dim|是|支持fp32|
95|torch.tensor_split|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|95|torch.tensor_split|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
96-|torch.tile|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128<br>若入参dims的长度小于input.shape的长度,则会在dims前自动补全1,使其长度与 input.shape对齐。补全后的dims,需要满足如下限制:<br>- 当需要对第一根轴进行重复时,最多允许同时对4个维度进行重复操作(即dims中大于1的元素个数 ≤ 4),例如:不支持torch.tile(input, [2, 3, 4, 5, 6]) ,支持torch.tile(input, [2, 3, 1, 5, 6])<br>- 当不需要对第一根轴进行重复时,最多允许同时对3个维度进行重复操作(即dims中大于1的元素个数 ≤ 3),例如:不支持torch.tile(input, [1, 3, 4, 5, 6]) ,支持torch.tile(input, [1, 3, 1, 5, 6])<br>- 若执行反向计算,输入Tensor的维度数与入参dims中大于1的元素个数之和不得超过8|96+|torch.tile|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128<br>若入参dims的长度小于input.shape的长度,则会在dims前自动补全1,使其长度与 input.shape对齐。补全后的dims,需要满足如下限制:<br>- 当需要对第一根轴进行重复时,最多允许同时对4个维度进行重复操作(即dims中大于1的元素个数 ≤ 4),例如:不支持torch.tile(input, [2, 3, 4, 5, 6]),支持torch.tile(input, [2, 3, 1, 5, 6])<br>- 当不需要对第一根轴进行重复时,最多允许同时对3个维度进行重复操作(即dims中大于1的元素个数 ≤ 3),例如:不支持torch.tile(input, [1, 3, 4, 5, 6]),支持torch.tile(input, [1, 3, 1, 5, 6])<br>- 若执行反向计算,输入Tensor的维度数与入参dims中大于1的元素个数之和不得超过8|
97|torch.transpose|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|97|torch.transpose|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
98|torch.unsqueeze|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|98|torch.unsqueeze|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
99|torch.vsplit|是|支持bf16,fp16,fp32,uint8,int8,int16,int32,int64,bool,complex64,complex128|99|torch.vsplit|是|支持bf16,fp16,fp32,uint8,int8,int16,int32,int64,bool,complex64,complex128|
@@ -1,6 +1,7 @@
1# torch.compiler1# torch.compiler
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.distributed.elastic1# torch.distributed.elastic
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.distributed.pipelining1# torch.distributed.pipelining
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.fft1# torch.fft
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5> 6>
6> 使用以下接口,需要配置以下信息:7> 使用以下接口,需要配置以下信息:
@@ -1,6 +1,7 @@
1# torch.linalg1# torch.linalg
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.nn.functional1# torch.nn.functional
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.nn1# torch.nn
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -93,7 +93,7 @@
93|torch.take|是|支持fp16,fp32,int16,int32,int64,bool|93|torch.take|是|支持fp16,fp32,int16,int32,int64,bool|
94|torch.take_along_dim|是|支持fp32|94|torch.take_along_dim|是|支持fp32|
95|torch.tensor_split|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|95|torch.tensor_split|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
96-|torch.tile|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128<br>若入参dims的长度小于input.shape的长度,则会在dims前自动补全1,使其长度与 input.shape对齐。补全后的dims,需要满足如下限制:<br>- 当需要对第一根轴进行重复时,最多允许同时对4个维度进行重复操作(即dims中大于1的元素个数 ≤ 4),例如:不支持torch.tile(input, [2, 3, 4, 5, 6]) ,支持torch.tile(input, [2, 3, 1, 5, 6])<br>- 当不需要对第一根轴进行重复时,最多允许同时对3个维度进行重复操作(即dims中大于1的元素个数 ≤ 3),例如:不支持torch.tile(input, [1, 3, 4, 5, 6]) ,支持torch.tile(input, [1, 3, 1, 5, 6])<br>- 若执行反向计算,输入Tensor的维度数与入参dims中大于1的元素个数之和不得超过8|96+|torch.tile|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128<br>若入参dims的长度小于input.shape的长度,则会在dims前自动补全1,使其长度与 input.shape对齐。补全后的dims,需要满足如下限制:<br>- 当需要对第一根轴进行重复时,最多允许同时对4个维度进行重复操作(即dims中大于1的元素个数 ≤ 4),例如:不支持torch.tile(input, [2, 3, 4, 5, 6]),支持torch.tile(input, [2, 3, 1, 5, 6])<br>- 当不需要对第一根轴进行重复时,最多允许同时对3个维度进行重复操作(即dims中大于1的元素个数 ≤ 3),例如:不支持torch.tile(input, [1, 3, 4, 5, 6]),支持torch.tile(input, [1, 3, 1, 5, 6])<br>- 若执行反向计算,输入Tensor的维度数与入参dims中大于1的元素个数之和不得超过8|
97|torch.transpose|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|97|torch.transpose|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
98|torch.unsqueeze|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|98|torch.unsqueeze|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
99|torch.vsplit|是|支持bf16,fp16,fp32,uint8,int8,int16,int32,int64,bool,complex64,complex128|99|torch.vsplit|是|支持bf16,fp16,fp32,uint8,int8,int16,int32,int64,bool,complex64,complex128|
@@ -1,6 +1,7 @@
1# torch.compiler1# torch.compiler
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.distributed.elastic1# torch.distributed.elastic
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.distributed.pipelining1# torch.distributed.pipelining
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.fft1# torch.fft
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5> 6>
6> 使用以下接口,需要配置以下信息:7> 使用以下接口,需要配置以下信息:
@@ -1,6 +1,7 @@
1# torch.linalg1# torch.linalg
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.nn.functional1# torch.nn.functional
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.nn1# torch.nn
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -94,7 +94,7 @@
94|torch.take|是|支持fp16,fp32,int16,int32,int64,bool|94|torch.take|是|支持fp16,fp32,int16,int32,int64,bool|
95|torch.take_along_dim|是|支持fp32|95|torch.take_along_dim|是|支持fp32|
96|torch.tensor_split|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|96|torch.tensor_split|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
97-|torch.tile|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128<br>若入参dims的长度小于input.shape的长度,则会在dims前自动补全1,使其长度与 input.shape对齐。补全后的dims,需要满足如下限制:<br>- 当需要对第一根轴进行重复时,最多允许同时对4个维度进行重复操作(即dims中大于1的元素个数 ≤ 4),例如:不支持torch.tile(input, [2, 3, 4, 5, 6]) ,支持torch.tile(input, [2, 3, 1, 5, 6])<br>- 当不需要对第一根轴进行重复时,最多允许同时对3个维度进行重复操作(即dims中大于1的元素个数 ≤ 3),例如:不支持torch.tile(input, [1, 3, 4, 5, 6]) ,支持torch.tile(input, [1, 3, 1, 5, 6])<br>- 若执行反向计算,输入Tensor的维度数与入参dims中大于1的元素个数之和不得超过8|97+|torch.tile|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128<br>若入参dims的长度小于input.shape的长度,则会在dims前自动补全1,使其长度与 input.shape对齐。补全后的dims,需要满足如下限制:<br>- 当需要对第一根轴进行重复时,最多允许同时对4个维度进行重复操作(即dims中大于1的元素个数 ≤ 4),例如:不支持torch.tile(input, [2, 3, 4, 5, 6]),支持torch.tile(input, [2, 3, 1, 5, 6])<br>- 当不需要对第一根轴进行重复时,最多允许同时对3个维度进行重复操作(即dims中大于1的元素个数 ≤ 3),例如:不支持torch.tile(input, [1, 3, 4, 5, 6]),支持torch.tile(input, [1, 3, 1, 5, 6])<br>- 若执行反向计算,输入Tensor的维度数与入参dims中大于1的元素个数之和不得超过8|
98|torch.transpose|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|98|torch.transpose|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
99|torch.unsqueeze|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|99|torch.unsqueeze|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
100|torch.vsplit|是|支持bf16,fp16,fp32,uint8,int8,int16,int32,int64,bool,complex64,complex128|100|torch.vsplit|是|支持bf16,fp16,fp32,uint8,int8,int16,int32,int64,bool,complex64,complex128|
@@ -1,6 +1,7 @@
1# torch.compiler1# torch.compiler
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.distributed.pipelining1# torch.distributed.pipelining
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.fft1# torch.fft
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5> 6>
6> 使用以下接口,需要配置以下信息:7> 使用以下接口,需要配置以下信息:
@@ -1,6 +1,7 @@
1# torch.linalg1# torch.linalg
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.nn.functional1# torch.nn.functional
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -1,6 +1,7 @@
1# torch.nn1# torch.nn
2 2 
3-> [!NOTE] 3+> [!NOTE]
4+>
4> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。5> 若API“是否支持”为“是”,“限制与说明”为“-”,说明此API和原生API支持度保持一致。
5 6 
6|API名称|是否支持|限制与说明|7|API名称|是否支持|限制与说明|
@@ -93,7 +93,7 @@
93|torch.take|是|支持fp16,fp32,int16,int32,int64,bool|93|torch.take|是|支持fp16,fp32,int16,int32,int64,bool|
94|torch.take_along_dim|是|支持fp32|94|torch.take_along_dim|是|支持fp32|
95|torch.tensor_split|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|95|torch.tensor_split|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
96-|torch.tile|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128<br>若入参dims的长度小于input.shape的长度,则会在dims前自动补全1,使其长度与 input.shape对齐。补全后的dims,需要满足如下限制:<br>- 当需要对第一根轴进行重复时,最多允许同时对4个维度进行重复操作(即dims中大于1的元素个数 ≤ 4),例如:不支持torch.tile(input, [2, 3, 4, 5, 6]) ,支持torch.tile(input, [2, 3, 1, 5, 6])<br>- 当不需要对第一根轴进行重复时,最多允许同时对3个维度进行重复操作(即dims中大于1的元素个数 ≤ 3),例如:不支持torch.tile(input, [1, 3, 4, 5, 6]) ,支持torch.tile(input, [1, 3, 1, 5, 6])<br>- 若执行反向计算,输入Tensor的维度数与入参dims中大于1的元素个数之和不得超过8|96+|torch.tile|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128<br>若入参dims的长度小于input.shape的长度,则会在dims前自动补全1,使其长度与 input.shape对齐。补全后的dims,需要满足如下限制:<br>- 当需要对第一根轴进行重复时,最多允许同时对4个维度进行重复操作(即dims中大于1的元素个数 ≤ 4),例如:不支持torch.tile(input, [2, 3, 4, 5, 6]),支持torch.tile(input, [2, 3, 1, 5, 6])<br>- 当不需要对第一根轴进行重复时,最多允许同时对3个维度进行重复操作(即dims中大于1的元素个数 ≤ 3),例如:不支持torch.tile(input, [1, 3, 4, 5, 6]),支持torch.tile(input, [1, 3, 1, 5, 6])<br>- 若执行反向计算,输入Tensor的维度数与入参dims中大于1的元素个数之和不得超过8|
97|torch.transpose|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|97|torch.transpose|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
98|torch.unsqueeze|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|98|torch.unsqueeze|是|支持bf16,fp16,fp32,fp64,uint8,int8,int16,int32,int64,bool,complex64,complex128|
99|torch.vsplit|是|支持bf16,fp16,fp32,uint8,int8,int16,int32,int64,bool,complex64,complex128|99|torch.vsplit|是|支持bf16,fp16,fp32,uint8,int8,int16,int32,int64,bool,complex64,complex128|
@@ -34,7 +34,7 @@
34 34 
35### 相关产品版本配套说明35### 相关产品版本配套说明
36 36 
37-TorchNPU代码分支名称采用 **\{PyTorch版本\}-\{昇腾版本\}** 的命名规则,前者为TorchNPU匹配的PyTorch版本,后者为TorchNPU版本,详细匹配如下表:37+TorchNPU代码分支名称采用 **\{PyTorch版本\}-\{TorchNPU版本\}** 的命名规则,前者为TorchNPU匹配的PyTorch版本,详细匹配如下表:
38 38 
39|TorchNPU代码分支名称|PyTorch版本|TorchNPU版本|TorchNPU安装包版本|CANN版本|Python版本|39|TorchNPU代码分支名称|PyTorch版本|TorchNPU版本|TorchNPU安装包版本|CANN版本|Python版本|
40|--|--|--|--|--|--|40|--|--|--|--|--|--|
@@ -149,7 +149,7 @@ TorchNPU代码分支名称采用 **\{PyTorch版本\}-\{昇腾版本\}** 的命
149- 废弃:表示该接口自作出废弃声明的版本起停止演进,且在声明一年后可能被移除。149- 废弃:表示该接口自作出废弃声明的版本起停止演进,且在声明一年后可能被移除。
150- 删除:表示该接口在此次版本被移除。150- 删除:表示该接口在此次版本被移除。
151 151 
152-**表 1** Ascend Extension for PyTorch接口变更汇总152+**表 1** TorchNPU接口变更汇总
153 153 
154<table>154<table>
155 <thead align="left">155 <thead align="left">
@@ -21,7 +21,7 @@ npu_backend = torchair.get_npu_backend(compiler_config=config)
21compiled_model = torch.compile(model, backend=npu_backend)21compiled_model = torch.compile(model, backend=npu_backend)
22```22```
23 23 
24-TorchAir-GE后端支持的编译选项(`compiler_config`参数)和详细使用指导请参考《PyTorch图模式使用(TorchAir)》中的 [GE图模式](https://gitcode.com/Ascend/torchair/blob/26.1.0/docs/zh/ascend_ir/quick_start.md)。24+TorchAir-GE后端支持的编译选项(`compiler_config`参数)和详细使用指导请参考《TorchAir》中的 [GE图模式](https://gitcode.com/Ascend/torchair/blob/26.1.0/docs/zh/ascend_ir/quick_start.md)。
25 25 
26## 调用样例26## 调用样例
27 27