安装升级内核

yum install kernel-headers
yum install kernel-devel
yum update kernel*
  1. 在配置文件中禁用nouveau

    # 使用的是下面第一种方法
    # 1
    $ vi /etc/modprobe.d/blacklist.conf
    # 添加:
    blacklist nouveau
    #--------------------------------------------
    # 2.CentOS 7:
    vim /usr/lib/modprobe.d/dist-blacklist.conf
    # 或
    vim /lib/modprobe.d/dist-blacklist.conf
    # 并且在加上blacklist nouveau之后还要加上一行
    options nouveau modeset=0
    
  2. 备份原来的 initramfs nouveau image镜像

    mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img  
    
  3. 创建新的 initramfs image镜像

    dracut /boot/initramfs-$(uname -r).img  $(uname -r)  
    

    重启后,检查nouveau driver确保没有被加载!

    $ lsmod | grep nouveau
    

下载驱动并安装

wget https://cn.download.nvidia.cn/tesla/450.156.00/NVIDIA-Linux-x86_64-450.156.00.run
chmod +x NVIDIA-Linux-x86_64-450.156.00.run
sudo ./NVIDIA-Linux-x86_64-450.156.00.run
nvidia-smi
  • 若出现重启就失效的错误,可能是驱动版本过低,可自行选择驱动安装

安装CUDA(11.0)

下载: https://developer.nvidia.com/cuda-toolkit-archive

# 下载链接以及安装命令
wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda_11.0.2_450.51.05_linux.run
sudo sh cuda_11.0.2_450.51.05_linux.run

中间有部分选择:
1.accept
2.驱动 (不下载) 以及cuda工具 (下载)

验证示例:

# 安装完成后~目录下有验证文件  NVIDIA_CUDA-11.0_Samples/
# 进入
cd NVIDIA_CUDA-11.0_Samples/
make # 编译
./NVIDIA_CUDA-11.0_Samples/1_Utilities/deviceQuery/deviceQuery	# 运行

WARNING - libnvscibuf.so not found, please install libnvscibuf.so <<<

WARNING - libnvscisync.so not found, please install libnvscisync.so <<<
WARNING - nvscibuf.h not found, please install nvscibuf.h <<<
WARNING - nvscisync.h not found, please install nvscisync.h <<<
GCC Version is greater or equal to 4.7.0 <<<

/usr/bin/ld: 找不到 -lglut
collect2: 错误:ld 返回 1
make[1]: *** [simpleGL] 错误 1
make[1]: 离开目录“/root/NVIDIA_CUDA-11.0_Samples/2_Graphics/simpleGL”
make: *** [2_Graphics/simpleGL/Makefile.ph_build] 错误 2

切换gcc

1. 安装centos-release-scl
sudo yum install centos-release-scl
2. 安装安装devtoolset
# 版本可以更换
sudo yum install devtoolset-8-gcc*
3. 安装激活对应的devtoolset

可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本,

scl enable devtoolset-8 bash

# 查看版本
gcc -v
4. 切换gcc版本
1)临时切换gcc版本

安装的devtoolset是在 /opt/sh 目录下的,每个版本的目录下面都有个 enable 文件,如果需要启用某个版本,只 需要执行

source /opt/rh/devtoolset-版本号/enable

注意:这条激活命令只对本次会话有效,重启会话后还是会变回原来的4.8.5版本,可以将对应版本的切换命 令写个shell文件放在配了环境变量的目录下,需要时随时切换,或者开机自启

2)直接替换旧的gcc

旧的gcc是运行的 /usr/bin/gcc,所以将该目录下的gcc/g++替换为刚安装的新版本gcc软连接,免得每次enable

mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++

编译~目录下的samples实例报错:

/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/ld: 找不到 -lglut
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:332:simpleGL] 错误 1
make[1]: 离开目录“/root/NVIDIA_CUDA-11.0_Samples/2_Graphics/simpleGL”
make: *** [Makefile:51:2_Graphics/simpleGL/Makefile.ph_build] 错误 2

# 下载glut相关
sudo yum install  freeglut*

再次编译成功

在这里插入图片描述

安装cudnn(8.0.5)

下载: https://developer.nvidia.com/rdp/cudnn-archive

将下载的 cuDNN Library for Linux (x86_64) 解压,复制解压出来的文件到安装好的CUDA环境中

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

# 更改权限输入: 
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn* 
# 安装结束后重启,测试是否安装成功
cp -r /usr/src/cudnn_samples_v8/ ~ 
cd ~/cudnn_samples_v8/mnistCUDNN/
make clean && make
./mnistCUDNN 
# Result = PASS
# 成功

将cuda与cudnn加入环境

# vi /etc/profile
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cudnn/lib64:$LD_LIBRARY_PATH
# 激活环境
source /etc/profile
# 验证环境是否正确
nvcc -V
Logo

欢迎来到由智源人工智能研究院发起的Triton中文社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。

更多推荐