CenterOs7.9下 Paddle环境安装及Cuda、Nvidia驱动、Cudnn、Tensort、Nccl、Conda安装全流程记录

1.先安装nvidia驱动

https://www.nvidia.cn/Download/index.aspx?lang=cn

run就./直接执行

rpm -ivh nvidia-driver-local-repo-rhel7-525.147.05-1.0-1.x86_64.rpm
yum clean all
yum install -y cuda-drivers

reboot后即可执行nvidia-smi

2.安装conda

Free Download

官网安装即可

3.Cuda安装

wget https://developer.download.nvidia.cn/compute/cuda/12.0.0/local_installers/cuda-repo-rhel7-12-0-local-12.0.0_525.60.13-1.x86_64.rpm

sudo rpm -i cuda-repo-rhel7-12-0-local-12.0.0_525.60.13-1.x86_64.rpm
sudo yum clean all
sudo yum -y install nvidia-driver-latest-dkms
sudo yum -y install cuda

4.Cudnn安装

https://zhuanlan.zhihu.com/p/681356308

wget https://developer.nvidia.com/downloads/compute/cudnn/secure/8.9.1/local_installers/12.x/cudnn-linux-x86_64-8.9.1.23_cuda12-archive.tar.xz/
ls
tar -xvf cudnn-linux-x86_64-8.9.1.23_cuda12-archive.tar.xz
cd cudnn-linux-x86_64-8.9.1.23_cuda12-archive
ls
sudo cp include/cudnn*.h /usr/local/cuda/include
sudo cp -P lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
vi ~/.bashrc
source ~/.bashrc
nvcc -V  有数据即成功

查看cudnn版本在这里(8.9.1)

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 8
#define CUDNN_MINOR 9
#define CUDNN_PATCHLEVEL 1

#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

5.tensorrt安装
https://docs.nvidia.cn/deeplearning/tensorrt/archives/tensorrt-713/install-guide/index.html

直接来到

4.3. Tar File Installation

  1. Download the TensorRT tar file that matches the Linux distribution you are using.
  2. wget https://developer.nvidia.cn/downloads/compute/machine-learning/tensorrt/secure/8.6.1/tars/TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz
    tar xzvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz
    ls TensorRT-8.6.1.6
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/TensorRT-8.6.1.6/lib
    cd TensorRT-8.6.1.6/python
    conda activate paddle
    pip3 install tensorrt
    cd ../
    cd uff
    pip install nvidia-pyindex
    pip install uff
    cd ../
    cd graphsurgeon
    pip install graphsurgeon
    验证是否完成
    执行rpm -qa | grep tensorrt

记得添加

添加环境变量
# 打开
sudo gedit ~/.bashrc

# TensorRT
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/nh666/BE/TensorRT/TensorRT-7.2.2.3/lib
export LIBRARY_PATH=/home/nh666/BE/TensorRT/TensorRT-7.2.2.3/lib::$LIBRARY_PATH

# 保存
source ~/.bashrc
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_45848817/article/details/130850276

6.NCCL安装

https://www.jianshu.com/p/f6287aebf127

照猫画虎,从http://developer.download.nvidia.com/compute/machine-learning/repos/rhel7/x86_64/下载三个rpm包

rpm -ivh libnccl-2.7.8-1+cuda11.0.x86_64.rpm
wget http://developer.download.nvidia.cn/compute/machine-learning/repos/rhel7/x86_64/libnccl-devel-2.7.8-1+cuda11.0.x86_64.rpm
rpm -ivh libnccl-devel-2.7.8-1+cuda11.0.x86_64.rpm
wget http://developer.download.nvidia.cn/compute/machine-learning/repos/rhel7/x86_64/libnccl-static-2.7.8-1+cuda11.0.x86_64.rpm
rpm -i libnccl-static-2.7.8-1+cuda11.0.x86_64.rpm
yum update -y
yum install -y libnccl-2.7.8-1+cuda11.0 libnccl-devel-2.7.8-1+cuda11.0 libnccl-static-2.7.8-1+cuda11.0

7.解决/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20‘ not found

https://blog.csdn.net/justlpf/article/details/130077200

8.gcc版本低的问题

https://blog.csdn.net/daizhengchun/article/details/126904228

wget http://ftp.gnu.org/gnu/gcc/gcc-13.2.0/gcc-13.2.0.tar.gz
tar -xzvf gcc-13.2.0.tar.gz

第三步:下载依赖项目

进入解压文件夹 cd gcc-11.2.0

创建编译生成目录 mkdir build

执行下载依赖 ./contrib/download_prerequisites

第四步:配置编译

进入build文件夹 cd ./build

配置 ../configure –enable-checking=release –enable-languages=c,c++ –disable-multilib

第五步:编译安装

编译 make -j2 (注:j2表示2个任务同时编译,理论情况下数字越大编译越快,当然也随本机硬件cpu而定)

安装 mke install
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/daizhengchun/article/details/126904228

 

 

问题1:sudo ln -s /usr/local/bin/gcc /usr/bin/gcc ln: 无法创建符号链接”/usr/bin/gcc”: 文件已存在
ChatGPT

看起来 /usr/bin/gcc 已经存在,并且创建符号链接的操作失败。这可能是因为在系统中已经存在了默认的 GCC 软链接或者 /usr/bin/gcc 已经被其他软件使用。

你可以通过以下几个步骤解决这个问题:

  1. 备份原有链接: 在创建新的符号链接之前,先备份原有的 /usr/bin/gcc
    bash
  • sudo mv /usr/bin/gcc /usr/bin/gcc_backup

    这会将原有的 /usr/bin/gcc 重命名为 /usr/bin/gcc_backup

  • 创建符号链接: 使用 ln 命令创建新的符号链接:
    bash
  • sudo ln -s /path/to/your/new/gcc /usr/bin/gcc

    替换 /path/to/your/new/gcc 为你编译的新版本 GCC 的完整路径。

  • 验证版本: 确认新版本的 gcc 是否被正确设置为默认版本:
    bash
  1. gcc --version

    输出应该显示你自行编译的新版本信息。

请注意,备份原有链接是一个良好的实践,以防止在设置新链接时出现问题。如果你遇到其他问题,还可以恢复到原始状态。

如果你想要在特定项目中使用新版本的 GCC,而不是系统默认版本,最好使用虚拟环境或类似的机制,以避免全局更改可能引起的系统不稳定性。

9.升级libstdc++.so

https://zhuanlan.zhihu.com/p/498529973
上一步升级完gcc之后,应该就有支持的最新的libstdc了,

find / -name libstdc++.so*

找到支持最大的,比如
/usr/local/lib64/libstdc++.so.6.0.32
/usr/local/lib64/libstdc++.so.6

就是/usr/local/lib64/libstdc++.so.6,现在执行

vi ~/.bashrc

最上面加上export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH

按esc,按 :,输入wq保存,执行source ~/.bashrc重载配置,现在即解决了此问题

终极大招:rm libstdc++.so.6
ln -s libstdc++.so.6.0.32 libstdc++.so.6

10.测试paddle

切换环境 conda activate paddle

执行 python,输入import paddle,不报错即成功,输入paddle.utils.run_check()即可看到在几个GPU workswell

标签