飞腾/鲲鹏下从源码编译

环境准备

  • 处理器:FT2000+/Kunpeng 920 2426SK

  • 操作系统:麒麟 v10/UOS

  • Python 版本 3.7/3.8/3.9/3.10 (64 bit)

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

飞腾 FT2000+和鲲鹏 920 处理器均为 ARMV8 架构,在该架构上编译 Paddle 的方式一致,本文以 FT2000+为例,介绍 Paddle 的源码编译。

安装步骤

目前在 FT2000+处理器加国产化操作系统(麒麟 UOS)上安装 Paddle,只支持源码编译的方式,接下来详细介绍各个步骤。

源码编译

  1. Paddle 依赖 cmake 进行编译构建,需要 cmake 版本>=3.15,如果操作系统提供的源包括了合适版本的 cmake,直接安装即可,否则需要源码安装

    wget https://github.com/Kitware/CMake/releases/download/v3.16.8/cmake-3.16.8.tar.gz
    
    tar -xzf cmake-3.16.8.tar.gz && cd cmake-3.16.8
    
    ./bootstrap && make && sudo make install
    
  2. Paddle 内部使用 patchelf 来修改动态库的 rpath,如果操作系统提供的源包括了 patchelf,直接安装即可,否则需要源码安装,请参考patchelf 官方文档,后续会考虑在 ARM 上移出该依赖。

    ./bootstrap.sh
    
    ./configure
    
    make
    
    make check
    
    sudo make install
    
  3. 根据requirments.txt安装 Python 依赖库,在飞腾加国产化操作系统环境中,pip 安装可能失败或不能正常工作,主要依赖通过源或源码安装的方式安装依赖库,建议使用系统提供源的方式安装依赖库。

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

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

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

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

    ulimit -n 4096
    
  8. 执行 cmake:

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

    For Python3:

    cmake .. -DPY_VERSION=3 -DPYTHON_EXECUTABLE=`which python3` -DWITH_ARM=ON -DWITH_TESTING=OFF -DCMAKE_BUILD_TYPE=Release -DON_INFER=ON -DWITH_XBYAK=OFF
    
  9. 使用以下命令来编译,注意,因为处理器为 ARM 架构,如果不加TARGET=ARMV8则会在编译的时候报错。

    make TARGET=ARMV8 -j$(nproc)
    
  10. 编译成功后进入Paddle/build/python/dist目录下找到生成的