From 9692611c9fda5a5ef1d2abc4ae87d323a2d45827 Mon Sep 17 00:00:00 2001 From: qili93 Date: Fri, 15 Oct 2021 09:42:36 +0000 Subject: [PATCH 1/4] [NPU] update paddle doc for npu and rocm, test=develop --- .../09_hardware_support/npu_docs/index_cn.rst | 8 +- .../npu_docs/paddle_install_cn.md | 94 ++++++--- .../npu_docs/paddle_models_cn.md | 32 +++ .../npu_docs/train_example_cn.md | 182 ++++++++++++++++-- .../rocm_docs/paddle_rocm_cn.md | 24 +-- .../rocm_docs/train_example_cn.md | 2 +- 6 files changed, 289 insertions(+), 53 deletions(-) create mode 100644 docs/guides/09_hardware_support/npu_docs/paddle_models_cn.md diff --git a/docs/guides/09_hardware_support/npu_docs/index_cn.rst b/docs/guides/09_hardware_support/npu_docs/index_cn.rst index d3c68dc7b8c..8f80b242f0f 100644 --- a/docs/guides/09_hardware_support/npu_docs/index_cn.rst +++ b/docs/guides/09_hardware_support/npu_docs/index_cn.rst @@ -4,15 +4,17 @@ 昇腾NPU芯片运行飞桨 #################### -昇腾芯片是华为公司发布的人工智能处理器。Paddle当前可以支持在NPU上进行模型训练。 +华为昇腾910(Ascend 910)是一款具有超高算力的AI处理器是。Paddle NPU 版当前可以支持在华为鲲鹏CPU与昇腾NPU上进行模型训练与预测。 参考以下内容可快速了解和体验在昇腾芯片上运行飞桨: -- `飞桨框架NPU版安装说明 <./paddle_install_cn.html>`_ : 飞桨框架NPU版安装说明 -- `飞桨框架NPU版训练示例 <./train_example_cn.html>`_ : 飞桨框架NPU版训练示例 +- `飞桨框架昇腾NPU版支持模型 <./paddle_models_cn.html>`_ : 飞桨框架昇腾NPU版支持模型 +- `飞桨框架昇腾NPU版安装说明 <./paddle_install_cn.html>`_ : 飞桨框架昇腾NPU版安装说明 +- `飞桨框架昇腾NPU版训练示例 <./train_example_cn.html>`_ : 飞桨框架昇腾NPU版训练示例 .. toctree:: :hidden: + paddle_models_cn.md paddle_install_cn.md train_example_cn.md diff --git a/docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md b/docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md index e607587dcf7..26e56dfad84 100644 --- a/docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md +++ b/docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md @@ -1,48 +1,98 @@ -# 飞桨框架NPU版安装说明 +# 飞桨框架昇腾NPU版安装说明 +飞桨框架NPU版支持基于华为鲲鹏CPU与昇腾NPU的Python的训练和原生预测,当前支持的CANN社区版5.0.2.alpha005 Paddle版本为develop。 -## 安装方式:通过release/2.1分支源码编译安装 +## 安装方式:通过源码编译安装 -### 环境准备 +**预先要求**:请先根据华为昇腾910 NPU的要求,进行相关NPU运行环境的部署和配置,参考华为官方文档 [CANN社区版安装指南](https://support.huaweicloud.com/instg-cli-cann502-alpha005/atlasdeploy_03_0002.html)。 -**昇腾NPU** +**第一步**:准备 CANN 社区版 5.0.2.alpha005 运行环境 (推荐使用Paddle镜像) -- **处理器: 鲲鹏920** -- **操作系统:Linux version 4.19.36-vhulk1907.1.0.h475.eulerosv2r8.aarch64** -- **CANN: 20.3** -- **Python版本: 2.7/3.6/3.7 (64 bit)** -- **pip或pip3版本:9.0.1+ (64 bit)** -- **cmake版本:3.15+** -- **gcc/g++版本:8.2+** - - -### 源码编译安装步骤: +可以直接从Paddle的官方镜像库拉取预先装有 CANN 社区版 5.0.2.alpha005 的 docker 镜像,或者根据 [CANN社区版安装指南](https://support.huaweicloud.com/instg-cli-cann502-alpha005/atlasdeploy_03_0002.html) 来准备相应的开发与运行环境。 +```bash +# 拉取镜像 +docker pull paddlepaddle/paddle:latest-dev-cann5.0.2.alpha005-gcc82-aarch64 + +# 启动容器,注意这里的参数 --device,容器仅映射设备ID为4到7的4张NPU卡,如需映射其他卡相应增改设备ID号即可 +docker run -it --name paddle-npu-dev -v \ + --pids-limit 409600 --shm-size=128G \ + --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \ + --device=/dev/davinci4 --device=/dev/davinci5 \ + --device=/dev/davinci6 --device=/dev/davinci7 \ + --device=/dev/davinci_manager \ + --device=/dev/devmm_svm \ + --device=/dev/hisi_hdc \ + -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ + -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ + -v /usr/local/dcmi:/usr/local/dcmi \ + paddlepaddle/paddle:latest-dev-cann5.0.2.alpha005-gcc82-aarch64 /bin/bash + +# 检查容器中是否可以正确识别映射的昇腾DCU设备 +npu-smi info + +# 预期得到类似如下的结果 ++------------------------------------------------------------------------------------+ +| npu-smi 1.9.3 Version: 21.0.rc1 | ++----------------------+---------------+---------------------------------------------+ +| NPU Name | Health | Power(W) Temp(C) | +| Chip | Bus-Id | AICore(%) Memory-Usage(MB) HBM-Usage(MB) | ++======================+===============+=============================================+ +| 4 910A | OK | 67.2 30 | +| 0 | 0000:C2:00.0 | 0 303 / 15171 0 / 32768 | ++======================+===============+=============================================+ +| 5 910A | OK | 63.8 25 | +| 0 | 0000:82:00.0 | 0 2123 / 15171 0 / 32768 | ++======================+===============+=============================================+ +| 6 910A | OK | 67.1 27 | +| 0 | 0000:42:00.0 | 0 1061 / 15171 0 / 32768 | ++======================+===============+=============================================+ +| 7 910A | OK | 65.5 30 | +| 0 | 0000:02:00.0 | 0 2563 / 15078 0 / 32768 | ++======================+===============+=============================================+ +``` -**第一步**:下载Paddle源码并编译,CMAKE编译选项含义请参见[编译选项表](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/install/Tables.html#Compile) +**第二步**:下载Paddle源码并编译,CMAKE编译选项含义请参见[编译选项表](https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/install/Tables.html#Compile) ```bash -# 下载源码,建议切换到 develop 分支 -git clone -b develop https://github.com/PaddlePaddle/Paddle.git +# 下载源码 +git clone https://github.com/PaddlePaddle/Paddle.git cd Paddle # 创建编译目录 mkdir build && cd build # 执行cmake -cmake .. -DPY_VERSION=3 -DWITH_ASCEND=OFF -DPYTHON_EXECUTABLE=`which python3` -DPYTHON_INCLUDE_DIR=`python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())"` -DWITH_ARM=ON -DWITH_ASCEND_CL=ON -DWITH_TESTING=ON -DCMAKE_BUILD_TYPE=Release -DON_INFER=ON -DWITH_XBYAK=OFF +cmake .. -DPY_VERSION=3.7 -DWITH_ASCEND=OFF -DWITH_ARM=ON -DWITH_ASCEND_CL=ON \ + -DWITH_ASCEND_INT64=ON -DWITH_DISTRIBUTE=ON -DWITH_TESTING=ON -DON_INFER=ON \ + -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON # 使用以下命令来编译 make TARGET=ARMV8 -j$(nproc) ``` -**第二步**:安装与验证编译生成的wheel包 -编译完成之后进入`Paddle/build/python/dist`目录即可找到编译生成的.whl安装包,推荐设置PYTHONPATH环境变量安装: +**第三步**:安装与验证编译生成的wheel包 + +编译完成之后进入`Paddle/build/python/dist`目录即可找到编译生成的.whl安装包,安装与验证命令如下: ```bash -# 设置PYTHONPATH -export PYTHONPATH=/your/dir/Paddle/build/python:$PYTHONPATH +# 安装命令 +python -m pip install -U paddlepaddle_npu-0.0.0-cp37-cp37m-linux_aarch64.whl # 验证命令 python -c "import paddle; paddle.utils.run_check()" + +# 预期得到类似以下结果: +Running verify PaddlePaddle program ... +PaddlePaddle works well on 1 NPU. +PaddlePaddle works well on 4 NPUs. +PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now. +``` + +## 如何卸载 + +请使用以下命令卸载Paddle: + +```bash +pip uninstall paddlepaddle-npu ``` diff --git a/docs/guides/09_hardware_support/npu_docs/paddle_models_cn.md b/docs/guides/09_hardware_support/npu_docs/paddle_models_cn.md new file mode 100644 index 00000000000..13498a50b03 --- /dev/null +++ b/docs/guides/09_hardware_support/npu_docs/paddle_models_cn.md @@ -0,0 +1,32 @@ +# 飞桨框架昇腾NPU版支持模型 + +目前Paddle昇腾NPU版基于华为鲲鹏CPU与昇腾NPU支持以下模型的单机单卡/单机多卡的训练。 + +| 模型 | 领域 | 模型链接 | 编程范式 | 单卡训练支持 | +| ----------------- | -------- | -------------------------------------------------------- | ------------- | -------------- | +| ResNet50 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/ResNet/ResNet50.yaml) | 动态图 | 支持 | +| ResNet18 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/ResNet/ResNet18.yaml) | 动态图 | 支持 | +| VGG16 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/VGG/VGG16.yaml) | 动态图 | 支持 | +| AlexNet | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/AlexNet/AlexNet.yaml) | 动态图 | 支持 | +| YOLOv3 | 目标检测 | [模型链接](https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.2/configs/yolov3/yolov3_darknet53_270e_voc.yml) | 动态图 | 支持 | +| BERT | NLP | [模型链接](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/language_model/bert) | 动态图 | 支持 | +| XLNet | NLP | [模型链接](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/language_model/xlnet) | 动态图 | 支持 | +| DeepFM | 推荐系统 | [模型链接](https://github.com/PaddlePaddle/PaddleRec/tree/release/2.1.0/models/rank/deepfm) | 动态图 | 支持 | +| Wide&Deep | 推荐系统 | [模型链接](https://github.com/PaddlePaddle/PaddleRec/tree/release/2.1.0/models/rank/wide_deep) | 动态图 | 支持 | +| NCF | 推荐系统 | [模型链接](https://github.com/PaddlePaddle/PaddleRec/tree/release/2.1.0/models/recall/ncf) | 动态图 | 支持 | +| DQN | 强化学习 | [模型链接](https://github.com/PaddlePaddle/PARL/tree/develop/examples/DQN) | 动态图 | 支持 | + +## 模型套件 + +模型放置在飞桨模型套件中,各领域套件是 github.com/PaddlePaddle 下的独立repo,git clone下载即可获取所需的模型文件: + +| 领域 | 套件名称 | 分支/版本 | +| ----------- | --------------- | ---------------- | +| 图像分类 | PaddleClas | release/2.3 | +| 目标检测 | PaddleDetection | release/2.2 | +| 自然语言处理 | PaddleNLP | develop | +| 推荐系统 | PaddleRec | release/2.1.0 | +| 强化学习 | PARL | develop | + + +后续版本将持续增加昇腾NPU在更多模型任务上的验证。 diff --git a/docs/guides/09_hardware_support/npu_docs/train_example_cn.md b/docs/guides/09_hardware_support/npu_docs/train_example_cn.md index a0ea7cc0b7d..cf6bd8339c1 100644 --- a/docs/guides/09_hardware_support/npu_docs/train_example_cn.md +++ b/docs/guides/09_hardware_support/npu_docs/train_example_cn.md @@ -1,28 +1,180 @@ # 飞桨框架昇腾NPU版训练示例 +## YOLOv3训练示例 -## Mnist运行示例: +**第一步**:下载并安装 PaddleDetection 套件 + +```bash +# 下载套件代码 +cd path_to_clone_PaddleDetection +git clone https://github.com/PaddlePaddle/PaddleDetection.git + +# 编译安装 +cd PaddleDetection +python setup.py install + +# 安装其他依赖 +pip install -r requirements.txt +``` + +也可以访问PaddleDetection的 [Github Repo](https://github.com/PaddlePaddle/PaddleDetection) 直接下载源码。 + +**第二步**:准备 VOC 训练数据集 + +```bash +cd PaddleDetection/static/dataset/roadsign_voc +python download_roadsign_voc.py +``` + +**第三步**:运行单卡训练 + +```bash +export FLAGS_selected_npus=0 + +# 单卡训练 +python -u tools/train.py -c configs/yolov3_darknet_roadsign.yml \ + -o use_npu=True + +# 单卡评估 +python -u tools/eval.py -c configs/yolov3_darknet_roadsign.yml \ + -o use_npu=True + +# 精度结果 +INFO:ppdet.utils.voc_eval:mAP(0.50, integral) = 79.40% +``` + +**第四步**:运行多卡训练 + +> 注意:多卡训练请参考本页下一章节进行 "NPU多卡训练配置" 的准备。 + +```bash +# NPU 多卡训练配置 +export FLAGS_selected_npus=0,1,2,3 +export RANK_TABLE_FILE=/root/hccl_4p_0123_127.0.0.1.json + +# 设置 HCCL 相关环境变量 +export HCCL_CONNECT_TIMEOUT=7200 +export HCCL_WHITELIST_DISABLE=1 +export HCCL_SECURITY_MODE=1 + +# 多卡训练 +python -m paddle.distributed.fleet.launch --run_mode=collective \ + tools/train.py -c configs/yolov3_darknet_roadsign.yml \ + -o use_npu=True + +# 多卡训练结果评估 +python -u tools/eval.py -c configs/yolov3_darknet_roadsign.yml \ + -o use_npu=True + +# 精度结果 +INFO:ppdet.utils.voc_eval:mAP(0.50, integral) = 83.00% +``` + +## NPU多卡训练配置 + +**预先要求**:请先根据华为昇腾910 NPU的文档 [配置device的网卡IP](https://support.huaweicloud.com/instg-cli-cann502-alpha005/atlasdeploy_03_0105.html) 进行相关NPU运行环境的部署和配置,配置完成后检查机器下存在 `/etc/hccn.conf` 文件。 + +如果是物理机环境,请根据华为官网的 [hccl_tools 说明文档](https://github.com/mindspore-ai/mindspore/tree/v1.4.0/model_zoo/utils/hccl_tools) 进行操作。如果是根据 Paddle 官方镜像启动的容器环境,请根据以下步骤进行操作: + +**第一步**:根据容器启动时映射的设备ID,创建容器内的 `/etc/hccn.conf` 文件 + +例如物理机上的8卡的原始 `/etc/hccn.conf` 文件内容如下: -### 下载模型和运行脚本 ``` -# 下载模型和数据 -wget https://fleet.bj.bcebos.com/ascend/npu.tar.gz -tar xzvf npu.tar.gz +address_0=192.168.10.21 +netmask_0=255.255.255.0 +address_1=192.168.20.21 +netmask_1=255.255.255.0 +address_2=192.168.30.21 +netmask_2=255.255.255.0 +address_3=192.168.40.21 +netmask_3=255.255.255.0 +address_4=192.168.10.22 +netmask_4=255.255.255.0 +address_5=192.168.20.22 +netmask_5=255.255.255.0 +address_6=192.168.30.22 +netmask_6=255.255.255.0 +address_7=192.168.40.22 +netmask_7=255.255.255.0 ``` -### 执行训练 +容器启动命令中映射的设备ID为4到7的4张NPU卡,则创建创建容器内的 `/etc/hccn.conf` 文件内容如下: + +> 注意:这里的 address_4 和 netmask_4 需要相应的修改为 address_0 和 netmask_0,以此类推 + ``` -sh run_mnist.sh +address_0=192.168.10.22 +netmask_0=255.255.255.0 +address_1=192.168.20.22 +netmask_1=255.255.255.0 +address_2=192.168.30.22 +netmask_2=255.255.255.0 +address_3=192.168.40.22 +netmask_3=255.255.255.0 ``` -### 配置说明 +**第二步**:根据华为官网的 [hccl_tools 说明文档](https://github.com/mindspore-ai/mindspore/tree/v1.4.0/model_zoo/utils/hccl_tools),生成单机四卡的配置文件 -run_mnist.sh中的配置 ``` -# 配置paddle的路径 -export PYTHONPATH=/your/dir/Paddle/build/python:$PYTHONPATH -# 配置使用的NPU卡 -export FLAGS_selected_npus=5 -# 执行训练脚本 -python3 mnist.py +# 下载 hccl_tools.py 文件到本地 +wget https://raw.githubusercontent.com/mindspore-ai/mindspore/v1.4.0/model_zoo/utils/hccl_tools/hccl_tools.py + +# 生成单机两卡的配置文件,单机可以设置 IP 为 127.0.0.1 +python hccl_tools.py --device_num "[0,4)" --server_ip 127.0.0.1 +``` + +运行成功之后在当前目录下获得名为 `hccl_4p_0123_127.0.0.1.json` 的文件,内容如下: + +```json +{ + "version": "1.0", + "server_count": "1", + "server_list": [ + { + "server_id": "127.0.0.1", + "device": [ + { + "device_id": "0", + "device_ip": "192.168.10.22", + "rank_id": "0" + }, + { + "device_id": "1", + "device_ip": "192.168.20.22", + "rank_id": "1" + }, + { + "device_id": "2", + "device_ip": "192.168.30.22", + "rank_id": "2" + }, + { + "device_id": "3", + "device_ip": "192.168.40.22", + "rank_id": "3" + } + ], + "host_nic_ip": "reserve" + } + ], + "status": "completed" +} +``` + +**第三步**:运行Paddle多卡训练之前,需要先配置名为 `RANK_TABLE_FILE` 的环境变量,指向上一步生成的json文件的绝对路径 + +```bash +# 1) 设置 ranktable 文件的环境变量 +export RANK_TABLE_FILE=$(readlink -f hccl_4p_0123_127.0.0.1.json) +# 或者直接修改为json文件的绝对路径 +export RANK_TABLE_FILE=/root/hccl_4p_0123_127.0.0.1.json + +# 2) 设置 HCCL 相关环境变量 +export HCCL_CONNECT_TIMEOUT=7200 +export HCCL_WHITELIST_DISABLE=1 +export HCCL_SECURITY_MODE=1 + +# 3) 启动分布式任务,注意这里的 run_mode 当前仅支持 collective 模式 +python -m paddle.distributed.fleet.launch --run_mode=collective train.py ... ``` diff --git a/docs/guides/09_hardware_support/rocm_docs/paddle_rocm_cn.md b/docs/guides/09_hardware_support/rocm_docs/paddle_rocm_cn.md index aa7282830d0..e1ad470fc4a 100644 --- a/docs/guides/09_hardware_support/rocm_docs/paddle_rocm_cn.md +++ b/docs/guides/09_hardware_support/rocm_docs/paddle_rocm_cn.md @@ -7,15 +7,15 @@ | 模型 | 领域 | 模型链接 | 编程范式 | 训练单机多卡支持 | 训练多机多卡支持 | 推理支持 | | ----------------- | -------- | ------------------------------------------------------------ | ------------- | -------------- | -------------- | -------------- | -| ResNet50 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/tree/release/2.2/docs/zh_CN/models/ResNet_and_vd.md) | 动态图 | 支持 | 支持 | 支持 | -| ResNet101 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/tree/release/2.2/docs/zh_CN/models/ResNet_and_vd.md) | 动态图 | 支持 | 支持 | 支持 | -| SE_ResNet50_vd | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/tree/release/2.2/docs/zh_CN/models/SEResNext_and_Res2Net.md) | 动态图 | 支持 | 支持 | 支持 | -| VGG16 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/tree/release/2.2/docs/zh_CN/models/Others.md) | 动态图 | 支持 | 支持 | 支持 | -| InceptionV4 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/tree/release/2.2/docs/zh_CN/models/Inception.md) | 动态图 | 支持 | 支持 | 支持 | -| GoogleNet | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/tree/release/2.2/docs/zh_CN/models/Inception.md) | 动态图 | 支持 | 支持 | 支持 | -| MobileNetV3 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/tree/release/2.2/docs/zh_CN/models/Mobile.md) | 动态图 | 支持 | 支持 | 支持 | -| AlexNet | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/tree/release/2.2/docs/zh_CN/models/Others.md) | 动态图 | 支持 | 支持 | 支持 | -| DenseNet121 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/tree/release/2.2/docs/zh_CN/models/DPN_DenseNet.md) | 动态图 | 支持 | 支持 | 支持 | +| ResNet50 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/ResNet/ResNet50.yaml) | 动态图 | 支持 | 支持 | 支持 | +| ResNet101 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/ResNet/ResNet101.yaml) | 动态图 | 支持 | 支持 | 支持 | +| SE_ResNet50_vd | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/SENet/SE_ResNet50_vd.yaml) | 动态图 | 支持 | 支持 | 支持 | +| VGG16 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/VGG/VGG16.yaml) | 动态图 | 支持 | 支持 | 支持 | +| InceptionV4 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/Inception/InceptionV4.yaml) | 动态图 | 支持 | 支持 | 支持 | +| GoogleNet | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/Inception/GoogLeNet.yaml) | 动态图 | 支持 | 支持 | 支持 | +| MobileNetV3 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/MobileNetV3/MobileNetV3_large_x1_0.yaml) | 动态图 | 支持 | 支持 | 支持 | +| AlexNet | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/AlexNet/AlexNet.yaml) | 动态图 | 支持 | 支持 | 支持 | +| DenseNet121 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/DenseNet/DenseNet121.yaml) | 动态图 | 支持 | 支持 | 支持 | ## 目标检测 @@ -23,7 +23,7 @@ | 模型 | 领域 | 模型链接 | 编程范式 | 训练单机多卡支持 | 训练多机多卡支持 | 推理支持 | | ----------------- | -------- | ------------------------------------------------------------ | ------------- | -------------- | -------------- | -------------- | | YOLOv3 | 目标检测 | [模型链接](https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.2/configs/yolov3) | 动态图 | 支持 | 支持 | 支持 | -| PP-YOLO | 目标检测 | [模型链接](hhttps://github.com/PaddlePaddle/PaddleDetection/tree/release/2.2/configs/ppyolo) | 动态图 | 支持 | 支持 | 支持 | +| PP-YOLO | 目标检测 | [模型链接](https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.2/configs/ppyolo) | 动态图 | 支持 | 支持 | 支持 | | SSD | 目标检测 | [模型链接](https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.2/configs/ssd) | 动态图 | 支持 | 支持 | 支持 | | RetinaNet | 目标检测 | [模型链接](https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.2/static/configs/retinanet_r50_fpn_1x.yml) | 静态图 | 支持 | 支持 | 支持 | | Faster R-CNN | 目标检测 | [模型链接](https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.2/configs/faster_rcnn) | 动态图 | 支持 | 支持 | 支持 | @@ -125,7 +125,7 @@ | 领域 | 套件名称 | 分支/版本 | | ----------- | --------------- | ---------------- | -| 图像分类 | PaddleClas | release/2.2 | +| 图像分类 | PaddleClas | release/2.3 | | 目标检测 | PaddleDetection | release/2.2 | | 图像分割 | PaddleSeg | release/v2.0 | | 自然语言处理 | PaddleNLP | develop | @@ -133,4 +133,4 @@ | 推荐系统 | PaddleRec | release/2.1.0 | | 视频分类 | PaddleVideo | develop | | 语音合成 | Parakeet | develop | -| 生成对抗网络 | PaddleGAN | develop | +| 生成对抗网络 | PaddleGAN | develop | diff --git a/docs/guides/09_hardware_support/rocm_docs/train_example_cn.md b/docs/guides/09_hardware_support/rocm_docs/train_example_cn.md index 1d5dbab7be1..0c93bfe50a2 100644 --- a/docs/guides/09_hardware_support/rocm_docs/train_example_cn.md +++ b/docs/guides/09_hardware_support/rocm_docs/train_example_cn.md @@ -18,7 +18,7 @@ git clone https://github.com/PaddlePaddle/PaddleClas.git export HIP_VISIBLE_DEVICES=0,1,2,3 cd PaddleClas/ -python -m paddle.distributed.launch --gpus="0,1,2,3" tools/train.py -c ./configs/ResNet/ResNet50.yaml +python -m paddle.distributed.launch --gpus="0,1,2,3" tools/train.py -c ./ppcls/configs/ImageNet/ResNet/ResNet50.yaml ``` **第三步**:获取4卡训练得到的 Best Top1 Accuracy 结果如下 From 27bb896c710ea00b461a5f565a11341eeabfa62c Mon Sep 17 00:00:00 2001 From: qili93 Date: Mon, 18 Oct 2021 02:52:27 +0000 Subject: [PATCH 2/4] address review comments, test=develop --- docs/guides/09_hardware_support/npu_docs/index_cn.rst | 2 +- docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/guides/09_hardware_support/npu_docs/index_cn.rst b/docs/guides/09_hardware_support/npu_docs/index_cn.rst index 8f80b242f0f..840d3e04b91 100644 --- a/docs/guides/09_hardware_support/npu_docs/index_cn.rst +++ b/docs/guides/09_hardware_support/npu_docs/index_cn.rst @@ -4,7 +4,7 @@ 昇腾NPU芯片运行飞桨 #################### -华为昇腾910(Ascend 910)是一款具有超高算力的AI处理器是。Paddle NPU 版当前可以支持在华为鲲鹏CPU与昇腾NPU上进行模型训练与预测。 +华为昇腾910(Ascend 910)是一款具有超高算力的AI处理器。Paddle NPU 版当前可以支持在华为鲲鹏CPU与昇腾NPU上进行模型训练与推理。 参考以下内容可快速了解和体验在昇腾芯片上运行飞桨: diff --git a/docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md b/docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md index 26e56dfad84..8bb3e33bcb9 100644 --- a/docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md +++ b/docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md @@ -1,6 +1,6 @@ # 飞桨框架昇腾NPU版安装说明 -飞桨框架NPU版支持基于华为鲲鹏CPU与昇腾NPU的Python的训练和原生预测,当前支持的CANN社区版5.0.2.alpha005 Paddle版本为develop。 +飞桨框架NPU版支持基于华为鲲鹏CPU与昇腾NPU的Python的训练和原生推理,当前支持的CANN社区版5.0.2.alpha005 Paddle版本为develop。 ## 安装方式:通过源码编译安装 From 838d70efc0c8db8a41bab34d9f3c10f50fb4d6d3 Mon Sep 17 00:00:00 2001 From: qili93 Date: Tue, 19 Oct 2021 05:40:52 +0000 Subject: [PATCH 3/4] remove npu support models, test=develop --- .../09_hardware_support/npu_docs/index_cn.rst | 2 -- .../npu_docs/paddle_models_cn.md | 32 ------------------- 2 files changed, 34 deletions(-) delete mode 100644 docs/guides/09_hardware_support/npu_docs/paddle_models_cn.md diff --git a/docs/guides/09_hardware_support/npu_docs/index_cn.rst b/docs/guides/09_hardware_support/npu_docs/index_cn.rst index 840d3e04b91..4cc0963b2ed 100644 --- a/docs/guides/09_hardware_support/npu_docs/index_cn.rst +++ b/docs/guides/09_hardware_support/npu_docs/index_cn.rst @@ -8,13 +8,11 @@ 参考以下内容可快速了解和体验在昇腾芯片上运行飞桨: -- `飞桨框架昇腾NPU版支持模型 <./paddle_models_cn.html>`_ : 飞桨框架昇腾NPU版支持模型 - `飞桨框架昇腾NPU版安装说明 <./paddle_install_cn.html>`_ : 飞桨框架昇腾NPU版安装说明 - `飞桨框架昇腾NPU版训练示例 <./train_example_cn.html>`_ : 飞桨框架昇腾NPU版训练示例 .. toctree:: :hidden: - paddle_models_cn.md paddle_install_cn.md train_example_cn.md diff --git a/docs/guides/09_hardware_support/npu_docs/paddle_models_cn.md b/docs/guides/09_hardware_support/npu_docs/paddle_models_cn.md deleted file mode 100644 index 13498a50b03..00000000000 --- a/docs/guides/09_hardware_support/npu_docs/paddle_models_cn.md +++ /dev/null @@ -1,32 +0,0 @@ -# 飞桨框架昇腾NPU版支持模型 - -目前Paddle昇腾NPU版基于华为鲲鹏CPU与昇腾NPU支持以下模型的单机单卡/单机多卡的训练。 - -| 模型 | 领域 | 模型链接 | 编程范式 | 单卡训练支持 | -| ----------------- | -------- | -------------------------------------------------------- | ------------- | -------------- | -| ResNet50 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/ResNet/ResNet50.yaml) | 动态图 | 支持 | -| ResNet18 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/ResNet/ResNet18.yaml) | 动态图 | 支持 | -| VGG16 | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/VGG/VGG16.yaml) | 动态图 | 支持 | -| AlexNet | 图像分类 | [模型链接](https://github.com/PaddlePaddle/PaddleClas/blob/release/2.3/ppcls/configs/ImageNet/AlexNet/AlexNet.yaml) | 动态图 | 支持 | -| YOLOv3 | 目标检测 | [模型链接](https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.2/configs/yolov3/yolov3_darknet53_270e_voc.yml) | 动态图 | 支持 | -| BERT | NLP | [模型链接](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/language_model/bert) | 动态图 | 支持 | -| XLNet | NLP | [模型链接](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/language_model/xlnet) | 动态图 | 支持 | -| DeepFM | 推荐系统 | [模型链接](https://github.com/PaddlePaddle/PaddleRec/tree/release/2.1.0/models/rank/deepfm) | 动态图 | 支持 | -| Wide&Deep | 推荐系统 | [模型链接](https://github.com/PaddlePaddle/PaddleRec/tree/release/2.1.0/models/rank/wide_deep) | 动态图 | 支持 | -| NCF | 推荐系统 | [模型链接](https://github.com/PaddlePaddle/PaddleRec/tree/release/2.1.0/models/recall/ncf) | 动态图 | 支持 | -| DQN | 强化学习 | [模型链接](https://github.com/PaddlePaddle/PARL/tree/develop/examples/DQN) | 动态图 | 支持 | - -## 模型套件 - -模型放置在飞桨模型套件中,各领域套件是 github.com/PaddlePaddle 下的独立repo,git clone下载即可获取所需的模型文件: - -| 领域 | 套件名称 | 分支/版本 | -| ----------- | --------------- | ---------------- | -| 图像分类 | PaddleClas | release/2.3 | -| 目标检测 | PaddleDetection | release/2.2 | -| 自然语言处理 | PaddleNLP | develop | -| 推荐系统 | PaddleRec | release/2.1.0 | -| 强化学习 | PARL | develop | - - -后续版本将持续增加昇腾NPU在更多模型任务上的验证。 From abfc183cfbae019af27a86affc646c22a1e6c1ea Mon Sep 17 00:00:00 2001 From: qili93 Date: Tue, 19 Oct 2021 05:53:35 +0000 Subject: [PATCH 4/4] update doc, test=develop --- .../npu_docs/paddle_install_cn.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md b/docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md index 8bb3e33bcb9..fd2dfc085e9 100644 --- a/docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md +++ b/docs/guides/09_hardware_support/npu_docs/paddle_install_cn.md @@ -1,10 +1,21 @@ # 飞桨框架昇腾NPU版安装说明 -飞桨框架NPU版支持基于华为鲲鹏CPU与昇腾NPU的Python的训练和原生推理,当前支持的CANN社区版5.0.2.alpha005 Paddle版本为develop。 +飞桨框架NPU版支持基于华为鲲鹏CPU与昇腾NPU的Python的训练和原生推理。 -## 安装方式:通过源码编译安装 +### 环境准备 + +当前Paddle昇腾910 NPU版支持的华为CANN社区版5.0.2.alpha005,请先根据华为昇腾910 NPU的要求,进行相关NPU运行环境的部署和配置,参考华为官方文档 [CANN社区版安装指南](https://support.huaweicloud.com/instg-cli-cann502-alpha005/atlasdeploy_03_0002.html)。 + +Paddle 昇腾910 NPU版目前仅支持源码编译安装,其中编译与运行相关的环境要求如下: -**预先要求**:请先根据华为昇腾910 NPU的要求,进行相关NPU运行环境的部署和配置,参考华为官方文档 [CANN社区版安装指南](https://support.huaweicloud.com/instg-cli-cann502-alpha005/atlasdeploy_03_0002.html)。 +- **CPU处理器:** 鲲鹏920 +- **操作系统:** Ubuntu 18.04 / CentOS 7.6 / KylinV10SP1 / EulerOS 2.8 +- **CANN社区版:** 5.0.2.alpha005 +- **Python版本:** 3.7 +- **Cmake版本:** 3.15+ +- **GCC/G++版本:** 8.2+ + +## 安装方式:通过源码编译安装 **第一步**:准备 CANN 社区版 5.0.2.alpha005 运行环境 (推荐使用Paddle镜像)