说明:适用于没有管理员权限时的cuda安装
关于CUDA 8.0和CUDA 10.1的安装,都与本文略有不同,具体问题可以参考:
Ubuntu16.04下安装CUDA8.0
Ubuntu16.04下安装CUDA10.1
下载 CUDA
安装 CUDA
以安装 cuda 9.2 为例,具体需要根据自己的 cuda 版本对名称和路径进行修改。
1. 执行run文件
进入 cuda runfile 文件目录下:
chmod +x cuda_9.2.148_396.37_linux.run
./cuda_9.2.148_396.37_linux.run
按住回车,服务条款进行到 100% 以后,按下面的步骤进行选择:
- accept
- n(不要安装驱动!)
- y
- 输入安装路径:/data/usr/local/cuda-9.2
- y or n
- y or n
出现这个 warning 不用理:
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
2. 设置环境变量
安装完成后,设置环境变量:.bashrc
vi ~/.bashrc
在文件末尾加上:
export LD_LIBRARY_PATH=/data/zyy/usr/local/cuda-9.2/lib64:$LD_LIBRARY_PATH
export PATH=/data/zyy/usr/local/cuda-9.2/bin:$PATH
export CUDA_HOME=/data/zyy/usr/local/cuda-9.2
:wq
保存退出后更新环境变量:source ~/.bashrc
[2021-11-15更新] 注意不要在 export CUDA_HOME 最后也加一个 :$CUDA_HOME,没必要,且容易出bug!
3. 检查安装是否成功
此时查看 cuda 版本:nvcc -V
可同时安装多版本cuda,需要使用哪个版本只需在环境变量中修改路径即可。
4. 卸载CUDA
卸载CUDA很简单,一条命令就可以了,主要执行的是CUDA自带的卸载脚本,根据自己的cuda版本找到卸载脚本
sudo /usr/local/cuda-9.2/bin/uninstall_cuda_9.2.pl
5. 多版本CUDA的切换
切换 CUDA 版本有下面两种方法,第一种使用于安装 cuda 时创建了软链接的情况,修改比较简单,第二种是没有软链接时要直接对环境变量进行修改。
5.1 切换软链接
如果安装了多个版本的 CUDA,可以在 /usr/local/
目录下看到自己安装了哪些版本:
cuda 是一个软链接,它指向我们指定的 cuda 版本(在设置环境变量时,也使用的是 cuda
,而不是 cuda-具体版本
,这主要是为了方便我们切换 cuda 版本,可以让我们不用每次都去改环境变量的值)
进入 local
文件夹下,使用 stat
命令查看当前 cuda 软链接指向的哪个 cuda 版本:
可以看到,cuda 软链接的文件类型是symbolic link,指向的目录是 /usr/local/cuda-9.0,当我们想使用 cuda-8.0 版本时,只需要删除该软链接,然后重新建立指向 cuda-8.0 版本的软链接即可(注意名称还是cuda,因为要与 bashrc 文件里设置的保持一致)
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda
需要修改的只是上面的版本号而已。
5.2 修改环境变量
vi ~/.bashrc
修改环境变量的指向:比如将 cuda-9.2 更换为 cuda-8.0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/zyy/usr/local/cuda-8.0/lib64
export PATH=$PATH:/data/zyy/usr/local/cuda-8.0/bin
export CUDA_HOME=$CUDA_HOME:/data/zyy/usr/local/cuda-8.0
安装 CUDNN
1. 解压tgz压缩包
下载 Linux 版本的压缩包,发现是 .solitairethem8 格式的文件,需要先将其转换为 .tgz 格式的文件再进行解压:
# 转换为tgz文件
cp cudnn-9.2-linux-x64-v7.5.1.10.solitairetheme8 cudnn-9.2-linux-x64-v7.5.1.10.tgz
# 解压tgz文件
tar -zvxf cudnn-9.2-linux-x64-v7.5.1.10.tgz -C /data/zyy/usr/local
2. 添加环境变量
将解压后的 cuda 文件夹中的 lib64 文件夹关联到环境变量中:
vi ~/.bashrc
在弹出的 .bashrc 文件的最后加入:
# 这里的 lib64 是解压的 tgz 文件下的 lib64 文件夹
export LD_LIBRARY_PATH=/data/zyy/usr/local/cuda/lib64:$LD_LIBRARY_PATH
保存更改的文件后,更新一下环境变量:
source ~/.bashrc
3. 复制头文件
进入 cuda/include 路径下,执行操作:
# 将头文件cudnn.h复制到cuda-9.2安装目录下对应的include文件中
cp cudnn.h /data/zyy/usr/local/cuda-9.2/include/
然后重置 cudnn.h 文件的读写权限:
chmod a+r /data/zyy/usr/local/cuda-9.2/include/cudnn.h
4. 检查安装是否成功
查看 cudnn 版本:
cat /data/zyy/usr/local/cuda-9.2/include/cudnn.h | grep CUDNN_MAJOR -A 2
2019/7/26 更新 【问题1】
对于没有 root 权限,但需要向系统环境里添加环境变量时,不要按照常规的 vi 编辑,然后 source,这样会报 permission denied
此时可以在终端命令窗口直接输入自己想要 export 的环境变量,然后 source ~/.bashrc 即可。