diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\347\216\257\345\242\203\351\203\250\347\275\262\344\270\216\344\275\277\347\224\250\350\257\264\346\230\216.md" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\347\216\257\345\242\203\351\203\250\347\275\262\344\270\216\344\275\277\347\224\250\350\257\264\346\230\216.md" index 214b0c94bb0308082a30c0bc0c069e1bb0bacdb5..c498c327de6c47271c0de93f29f1361649a2e3b8 100644 --- "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\347\216\257\345\242\203\351\203\250\347\275\262\344\270\216\344\275\277\347\224\250\350\257\264\346\230\216.md" +++ "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\347\216\257\345\242\203\351\203\250\347\275\262\344\270\216\344\275\277\347\224\250\350\257\264\346\230\216.md" @@ -1,9 +1,9 @@ # 310服务器部署与说明 - CANN包安装 - - 1.获取CANN包 + - 1.获取CANN包,优先选择商业版 https://www.hiascend.com/software/cann/community - 2.卸载老CANN包 - bash A300-3000-3010-npu-firmware_1.77.22.6.220.run --uninstall + bash A300-3010-npu-driver_21.0.1_ubuntu18.04-x86_64.run --uninstall rm -rf /usr/local/Ascend reboot - 3.安装CANN包 @@ -11,7 +11,7 @@ bash A300-3000-3010-npu-firmware_1.77.22.6.220.run --full reboot bash Ascend-cann-toolkit_5.0.1_linux-x86_64.run --install - - 4.获取benchmark工具 + - 4.获取benchmark工具与脚本 unzip Ascend-cann-benchmark_5.0.1-Linux-x86_64.zip >**说明:** diff --git "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274.md" "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274.md" index 1ab0325c3176c33d01d20c29aadd69f0a18c543e..98a95ae08cee7e047d6050e4a1d5d9178e9d66ef 100644 --- "a/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274.md" +++ "b/Ascend-PyTorch\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274/PyTorch\347\246\273\347\272\277\346\216\250\347\220\206-\347\246\273\347\272\277\346\216\250\347\220\206\346\214\207\345\257\274.md" @@ -1,7 +1,7 @@ # Ascend PyTorch模型离线推理指导 - [1 概述](#1-概述) - [1.1 原理与方案](#11-原理与方案) - - [1.2 环境搭建](#12-环境搭建) + - [1.2 环境搭建与说明](#12-环境搭建与说明) - [2 推理指导](#2-推理指导) - [2.1 推理流程](#21-推理流程) - [2.1.1 导出onnx文件](#211-导出onnx文件) @@ -15,20 +15,20 @@ - [2.4 性能优化指导](#24-性能优化指导) - [3 附录](#4-附录) - [3.1 模型案例](#31-模型案例) - - [3.2 交付标准与交付件规范](#32-交付标准与交付件规范) + - [3.2 交付标准与规范](#32-交付标准与规范) - [3.3 深度学习指导](#33-深度学习指导) - ## 1 概述 - **[原理与方案](#11-原理与方案)** -- **[环境搭建](#12-环境搭建)** +- **[环境搭建与说明](#12-环境搭建与说明)** ### 1.1 原理与方案 + - 精度性能要求 Ascend PyTorch模型离线推理目标是pytorch模型在npu Ascend 310卡上离线推理的精度与gpu T4卡上推理精度一致,推理性能超过T4。 @@ -41,59 +41,42 @@ ![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/figures/pyotrch_offline_infer.png) -### 1.2 环境搭建 +### 1.2 环境搭建与说明 -**Ascend相关文档与软件发布在华为云[support地址](https://support.huawei.com/enterprise/zh/category/ascend-computing-pid-1557196528909)CANN和A300-3010** +**Ascend CANN软件与使用指南文档均发布在华为云[support地址](https://support.huawei.com/enterprise/zh/category/ascend-computing-pid-1557196528909)CANN和A300-3010** >![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) **说明:** -> **若使用搭建完成的环境,可跳过此步骤。一般情况下,华为默认会提供搭建完成的环境。** - +> **若使用搭建完成的环境,可跳过此步骤。一般情况下,华为默认会提供搭建完成的[部署环境](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-%E7%8E%AF%E5%A2%83%E9%83%A8%E7%BD%B2%E4%B8%8E%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.md)。** -1. Ascend的run包安装。 - - 在Ascend NPU系列设备上部署开发环境,请参考[《CANN V100R020C10 软件安装指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100164870/59fb2d06)的“获取软件包”和”安装开发环境“章节,完成安装前准备。 +**开发者需要根据[机器申请与使用指南](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-%E6%9C%BA%E5%99%A8%E7%94%B3%E8%AF%B7%E4%B8%8E%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.md)的要求申请与使用机器** - - 请参考[《CANN V100R020C10 软件安装指南》](https://support.huawei.com/enterprise/zh/doc/EDOC1100164870/59fb2d06)的”安装昇腾芯片驱动和固件“ -\>“安装开发套件和框架插件包”章节,完成安装。 - - >![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) **说明:** - > - >安装驱动和固件需要root用户,若使用默认路径安装: - > - > ps. 如升级run包,建议 ./A300-3010-npu-driver\_\{version\}\_centos7.6-gcc4.8.5-x86_64.run --uninstall;rm -rf /usr/local/Ascend;reboot - > - >安装驱动:./A300-3010-npu-driver\_\{version\}\_centos7.6-gcc4.8.5-x86_64.run --full --quiet - > - >安装固件:./A300-3010-npu-firmware-\{version\}.run --full --quiet - > - >安装CANN包:./Ascend-cann-toolkit-\{version\}-linux-x86_64.run --install --quiet - > - >解压Ascend-cann-benchmark_\{version\}-Linux-x86_64.zip,获取benchmark工具与脚本 - > - >若报无HwHiAiUser用户则执行useradd HwHiAiUser,安装固件若报Not a physical-machine, firmware upgrade does not support.则不必安装固件,若报错ls: cannot access '/usr/local/Ascend/ascend-toolkit/5.0.1/x86_64-linux/toolkit/python/site-packages/bin': No such file or directory则export PATH=/usr/local/python3.7.5/bin:¥PATH;export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:¥LD_LIBRARY_PATH。安装驱动需要重启。 - -2. 深度学习框架与第三方库 +深度学习框架与第三方库 ``` +python3.7.5 + pytorch >= 1.5.0 -torchvision == 0.7.0 +torchvision == 0.6.0 onnx == 1.7.0 -onnxruntime == 1.5.2 -onnxoptimizer == 0.1.1 -numpy == 1.18.5 -Pillow == 7.2.0 -opencv-python == 4.2.0.34 +onnxruntime +onnxoptimizer + +numpy +Pillow +opencv-python ``` >![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) **说明:** > -> X86架构:pytorch和torchvision可以通过官方下载whl包安装,其他可以通过pip install 包名 安装 +> X86架构:pytorch和torchvision可以通过官方下载whl包安装,其他可以通过pip3.7 install 包名 安装 > -> Arm架构:pytorch,torchvision和opencv可以通过github下载源码编译安装,其他可以通过pip install 包名 安装 +> Arm架构:pytorch,torchvision和opencv可以通过github下载源码编译安装,其他可以通过pip3.7 install 包名 安装 > -> 以上为多数网络需要安装的软件与推荐的版本,根据实际情况安装。如果python脚本运行过程中import 模块失败,安装相应模块即可,如果报错是缺少动态库,网上搜索报错信息找到相应安装包,执行yum install 包名安装即可 +> 以上为多数网络需要安装的软件与推荐的版本,根据实际情况安装。如果python脚本运行过程中import 模块失败,安装相应模块即可,如果报错是缺少动态库,网上搜索报错信息找到相应安装包,执行apt-get install 包名安装即可 + -[机器申请与使用指南](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-%E6%9C%BA%E5%99%A8%E7%94%B3%E8%AF%B7%E4%B8%8E%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97.md) ## 2 推理指导 @@ -105,9 +88,13 @@ opencv-python == 4.2.0.34 - **[性能换指导](#24-性能换指导)** + ### 2.1 推理流程 + 以EfficientNet-b0为例介绍端到端推理涉及到的所有流程 + #### 2.1.1 导出onnx文件 + - 获取pytorch模型代码与权重文件 基于PyTorch框架的EfficientNet模型代码与pth权重文件可以从开源[github网址](https://github.com/lukemelas/EfficientNet-PyTorch)获取 >![](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/raw/master/public_sys-resources/icon-note.gif) @@ -602,7 +589,7 @@ bs16 310单卡吞吐率:524.094x4=2096.376fps/card batch1性能: ``` -trtexec --onnx=efficientnet-b0-sim.onnx --fp16 --shapes=image:1x3x224x224 --threads +trtexec --onnx=efficientnet-b0-sim.onnx --fp16 --shapes=image:1x3x224x224 ``` gpu T4是4个device并行执行的结果,mean是时延(tensorrt的时延是batch个数据的推理时间),即吞吐率的倒数乘以batch ``` @@ -618,7 +605,7 @@ batch1 t4单卡吞吐率:1000/(1.31054/1)=763.044fps batch16性能: ``` -trtexec --onnx=efficientnet-b0_sim.onnx --fp16 --shapes=image:16x3x224x224 --threads +trtexec --onnx=efficientnet-b0_sim.onnx --fp16 --shapes=image:16x3x224x224 ``` ``` [03/24/2021-03:57:22] [I] GPU Compute @@ -703,14 +690,14 @@ profiling也会统计每个算子耗时,结合使用netron查看onnx模型结 ## 3 附录 - **[模型案例](#31-模型案例)** -- **[交付标准与交付件规范](#32-交付标准与交付件规范)** +- **[交付标准与规范](#32-交付标准与规范)** - **[深度学习指导](#33-深度学习指导)** ### 3.1 模型案例 [模型案例](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-%E6%A8%A1%E5%9E%8B%E6%A1%88%E4%BE%8B.md) -### 3.2 交付标准与交付件规范 -[交付标准与交付件规范](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-%E4%BA%A4%E4%BB%98%E6%A0%87%E5%87%86%E4%B8%8E%E4%BA%A4%E4%BB%98%E4%BB%B6.md) +### 3.2 交付标准与规范 +**[交付标准与规范](https://gitee.com/wangjiangben_hw/ascend-pytorch-crowdintelligence-doc/blob/master/Ascend-PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86%E6%8C%87%E5%AF%BC/PyTorch%E7%A6%BB%E7%BA%BF%E6%8E%A8%E7%90%86-%E4%BA%A4%E4%BB%98%E6%A0%87%E5%87%86%E4%B8%8E%E4%BA%A4%E4%BB%98%E4%BB%B6.md)** ### 3.3 深度学习指导 - 书籍推荐