飞桨框架ROCm版安装说明

飞桨框架ROCm版支持基于海光CPU和DCU的Python的训练和原生预测,当前支持的ROCm版本为4.0.1, Paddle版本为2.1.0,提供两种安装方式:

  • 通过预编译的wheel包安装

  • 通过源代码编译安装

安装方式一:通过wheel包安装

注意:当前仅提供基于 CentOS 7.8 & ROCm 4.0.1 的 docker 镜像,与 Paddle 2.1.0 & Python 3.7 的 wheel 安装包。

第一步:准备 ROCm 4.0.1 运行环境 (推荐使用Paddle镜像)

可以直接从Paddle的官方镜像库拉取预先装有 ROCm 4.0.1 的 docker 镜像,或者根据 ROCm安装文档 来准备相应的运行环境。

  1. # 拉取镜像
  2. docker pull paddlepaddle/paddle:latest-dev-rocm4.0-miopen2.11
  3. # 启动容器,注意这里的参数,例如shm-size, device等都需要配置
  4. docker run -it --name paddle-rocm-dev --shm-size=128G
  5. --device=/dev/kfd --device=/dev/dri --group-add video
  6. --cap-add=SYS_PTRACE --security-opt seccomp=unconfined
  7. paddlepaddle/paddle:latest-dev-rocm4.0-miopen2.11 /bin/bash
  8. # 检查容器是否可以正确识别海光DCU设备
  9. rocm-smi
  10. # 预期得到以下结果:
  11. ======================= ROCm System Management Interface =======================
  12. ================================= Concise Info =================================
  13. GPU Temp AvgPwr SCLK MCLK Fan Perf PwrCap VRAM% GPU%
  14. 0 50.0c 23.0W 1319Mhz 800Mhz 0.0% auto 300.0W 0% 0%
  15. 1 48.0c 25.0W 1319Mhz 800Mhz 0.0% auto 300.0W 0% 0%
  16. 2 48.0c 24.0W 1319Mhz 800Mhz 0.0% auto 300.0W 0% 0%
  17. 3 49.0c 27.0W 1319Mhz 800Mhz 0.0% auto 300.0W 0% 0%
  18. ================================================================================
  19. ============================= End of ROCm SMI Log ==============================

第二步:下载 Python3.7 wheel 安装包

  1. pip install paddlepaddle-rocm==2.1.0.rocm401.miopen211 -f https://paddlepaddle.org.cn/whl/mkl/stable.html

第三步:验证安装包

安装完成之后,运行如下命令。如果出现 PaddlePaddle is installed successfully!,说明已经安装成功。

  1. python -c "import paddle; paddle.utils.run_check()"

安装方式二:通过源码编译安装

注意:当前 Paddle 只支持 CentOS 7.8 & ROCm 4.0.1 编译环境,且根据 ROCm 4.0.1 的需求,支持的编译器为 devtoolset-7。

第一步:准备 ROCm 4.0.1 编译环境 (推荐使用Paddle镜像)

可以直接从Paddle的官方镜像库拉取预先装有 ROCm 4.0.1 的 docker 镜像,或者根据 ROCm安装文档 来准备相应的运行环境。

  1. # 拉取镜像
  2. docker pull paddlepaddle/paddle:latest-dev-rocm4.0-miopen2.11
  3. # 启动容器,注意这里的参数,例如shm-size, device等都需要配置
  4. docker run -it --name paddle-rocm-dev --shm-size=128G
  5. --device=/dev/kfd --device=/dev/dri --group-add video
  6. --cap-add=SYS_PTRACE --security-opt seccomp=unconfined
  7. paddlepaddle/paddle:latest-dev-rocm4.0-miopen2.11 /bin/bash
  8. # 检查容器是否可以正确识别海光DCU设备
  9. rocm-smi
  10. # 预期得到以下结果:
  11. ======================= ROCm System Management Interface =======================
  12. ================================= Concise Info =================================
  13. GPU Temp AvgPwr SCLK MCLK Fan Perf PwrCap VRAM% GPU%
  14. 0 50.0c 23.0W 1319Mhz 800Mhz 0.0% auto 300.0W 0% 0%
  15. 1 48.0c 25.0W 1319Mhz 800Mhz 0.0% auto 300.0W 0% 0%
  16. 2 48.0c 24.0W 1319Mhz 800Mhz 0.0% auto 300.0W 0% 0%
  17. 3 49.0c 27.0W 1319Mhz 800Mhz 0.0% auto 300.0W 0% 0%
  18. ================================================================================
  19. ============================= End of ROCm SMI Log ==============================

请在编译之前,检查如下的环境变量是否正确,如果没有则需要安装相应的依赖库,并导出相应的环境变量。以Paddle官方的镜像举例,环境变量如下:

  1. # PATH 与 LD_LIBRARY_PATH 中存在 devtoolset-7,如果没有运行以下命令
  2. source /opt/rh/devtoolset-7/enable
  3. # PATH 中存在 cmake 3.16.0
  4. export PATH=/opt/cmake-3.16/bin:${PATH}
  5. # PATH 与 LD_LIBRARY_PATH 中存在 rocm 4.0.1
  6. export PATH=/opt/rocm/opencl/bin:/opt/rocm/bin:${PATH}
  7. export LD_LIBRARY_PATH=/opt/rocm/lib:${LD_LIBRARY_PATH}
  8. # PATH 中存在 Python 3.7
  9. # 注意:镜像中的 python 3.7 通过 miniconda 安装,请通过 conda activate base 命令加载Python 3.7环境
  10. export PATH=/opt/conda/bin:${PATH}

第二步:下载Paddle源码并编译,CMAKE编译选项含义请参见编译选项表

  1. # 下载源码,切换到 release/2.1 分支
  2. git clone -b release/2.1 https://github.com/PaddlePaddle/Paddle.git
  3. cd Paddle
  4. # 创建编译目录
  5. mkdir build && cd build
  6. # 执行cmake
  7. cmake .. -DPY_VERSION=3.7 -DWITH_ROCM=ON -DWITH_TESTING=ON -DWITH_DISTRIBUTE=ON
  8. -DWITH_MKL=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
  9. # 使用以下命令来编译
  10. make -j$(nproc)

第三步:安装与验证编译生成的wheel包

编译完成之后进入Paddle/build/python/dist目录即可找到编译生成的.whl安装包,安装与验证命令如下:

  1. # 安装命令
  2. python -m pip install -U paddlepaddle_rocm-0.0.0-cp37-cp37m-linux_x86_64.whl
  3. # 验证命令
  4. python -c "import paddle; paddle.utils.run_check()"

如何卸载

请使用以下命令卸载Paddle:

  1. pip uninstall paddlepaddle-rocm