cuda,cudnn完整卸载以前版本和安装其他版本

一.cuda

CUDA ®是NVIDIA发明了一种并行计算平台和编程模型®。通过利用图形处理单元(GPU)的功能,可以显着提高计算性能。

要在您的系统上使用CUDA,您将需要安装以下软件:

  • 支持CUDA的GPU
  • 具有gcc编译器和工具链的受支持的Linux版本
  • NVIDIA CUDA工具包(可从https://developer.nvidia.com/cuda-downloads获得)

1.查看你的NVIDIA显卡驱动

必须要保证你的显卡有驱动,才能进行以下操作

nvidia-smi
#或者
/proc/driver/nvidia/version

2.关键点:gcc降级

因为Ubuntu20.04自带的gcc版本为9.3,而cuda10.1不支持gcc-9,因此要手动安装gcc-7,如果安装高版本的cuda,可以跳过,命令如下:

# 查看gcc版本
gcc -v
sudo apt-get install gcc-7 g++-7
2.1设置默认的gcc

安装完gcc-7,系统中就存在两个版本的gcc,因此要设置默认的gcc,命令如下:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 1

此命令可以通过update-alternatives设置gcc各版本的优先级,优先级最高的为系统默认版本,可以用下述命令显示其优先级:

sudo update-alternatives --display gcc
2.2设置默认的g++

设置默认的g++也是如此:

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 1

显示g++优先级:

sudo update-alternatives --display g++

3.卸载旧版cuda

sudo apt-get --purge remove <package_name>  #Deb installation
sudo apt-get update
sudo apt-get autoremove #这样才能完整卸载

或者

# To uninstall the CUDA Toolkit, run cuda-uninstaller in /usr/local/cuda-11.1/bin
sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl   #run

再或者下面是卸载所有版本:

To remove CUDA Toolkit:

$ sudo apt-get --purge remove "*cublas*" "*cufft*" "*curand*" \
 "*cusolver*" "*cusparse*" "*npp*" "*nvjpeg*" "cuda*" "nsight*" 

To remove NVIDIA Drivers:(驱动,不乱卸载)

$ sudo apt-get --purge remove "*nvidia*"

To clean up the uninstall:

$ sudo apt-get autoremove

4.安装

NVIDIA CUDA工具包可从https://developer.nvidia.com/cuda-downloads下载。

https://developer.nvidia.com/cuda-toolkit-archivecuda的老版本

安装后操作,看下一步

5.配置可执行文件及库路径(10.0版本)

#安装请查看官方文档,很多版本不一样
sudo vim ~/.bashrc 
#在最后面加上这些:
#export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
#export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
#export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

cuda_version="cuda-11.0"
export PATH=/usr/local/${cuda_version}/bin:$PATH
export CPLUS_INCLUDE_PATH=/usr/local/${cuda_version}/include:$CPLUS_INCLUDE_PATH
export LD_LIBRARY_PATH=/usr/local/${cuda_version}/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/${cuda_version}

#最后更新环境:
source ~/.bashrc
详细见[安装后操作](https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions)

6.查看cuda版本验证安装

nvcc -V

cuda官方安装文档

二.cudnn

1.下载安装文件

按需求下载cudnn的安装文件:https://developer.nvidia.com/rdp/cudnn-download
切换到下载文件所在目录,解压下载好的cuDNN压缩文件到当前目目录

tar -xzvf cudnn-10.02.tgz#版本要和cuda对应

将以下文件复制到CUDA Toolkit目录中,然后更改文件权限。

$ 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/ $HOME
cd  $HOME/cudnn_samples_v8/mnistCUDNN
make clean && make
./mnistCUDNN

如果cuDNN已正确安装并在Linux系统上运行,您将看到类似以下的消息:

Test passed!

cudnn官方安装文档

三.多版本cuda的切换

环境配置问题一般都是各个框架与cuda版本的适配问题,装不好cuda就没办法调用gpu进行快速训练或推理,所以深度学习要是用不上gpu这不相当于学习了个寂寞!

1.无用示例

首先:查看/usr/local下的文件
在这里插入图片描述
这里已经安装好了cuda10.0和cuda10.1,cuda文件夹就是链接

用stat命令查看符号连接

cuda -> /usr/local/cuda-10.0

说明现在用的是cuda10.0
cuda,cudnn完整卸载以前版本和安装其他版本_第1张图片
当我们想使用cuda-10.1版本时,只需要删除该软链接,然后重新建立指向cuda-10.0版本的软链接即可(注意名称还是cuda,因为要与bashrc文件里设置的保持一致)

sudo rm -rf cuda
sudo ln -s /usr/local/cuda-10.1 /usr/local/cuda

此时nvcc -V依然是10.0,无语。
cuda,cudnn完整卸载以前版本和安装其他版本_第2张图片
好吧,看了许多解释,貌似遇到此问题人挺多。

2.最终解决

最终,还是改.bashrc比较有用

vim ~/.bashrc
export PATH=/usr/local/cuda-10.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
source ~/.bashrc

cuda,cudnn完整卸载以前版本和安装其他版本_第3张图片

总结,软连接方法应该可行,但是实验就是不对,由于时间原因,找到一种可行的方法就好了。如果有知道原因的可以告诉我,谢谢。

你可能感兴趣的:(linux,cuda,ubuntu,linux,pytorch)