一、卸载
1.1 卸载原有驱动
方法一:找到显卡驱动.run文件:
$ sh NVIDIA-Linux-x86_64-418.126.02.run --uninstall
方法二:清除所有nvidia相关文件和依赖
$ yum remove nvidia-*
为了删除干净还可以(目标就是把nvidia-driver的相关组件都清理掉):
rpm -qa|grep -i nvid|sort
yum remove kmod-nvidia-*
ubuntu为:
sudo apt-get purge nvidia-cuda*
sudo apt-get purge nvidia-*
1.2卸载原有cuda
如果是rpm安装
sudo rpm -e cuda-repo[补全] #[补全]为tab键
sudo yum -y remove nvidia-*
sudo yum -y remove cuda-*
sudo rm -rf /usr/local/cuda* #如果有多个cuda,都删除,如rm -rf /usr/local/cuda-11.0
如果是.run安装
sudo nvidia-uninstall #卸载驱动
sudo /usr/local/cuda/cuda-uninstaller #卸载cuda,9.2版本的后缀名为.pl
反正我是两种都执行一遍.
1.3 清理gcc环境
sudo yum autoremove -y gcc*
sudo yum autoremove -y cpp*
sudo yum autoremove -y dkms
sudo rm -rf /opt/rh #删除由devtoolset安装的gcc
sudo rm -rf /usr/lib/gcc
sudo rm -rf /usr/libexec/gcc
whereis gcc
sudo yum install -y gcc
sudo yum install -y gcc-c++
sudo yum install -y glibc-devel
gcc -v
二、安装NVIDIA驱动
下载地址:https://www.nvidia.com/Download/index.aspx
sudo sh NVIDIA-Linux-x86_64-440.118.02.run
安装过程失败提示:
An NVIDIA kernel module 'nvidia-uvm' appears to already be loaded in your kernel. This may be because it is in use (for example, by an X server, a CUDA program, or the NVIDIA Persistence Daemon), but this
may also happen if your kernel was configured without support for module unloading. Please be sure to exit any programs that may be using the GPU(s) before attempting to upgrade your driver. If no GPU-based programs are running, you know that your kernel supports module unloading, and you still receive this message, then an error may have occured that has corrupted an NVIDIA kernel module's usage count, for which the simplest remedy is to reboot your computer.
因为一些docker 容器正在使用该驱动,需要输入一下命令:
sudo service lightdm stop
sudo stop nvidia-digits-server
sudo service docker stop
sudo rmmod nvidia-uvm
或者需要屏蔽nouveau,以及把docker采用了gpu的已有的服务关闭stop.
屏蔽nouveau
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
加入:
blacklist nouveau
options nouveau modeset=0
更新使其生效
sudo update-initramfs -u
修改运行级别为文本模式
systemctl set-default multi-user.target
重启
sudo reboot
检验是否生效,输入以下命令,如果无信息输出,则生效
lsmod | grep nouveau
查看nvidia-smi
[root@localhost sbin]# nvidia-smi
Sat Oct 9 14:54:38 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.33.01 Driver Version: 440.33.01 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla V100-FHHL... Off | 00000000:AF:00.0 Off | 0 |
| N/A 55C P0 32W / 150W | 12MiB / 16160MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
三、安装cuda
下载地址: https://developer.nvidia.com/cuda-downloads
推荐用runfile(local)方法,会下载到本地
$ wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
$ sudo sh cuda_10.2.89_440.33.01_linux.run
安装过程输入accept,选择安装所有 [X]表示选中,如果取消就移到该选项按一下回车就取消了X.
如果没有执行第一步的卸载原有驱动,则会出现以下错误:
在执行sh cuda_10.2.89_440.33.01_linux.run时,安装失败,打开日志/var/log/cuda-installer.log:
[INFO]: Driver not installed.
[INFO]: Checking compiler version...
[INFO]: gcc location: /usr/bin/gcc
[INFO]: gcc version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)
[INFO]: Initializing menu
[INFO]: Setup complete
[INFO]: Components to install:
[INFO]: Driver
[INFO]: 440.33.01
[INFO]: Executing NVIDIA-Linux-x86_64-440.33.01.run --ui=none --no-questions --accept-license --disable-nouveau --no-cc-version-check --install-libglvnd 2>&1
[INFO]: Finished with code: 256
[ERROR]: Install of driver component failed.
[ERROR]: Install of 440.33.01 failed, quitting
[ERROR]: Install of driver component failed.表示驱动安装失败.正常执行了卸载原有驱动是不会出现的
cuda_10.2 还有两个补丁,这个需要在windows下载,复制到linux服务器中.然后执行以下命令:
sh cuda_10.2.1_linux.run
sh cuda_10.2.2_linux.run
这时在usr/local有两个文件夹,一个为cuda-10.2 另外一个为cuda,其中cuda为cuda-10.2的软连接
如果是用rpm方式安装,先修改cuda源:
#install cuda from .rpm file
修改cuda源,/etc/yum.repos.d/cuda.repo
https://mirrors.aliyun.com/nvidia-cuda/rhel7/x86_64/
四、安装cudnn
cudnn下载地址:https://developer.nvidia.com/rdp/cudnn-download
cuda为10.2 ,选择下载linux-x64-v7.6.5
解压并复制文件:
tar -xzvf cudnn-10.2-linux-x64-v7.6.5.32.tgz
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*
一个用户/root,只能存在一个cudnn,用到的时候如果要切换别的cudnn,如cudnn8.0.2 则对cudnn8.0.2 解压后,重命名为cuda_v8.再执行:
sudo cp cuda_v8/include/cudnn.h /usr/local/cuda/include
sudo cp cuda_v8/lib64/libcudnn* /usr/local/cuda/lib64
这样就切换到cudnn8.0.2了
五、设置环境变量
vim ~/.bashrc
添加以下内容
export CUDA_HOME=/usr/local/cuda
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_ROOT=/usr/local/cuda
这样就可以使用nvcc -V 查看版本了
[root@~]# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89