上云无忧 > 文档中心 > 百度智能云飞桨 - 申威下从源码编译
飞桨PaddlePaddle开源深度学习平台
百度智能云飞桨 - 申威下从源码编译

文档简介:
环境准备: 处理器:SW6A。 操作系统:普华, iSoft Linux 5。 Python 版本 2.7.15+/3.5.1+/3.6/3.7/3.8 (64 bit)。 pip 或 pip3 版本 9.0.1+ (64 bit)。 申威机器为 SW 架构,目前生态支持的软件比较有限,本文以比较 trick 的方式在申威机器上源码编译 Paddle,未来会随着申威软件的完善不断更新。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

申威下从源码编译

环境准备

  • 处理器:SW6A

  • 操作系统:普华, iSoft Linux 5

  • Python 版本 2.7.15+/3.5.1+/3.6/3.7/3.8 (64 bit)

  • pip 或 pip3 版本 9.0.1+ (64 bit)

申威机器为 SW 架构,目前生态支持的软件比较有限,本文以比较 trick 的方式在申威机器上源码编译 Paddle,未来会随着申威软件的完善不断更新。

安装步骤

本文在申威处理器下安装 Paddle,接下来详细介绍各个步骤。

源码编译

  1. 将 Paddle 的源代码克隆到当下目录下的 Paddle 文件夹中,并进入 Paddle 目录

    git clone https://github.com/PaddlePaddle/Paddle.git 
    cd Paddle 
  2. 切换到develop分支下进行编译:

    git checkout develop 
  3. Paddle 依赖 cmake 进行编译构建,需要 cmake 版本>=3.15,检查操作系统源提供 cmake 的版本,使用源的方式直接安装 cmake, apt install cmake, 检查 cmake 版本, cmake --version, 如果 cmake >= 3.15 则不需要额外的操作,否则请修改 Paddle 主目录的CMakeLists.txtcmake_minimum_required(VERSION 3.15) 修改为 cmake_minimum_required(VERSION 3.0).

  4. 由于申威暂不支持 openblas,所以在此使用 blas + cblas 的方式,在此需要源码编译 blas 和 cblas。

    pushd /opt
    wget http://www.netlib.org/blas/blas-3.8.0.tgz wget http://www.netlib.org/blas/blast-forum/cblas.tgz tar xzf blas-3.8.0.tgz
    tar xzf cblas.tgz
    pushd BLAS-3.8.0 make
    popd
    pushd CBLAS
    # 修改 Makefile.in 中 BLLIB 为 BLAS-3.8.0 的编译产物 blas_LINUX.a
    make
    pushd lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD
    ln -s cblas_LINUX.a libcblas.a
    cp ../../BLAS-3.8.0/blas_LINUX.a .
    ln -s blas_LINUX.a libblas.a
    popd
    popd
    popd
    
  5. 根据requirments.txt安装 Python 依赖库,注意在申威系统中一般无法直接使用 pip 或源码编译安装 python 依赖包,建议使用源的方式安装,如果遇到部分依赖包无法安装的情况,请联系操作系统服务商提供支持。此外也可以通过 pip 安装的时候加–no-deps 的方式来避免依赖包的安装,但该种方式可能导致包由于缺少依赖不可用。

  6. 请创建并进入一个叫 build 的目录下:

    mkdir build && cd build 
  7. 链接过程中打开文件数较多,可能超过系统默认限制导致编译出错,设置进程允许打开的最大文件数:

    ulimit -n 4096 
  8. 执行 cmake:

    具体编译选项含义请参见编译选项表

    CBLAS_ROOT=/opt/CBLAS 

    For Python2:

    cmake .. -DPY_VERSION=2 -DPYTHON_EXECUTABLE=`which python2` -DWITH_MKL=OFF -DWITH_TESTING=OFF

    For Python3:

    cmake .. -DPY_VERSION=3 -DPYTHON_EXECUTABLE=`which python3` -DWITH_MKL=OFF -DWITH_TESTING=OFF
  9.  -DCMAKE_BUILD_TYPE=Release -DON_INFER=ON -DWITH_PYTHON=ON -DREFERENCE_CBLAS_ROOT=${CBLAS_ROOT}
  10.  -DWITH_CRYPTO=OFF -DWITH_XBYAK=OFF -DWITH_SW=ON -DCMAKE_CXX_FLAGS="-Wno-error -w" 
  11.  -DCMAKE_BUILD_TYPE=Release -DON_INFER=ON -DWITH_PYTHON=ON -DREFERENCE_CBLAS_ROOT=${CBLAS_ROOT}
  12.  -DWITH_CRYPTO=OFF -DWITH_XBYAK=OFF -DWITH_SW=ON -DCMAKE_CXX_FLAGS="-Wno-error -w" 
  13. 编译。

    make -j$(nproc)
    
  14. 编译成功后进入Paddle/build/python/dist目录下找到生成的.whl包。

  15. 在当前机器或目标机器安装编译好的.whl包:

    python2 -m pip install -U(whl 包的名字)`或`python3 -m pip install -U(whl 包的名字)
    

恭喜,至此您已完成 PaddlePaddle 在 FT 环境下的编译安装。

验证安装

安装完成后您可以使用 python 或 python3 进入 python 解释器,输入import paddle ,再输入 paddle.utils.run_check()

如果出现PaddlePaddle is installed successfully!,说明您已成功安装。

在 mobilenetv1 和 resnet50 模型上测试

wget -O profile.tar https://paddle-cetc15.bj.bcebos.com/profile.tar?authorization=bce-auth-v1
/4409a3f3dd76482ab77af112631f01e4/2020-10-09T10:11:53Z/-1/host/786789f3445f498c6a1fd
4d9cd3897ac7233700df0c6ae2fd78079eba89bf3fb 

tar xf profile.tar && cd profile 

python resnet.py --model_file ResNet50_inference/model --params_file ResNet50_inference/params 
# 正确输出应为:[0.0002414  0.00022418 0.00053661 0.00028639 0.00072682 0.000213 # 
 0.00638718 0.00128127 0.00013535 0.0007676 ] 

python mobilenetv1.py --model_file mobilenetv1/model --params_file mobilenetv1/params
 # 正确输出应为:[0.00123949 0.00100392 0.00109539 0.00112206 0.00101901 0.00088412 # 
 0.00121536 0.00107679 0.00106071 0.00099605] 

python ernie.py --model_dir ernieL3H128_model/ # 正确输出应为:[0.49879393 0.5012061 ] 

如何卸载

请使用以下命令卸载 PaddlePaddle:

python3 -m pip uninstall paddlepaddle 

python3 -m pip uninstall paddlepaddle 

备注

已在申威下测试过 resnet50, mobilenetv1, ernie, ELMo 等模型,基本保证了预测使用算子的正确性,但可能会遇到浮点异常的问题,该问题我们后续会和申威一起解决,如果您在使用过程中遇到计算结果错误,编译失败等问题,请到issue中留言,我们会及时解决。

预测文档见doc,使用示例见Paddle-Inference-Demo

相似文档
  • 环境准备: 处理器:ZHAOXIN KaiSheng KH-37800D。 操作系统:centos7。 Python 版本 2.7.15+/3.5.1+/3.6/3.7/3.8 (64 bit)。 pip 或 pip3 版本 9.0.1+ (64 bit)。 兆芯为 x86 架构,编译方法与Linux 下从源码编译 cpu 版一致。 安装步骤: 本文在 ZHAOXIN 处理器下安装 Paddle,接下来详细介绍各个步骤。
  • 百度昆仑 AI 计算处理器(Baidu KUNLUN AI Computing Processor)是百度集十年 AI 产业技术实践于 2019 年推出的全功能 AI 芯片。基于自主研发的先进 XPU 架构,为云端和边缘端的人工智能业务而设计。 百度昆仑与飞桨及其他国产软硬件强强组合,打造一个全面领先的国产化 AI 技术生态,部署和应用于诸多 “人工智能+“的行业领域,包括智能云和高性能计算,智慧制造、智慧城市和安防等。更多昆仑 XPU 芯片详情及技术指标请 点击这里 。 参考以下内容可快速了解和体验昆仑 XPU 芯片上运行飞桨:
  • DCU(Deep Computing Unit 深度计算器)是 海光(HYGON)推出的一款专门用户 AI 人工智能和深度学习的加速卡。Paddle ROCm 版当前可以支持在海光 CPU 与 DCU 上进行模型训练与推理。 参考以下内容可快速了解和体验在海光芯片上运行飞桨:
  • 整体介绍: NGC 飞桨容器针对 NVIDIA GPU 加速进行了优化,并包含一组经过验证的库,可启用和优化 NVIDIA GPU 性能。此容器还可能包含对 PaddlePaddle 源代码的修改,以最大限度地提高性能和兼容性。此容器还包含用于加速 ETL (DALI, RAPIDS),、训练(cuDNN, NCCL)和推理(TensorRT)工作负载的软件。
  • 飞桨支持的 Nvidia GPU 架构及安装方式、编译依赖表、编译选项表、安装包列表、多版本 whl 包列表-Release、多版本 whl 包列表-develop、使用 Docker 启动 PaddlePaddle Book 教程、使用 Docker 执行 GPU 训练。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部