百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux下Blackwell架构显卡(RTX5070/5090)编译PaddlePaddle指南

nanshan 2025-07-21 16:35 5 浏览 0 评论

Blackwell显卡架构 如RTX5070\5090等显卡

当前 Paddle 预编译版本中包含的 GPU 架构(即 SM 架构)是有限的,比如常见的 SM75(T4)、SM86(A10)、SM89(4090)等。Blackwell架构的显卡SM不同(SM100或者SM120),例如RTX5070(SM120)、RTX5090(SM120),具体可以参考网址:

Matching CUDA arch and CUDA gencode for various NVIDIA architectures:https://arnon.dk/matching-sm-architectures-arch-and-gencode-for-various-nvidia-cards/

目前的安装过程适合linux系统

  • 安装依赖
    • 确保已经安装gcc以及g++,验证命令行如下:
gcc --version g++ --version
    • 安装zlib
sudo apt install zliblg-dev
    • 安装cuda、cudnn
      • 安装cuda前确保显卡驱动已安装。
      • 安装cuda 12.9, 参考官网https://developer.nvidia.com/cuda-downloads, 可以自动生成所需指令,下面是wsl ubuntu24.04的对应指令:
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.9.1/local_installers/cuda-repo-wsl-ubuntu-12-9-local_12.9.1-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-9-local_12.9.1-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-9-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-9
      • 编辑~/.bashrc文件,在末尾添加如下行以配置CUDA的路径:
export PATH=/usr/local/cuda-<version>/bin${PATH:+:${PATH}} 
export LD_LIBRARY_PATH=/usr/local/cuda-<version>/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
      • 请将<version>替换为实际安装的CUDA版本号, 例如12.9等。
      • 更改生效:
source ~/.bashrc
      • 验证安装:可以通过如下指令查看 nvcc -v是否安装成功。
      • 安装cudnn,参考网址:https://developer.nvidia.com/cudnn,可以自动生成所需指令,下面是wsl ubuntu24.04的对应指令:
wget https://developer.download.nvidia.com/compute/cudnn/9.11.0/local_installers/cudnn-local-repo-ubuntu2404-9.11.0_1.0-1_amd64.deb 
sudo dpkg -i cudnn-local-repo-ubuntu2404-9.11.0_1.0-1_amd64.deb 
sudo cp /var/cudnn-local-repo-ubuntu2404-9.11.0/cudnn-*-keyring.gpg /usr/share/keyrings/ 
sudo apt-get update 
sudo apt-get -y install cudnn
    • 按装nccl
    • NCCL(NVIDIA Collective Communications Library)是NVIDIA提供的一个库,用于优化多GPU和多节点间的通信效率。
      • 假设系统是ubuntu24.04,导入NVIDIA包公钥:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/3bf863cc.pub sudo apt-key add 3bf863cc.pub
      • 添加NCCL存储库到源列表
sudo bash -c 'echo "deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2404/x86_64 /" > /etc/apt/sources.list.d/nvidia-ml.list'
      • 更新软件包并安装NCCL
sudo apt-get update sudo apt-get install libnccl2 libnccl-dev
    • 安装git
sudo apt install git
    • 安装cinn
    • CINN是一个高性能的深度学习编译器,支持多种硬件后端。官方网址:https://github.com/PaddlePaddle/CINN
    • 使用如下命令下载源码:
git clone --depth 1 https://github.com/PaddlePaddle/CINN.git
    • 安装install.md的文件说明下进行编译安装,详细参考:https://github.com/PaddlePaddle/CINN/blob/develop/docs/source/install.md
    • 安装cmake 需要3.27及以上,不多之前试过cmake4.1编译出问题了,所以建议在3.27在4.0(不含)之间
      • 使用cmake --verison查看版本信息
      • 如果cmake版本不满足可以使用命令卸载:
sudo apt remove cmake
      • 添加 Kitware 官方 APT 仓库
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | sudo apt-key add - 
sudo apt-add-repository "deb https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main" 
sudo apt update
      • 安装cmake: "sudo apt install cmake" 或者指定cmake版本:"sudo apt install cmake=3.27.7-1ubuntu1"
    • 安装openssl
    • OpenSSL 是一个开源的加密库和工具套件,广泛用于实现安全通信、数据加密及数字证书管理。
sudo apt install libssl-dev
    • 安装patchelf
    • PatchELF 是一个用于修改 ELF(Executable and Linkable Format)可执行文件和共享库的实用工具,主要用于调整动态链接属性和运行时行为。它在 Linux 和类 Unix 系统中广泛用于解决依赖库路径冲突、版本兼容性问题以及优化软件部署流程。
    • 安装命令:
sudo apt install patchelf
    • 安装protoc
    • 通过如下命令行安装:
sudo apt update sudo apt install -y protobuf-compiler
    • 安装Miniconda3或者Anaconda3 (如果已安装请忽略
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh 
source ~/.bashrc
    • 创建虚拟python环境需要3.13及以上
conda create -n paddle python=3.13 # 激活环境 conda activate paddle
    • 下载paddle源码
git clone https://github.com/PaddlePaddle/Paddle.git
    • 安装python依赖
    • 转到paddle源码目录
pip install ./python/requirements.txt
    • 使用wsl编译时需要注意memory分配情况,可以使用free -h查看,如果比下面的配置高就不用修改。此项设置主要解决编译时出现的out of memory问题
### out of memeory issue
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
## 在windows系统中Increase WSL2 Resources
###在windows平台编辑`.wslconfig`文件路径为 %USERPROFILE%.wslconfig,如果没有则创建:
[ws12]
memory=8GB
processors=6
swap=15GB
### 重启 wsl
wsl --shutdown
  • 开始编译paddle,命令如下:
# paddlepaddle编译 5070、5090
cmake .. -DCMAKE_BUILD_TYPE=Release \
  								-DWITH_GPU=ON -DWITH_SHARED_PHI=ON 
  								-DWITH_TENSORRT=OFF -DWITH_OPENVINO=OFF \
                  -DWITH_ROCM=OFF -DWITH_CINN=ON -DWITH_DISTRIBUTE=ON \
                  -DWITH_MKL=ON -DWITH_AVX=ON -DCUDA_ARCH_NAME=Manual \
                  -DWITH_PYTHON=ON -DWITH_TESTING=OFF -DWITH_COVERAGE=OFF \
                  -DWITH_INCREMENTAL_COVERAGE=OFF -DPY_VERSION=3.13 \
                  -DWITH_PSCORE=ON -DWITH_PSLIB=OFF -DWITH_GLOO=ON \
                  -DWITH_XPU=OFF -DWITH_IPU=OFF \
                  -DXPU_SDK_ROOT= -DWITH_XPU_BKCL=OFF -DWITH_XPU_XHPC=OFF \
                  -DWITH_XPU_XFT=OFF -DWITH_XPU_XRE5=OFF -DWITH_XPU_FFT=OFF \
                  -DWITH_ARM=OFF -DWITH_STRIP=ON -DON_INFER=ON \
                  -DWITH_HETERPS=ON -DCUDA_ARCH_BIN=120 \
                  -DWITH_RECORD_BUILDTIME=OFF -DWITH_UNITY_BUILD=OFF \
                  -DWITH_ONNXRUNTIME=OFF -DWITH_CUDNN_FRONTEND=OFF \
                  -DWITH_CPP_TEST=OFF -DFA_BUILD_WITH_CACHE=OFF

# j后面的数字可以根据自己机器的配置修改,越大编译的就越快
make -j2

编译会生成pyhton的安装包.whl, 然后使用pip安装这个包即可。

相关推荐

CentOS 7 搭建 Harbor2.4.1 Docker镜像仓库

上一篇文章我们使用了registry镜像来搭建Docker私有镜像仓库,但是使用体验不是很好,没有一个可管理的UI界面,管理很麻烦。本篇文章将介绍一个新的搭建Docker镜像仓库的工具叫做Har...

简单认识认识mqtt及mosquitto(mqtt报文解析)

某项目中使用了MQTT作为进程间的通信方式,之前没用过,这两篇笔记我们就来一起学习一下这种方式。MQTT的一些介绍以下介绍内容来自《[野火]《LwIP应用开发实战指南》MQTT协议全称是Messa...

全源码打造高性能 LNMP 架构: 实战教程(2025最新版)

适用场景:企业生产环境、自建Web服务、深度性能调优操作系统:CentOS7/8、RockyLinux、Debian、Ubuntu(本文以CentOSStream9为例)技术栈:N...

Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!

之前和大家分享过JDK17的多版本管理及详细安装过程,然后在项目升级完jdk17后又发现之前的注册和配置中心nacos又用不了,原因是之前的nacos1.3版本的,版本太老了,已经无法适配当前新的JD...

Ubuntu24.04.2 企业级MinIO存储系统部署指南

一、概要1.1MinIO架构解析MinIO是一款高性能的云原生对象存储系统,采用Golang开发并遵循ApacheLicensev2.0协议。其核心架构基于纠删码(ErasureCode)技...

从零打造自己的 国产鸿蒙(OpenHarmony)定制系统-完整可落地流程

适用版本:OpenHarmony4.0/5.0Standard目标人群:想在x86PC、RK3568开发板或自有硬件上裁剪、加品牌、预装应用并生成可刷机镜像的开发者/团队目录环境准...

一次暂未成功的dify安装经历(dify怎么安装)

前几天在阿里云买了一台机,这几天一直在尝试安装dify,到现在还没安装上我是按这个教程装的https://blog.csdn.net/2401_82469710/article/details/14...

ZLMediaKit教程(五)支持webrtc(webrtc lib)

ZLMediaKit系列文章(共六篇):ZLMediaKit流媒体(一)编译安装ZLMediaKit教程(二)主程序和配置文件解析ZLMediaKit教程(三)URL规则ZLMediaKit教程...

Linux程序安装与管理指南(linux程序安装命令大全)

在Linux系统中,安装和管理程序主要通过包管理器和手动编译安装两种主要方式实现。以下是详细的操作指南,涵盖常见发行版(如Ubuntu/Debian、CentOS/RHEL、Fedora等)的用法。一...

离线状态下安装 Nginx 各个模块?这篇攻略让你轻松搞定

你是不是也在为离线状态下安装Nginx各个模块而发愁?在互联网大厂后端开发工作中,我们常常会遇到一些特殊的网络环境,比如公司内部的离线服务器,或是处于隔离状态的测试环境。当需要在这些离线环境中安装...

Rust实践:Win10环境下的openssl交叉编译

Rust支持跨平台,可以指定生成目标平台,交叉编译也是支持的。当然,想要交叉编译成功,还需要指定平台的编译器(如:msvc、gcc等)。openssl是C语言开发的库,如果在Rust代码中用到open...

Linux下Blackwell架构显卡(RTX5070/5090)编译PaddlePaddle指南

Blackwell显卡架构如RTX5070\5090等显卡当前Paddle预编译版本中包含的GPU架构(即SM架构)是有限的,比如常见的SM75(T4)、SM86(A10)、SM89(...

突破操作系统界限,掌握Linux的必备指南

#头条创作挑战赛#简介Linux是一种开源的操作系统,它的核心思想是自由和开放。Linux以其稳定性、可靠性和安全性而闻名,被广泛用于服务器和嵌入式设备中。Linux创始人Linux安装在安装Linu...

Linux日常高频使用的100条命令,强烈建议收藏

查看系统信息如何查看系统版本:uname-alsb_release-acat/etc/os-release如何查看系统内核信息:uname-r如何查看系统CPU信息:lscpucat...

Linux文件系统结构全解析(linux文件结构详解)

对Linux新手而言,“一切皆文件”的设计哲学常让人既兴奋又困惑——打开终端输入ls/,看到的bin、etc、var等目录到底有什么用?如何快速定位关键文件?本文将从Linux文件系统的底层逻...

取消回复欢迎 发表评论: