CUDA的默认安装目录是/usr/local/cuda-10.1(或者/usr/local/cuda-9.0等等),但在多用户的服务器上最好不要安装在默认安装目录,因为/usr/local是其他用户可以访问到的,会影响其他用户使用。本流程把CUDA安装在我所在的home目录下:/home/skipper/cudas/
1.下载CUDA
下载需要安装的CUDA版本:https://developer.nvidia.com/cuda-toolkit-archive
仅针对runfile安装,下图为示例
2.在你的home目录安装CUDA
以安装cuda-10.0为例子:
- cd到安装文件所在的目录,执行下面的命令:
sudo sh cuda_10.0.130_410.48_linux.run
- 如果已经安装了其他版本再安装10.1版本,10.1版本会有警告,提示你最好卸载已经存在的版本,这里忽略警告,继续安装;10.1以下版本貌似不会有这种警告。
- 不要安装显卡驱动,除非你需要(用nvidia-smi查到的显卡驱动的版本号需要比CUDA文件名后面的高,我的显卡版本是430.64,我的安装文件是cuda_10.0.130_410.48_linux.run,只需要410.48版本以上就可以运行了);
- 选择CUDA toolkit的安装路径,一定要在自己的home目录下(我的是/home/skipper/cudas/cuda-10.0)
- 不要在/usr/local/目录创建或者安装指向你所安装的cuda目录的软连接;
- (可选)安装samples,选择目录,我将它与cuda-10.0放在一起;
详细步骤可以看看:在ubuntu上安装多个版本的CUDA,并且可以随时切换,这篇教程把CUDA安装在默认的/usr/local/下,通过改变软连接来指向不同版本的CUDA,每次切换需要把旧的软连接删除,再创建新的软连接;我的方法不用创建任何软连接,对/usr/local/目录没有任何改变。
通过修改环境变量来更换CUDA版本
在系统环境变量中添加这三句,使其指向cuda-10.0版本:
export CUDA_HOME=/usr/local/cuda-10.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
如果安装了cuda-10.1,切换成cuda-10.1则可以修改为:
export CUDA_HOME=/usr/local/cuda-10.1
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
完成修改后需要
source .bashrc
检查是否已经生效
新开一个终端输入:
nvcc -V
可以看到:Cuda compilation tools, release 10.1, V10.1.243
(base) hongze@lab-PowerEdge-T630 ~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
说明当前使用的是10.1版本的CUDA
编译samples
可以用来检验CUDA是否正确安装(在安装时候可选)——cd到samples所在的目录:
(base) hongze@lab-PowerEdge-T630 ~/cudas/NVIDIA_CUDA-10.0_Samples$ sudo make
编译过程中可能有很多warnings,但是最后的提示有这一句就表示已经成功了:
Finished building CUDA samples
cudnn可能造成的影响
我尝试过安装cudnn,导致无法切换CUDA版本,因为这样安装的cudnn会带有nvcc编译工具,会覆盖掉你所有安装的CUDA的nvcc;如果需要安装cudnn,最好去英伟达官网下载deb进行安装,点击https://developer.nvidia.com/rdp/cudnn-archive