diff --git "a/docs/zh/PyTorch\345\256\211\350\243\205\346\214\207\345\215\227/PyTorch\345\256\211\350\243\205\346\214\207\345\215\227.md" "b/docs/zh/PyTorch\345\256\211\350\243\205\346\214\207\345\215\227/PyTorch\345\256\211\350\243\205\346\214\207\345\215\227.md" index 449b41865960cde4a8640c594d00d863e3d7099e..e95466c3e1ceaa906efb44873ce253a3bb27001f 100644 --- "a/docs/zh/PyTorch\345\256\211\350\243\205\346\214\207\345\215\227/PyTorch\345\256\211\350\243\205\346\214\207\345\215\227.md" +++ "b/docs/zh/PyTorch\345\256\211\350\243\205\346\214\207\345\215\227/PyTorch\345\256\211\350\243\205\346\214\207\345\215\227.md" @@ -268,11 +268,6 @@

缺省时,按照以下优先级选定host通信网卡名:docker/local以外网卡(网卡名字字典序升序排列)>docker 网卡 > local网卡

-

PTCOPY_ENABLE

- -

使用PTCopy算子模式,加速转连续及copy等过程,建议开启,开启设置为1

- -

ASCEND_SLOG_PRINT_TO_STDOUT

(可选)设置是否开启日志打屏。

@@ -324,6 +319,7 @@ +

安装混合精度模块

#### 前提条件 diff --git "a/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227.md" "b/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227.md" index 2dc38f80934239a2c7552d77bc6a519a857f4b8c..d526c9689b23a25d20cea2f6876d201865c09296 100644 --- "a/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227.md" +++ "b/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227.md" @@ -158,7 +158,7 @@ ResNet50模型用到的算子已经在昇腾AI处理器上支持。 ### 环境准备 -请参见《PyTorch安装指南》进行CANN软件安装、PyTorch框架及混合精度模块安装,并配置环境变量。 +请参见[《PyTorch安装指南》](https://gitee.com/ascend/pytorch/blob/master/docs/zh/PyTorch%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97/PyTorch%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97.md) 进行CANN软件安装、PyTorch框架及混合精度模块安装,并配置环境变量。 参考PyTorch [examples](https://github.com/pytorch/examples/tree/master/imagenet) 准备模型运行所需要的Python环境及依赖。 @@ -717,7 +717,7 @@ python3 main.py /home/data/resnet50/imagenet --addr='1.1.1.1' \ #

环境准备

-请参见《PyTorch安装指南》进行PyTorch及混合精度模块安装,并配置环境变量。 +请参见[《PyTorch安装指南》](https://gitee.com/ascend/pytorch/blob/master/docs/zh/PyTorch%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97/PyTorch%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97.md) 进行PyTorch及混合精度模块安装,并配置环境变量。

模型迁移

@@ -1580,6 +1580,34 @@ def main(): optimizer.step() ``` +

Pytorch1.8.1 AMP 在NPU上的使用说明

+ +

总体说明

+ +Pytorch1.8.1版本的AMP,类似于Apex AMP的O1模式(动态 loss scale),也是通过将部分算子的输入转换为fp16类型来实现混合精度的训练。 + +

AMP使用场景

+ +1. 典型场景。 + +2. 梯度累加场景。 + +3. 多Models,Losses,and Optimizers场景。 + +4. DDP场景(one NPU per process)。 + + +目前针对pytorch1.8.1框架仅支持以上4种场景,更多场景使用请参考pytorch官方操作指南。 + +

NPU上AMP的使用方法

+ +1. 模型从GPU适配到NPU时,需要修改代码torch.cuda.amp修改为torch.npu.amp。 +2. 当前Pytroch1.8.1 AMP增加了dynamic选项(默认为True),设置为False时,AMP能支持静态Loss Scale。 + +

注意事项

+ +1. 1.8.1中AMP使用装饰器的方式实现。在train与test时需要通过添加with NPUautocast()将模型的入参转换为FP16,如果不添加,模型入参仍为FP32,在极限batchsize下,会出现内存不足的问题。 +4. 当前1.8.1AMP不支持tensor融合功能。

模型训练

@@ -2257,7 +2285,7 @@ with torch.npu.profile(profiler_result_path="./results", use_e2e_profiler=True 若使用模型算子精度对比功能,需要同时在NPU和GPU环境安装hdf5。否则,仅在NPU环境安装hdf5即可。 -- 安装支持dump功能的Ascend PyTorch框架,编译前请修改build.sh脚本,其余操作请参见《PyTorch安装指南》。 +- 安装支持dump功能的Ascend PyTorch框架,编译前请修改build.sh脚本,其余操作请参见[《PyTorch安装指南》](https://gitee.com/ascend/pytorch/blob/master/docs/zh/PyTorch%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97/PyTorch%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97.md) 。 - 在NPU环境PyTorch安装 diff --git "a/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/figures/APEX\345\234\272\346\231\2571.png" "b/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/figures/APEX\345\234\272\346\231\2571.png" new file mode 100644 index 0000000000000000000000000000000000000000..dae8a195c9fdf3c7ef05553a6415899341bd9419 Binary files /dev/null and "b/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/figures/APEX\345\234\272\346\231\2571.png" differ diff --git "a/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/figures/APEX\345\234\272\346\231\2572.png" "b/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/figures/APEX\345\234\272\346\231\2572.png" new file mode 100644 index 0000000000000000000000000000000000000000..2e7c88430ff8b30735a77ac55d6e896faf5abe0d Binary files /dev/null and "b/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/figures/APEX\345\234\272\346\231\2572.png" differ diff --git "a/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/figures/APEX\345\234\272\346\231\2573.png" "b/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/figures/APEX\345\234\272\346\231\2573.png" new file mode 100644 index 0000000000000000000000000000000000000000..82b532c5ca4174be59d8ef28c78cd647b56f5658 Binary files /dev/null and "b/docs/zh/PyTorch\347\275\221\347\273\234\346\250\241\345\236\213\347\247\273\346\244\215&\350\256\255\347\273\203\346\214\207\345\215\227/figures/APEX\345\234\272\346\231\2573.png" differ