CUDA ®是NVIDIA发明了一种并行计算平台和编程模型®。通过利用图形处理单元(GPU)的功能,可以显着提高计算性能。
要在您的系统上使用CUDA,您将需要安装以下软件:
必须要保证你的显卡有驱动,才能进行以下操作
nvidia-smi
#或者
/proc/driver/nvidia/version
因为Ubuntu20.04自带的gcc版本为9.3,而cuda10.1不支持gcc-9,因此要手动安装gcc-7,如果安装高版本的cuda,可以跳过,命令如下:
# 查看gcc版本
gcc -v
sudo apt-get install gcc-7 g++-7
安装完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
设置默认的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++
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
NVIDIA CUDA工具包可从https://developer.nvidia.com/cuda-downloads下载。
https://developer.nvidia.com/cuda-toolkit-archivecuda的老版本
安装后操作,看下一步
#安装请查看官方文档,很多版本不一样
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)
nvcc -V
cuda官方安装文档
按需求下载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就没办法调用gpu进行快速训练或推理,所以深度学习要是用不上gpu这不相当于学习了个寂寞!
首先:查看/usr/local下的文件
这里已经安装好了cuda10.0和cuda10.1,cuda文件夹就是链接
用stat命令查看符号连接
cuda -> /usr/local/cuda-10.0
说明现在用的是cuda10.0
当我们想使用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,无语。
好吧,看了许多解释,貌似遇到此问题人挺多。
最终,还是改.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
总结,软连接方法应该可行,但是实验就是不对,由于时间原因,找到一种可行的方法就好了。如果有知道原因的可以告诉我,谢谢。