源码编译构建
获取PaddlePaddle源码,配置CMake,编译并检查wheel。
- 获取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
- 创建构建目录并配置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头文件问题。
- 执行编译。
1 2 3
export MAX_JOBS=8 export CMAKE_BUILD_PARALLEL_LEVEL=8 ninja -j8
- 构建完成后检查wheel。
1ls -lh python/dist/*.whl
构建产物示例如下:
1paddlepaddle_gpu-3.3.0.dev20260319-cp311-cp311-linux_aarch64.whl
父主题: 开发指南