开发者
资源
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

源码编译构建

获取PaddlePaddle源码,配置CMake,编译并检查wheel。

  1. 获取PaddlePaddle源码。
    1
    2
    3
    4
    git clone --branch v3.3.1 --depth 1 https://github.com/PaddlePaddle/Paddle.git 
    cd Paddle 
    git submodule sync --recursive 
    git submodule update --init --recursive
    
  2. 创建构建目录并配置CMake。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    mkdir -p build-cp311-cuda13
    cd build-cp311-cuda13 
    ulimit -n 4096  
    cmake .. \
      -GNinja \
      -DCMAKE_BUILD_TYPE=Release \
      -DPY_VERSION=3.11 \
      -DPYTHON_EXECUTABLE="$(command -v python3)" \
      -DWITH_GPU=ON \
      -DWITH_ARM=ON \
      -DWITH_TESTING=OFF \
      -DWITH_DISTRIBUTE=OFF \
      -DWITH_NCCL=OFF \
      -DWITH_OPENVINO=OFF \
      -DWITH_CUDNN=ON \
      -DWITH_CUDNN_FRONTEND=OFF \
      -DWITH_TP_CACHE=ON \
      -DTHIRD_PARTY_CACHE_PATH="$(pwd)/third_party_cache" \
      -DCUDA_ARCH_NAME=Ampere \
      -DCMAKE_CUDA_FLAGS="-DEIGEN_DONT_VECTORIZE -UPADDLE_WITH_SLEEF"
    
    表1 关键参数说明

    参数

    说明

    -DPY_VERSION=3.11

    生成Python 3.11 ABI wheel。

    -DWITH_GPU=ON

    构建GPU版本PaddlePaddle。

    -DWITH_ARM=ON

    启用ARM架构进行构建。

    -DWITH_TESTING=OFF

    不构建测试目标,降低构建时间和依赖规模。

    -DWITH_DISTRIBUTE=OFF

    不启用分布式训练能力。

    -DWITH_NCCL=OFF

    不启用NCCL,多卡通信不纳入最小验证路径。

    -DWITH_OPENVINO=OFF

    不构建OpenVINO后端。

    -DCUDA_ARCH_NAME=Ampere

    面向A100/Ampere架构生成CUDA代码。

    -DCMAKE_CUDA_FLAGS=...

    作用于CUDA编译单元,用于规避AArch64下NVCC解析ARM NEON头文件问题。

  3. 执行编译。
    1
    2
    3
    export MAX_JOBS=8 
    export CMAKE_BUILD_PARALLEL_LEVEL=8 
    ninja -j8
    
  4. 构建完成后检查wheel。
    1
    ls -lh python/dist/*.whl
    

    构建产物示例如下:

    1
    paddlepaddle_gpu-3.3.0.dev20260319-cp311-cp311-linux_aarch64.whl