一 cuda安装
cuda官网:https://developer.nvidia.cn/cuda-toolkit-archive
参考博客:https://blog.csdn.net/qq_33548747/article/details/116700296
https://www.freesion.com/article/6074251962/
https://blog.csdn.net/weixin_39833429/article/details/111115605
1.验证自己的电脑是否有一个可以支持CUDA的GPU
lspci | grep -i nvidia
2.验证自己的Linux版本是否支持 CUDA(Ubuntu 16.04没问题)
uname -m && cat /etc/*release
3.安装gcc版本需要对应版本
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
查看gcc版本
gcc -v
4.CUDA安装
cuda9.2
https://developer.nvidia.com/cuda-92-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal页面下载
或者对应指令
wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run
指令:
cuda_9.2.148_396.37_linux.run
注意:等到more出来要一直按enter,后面打accept,后面按提示。
其他版本
https://developer.nvidia.com/cuda-toolkit-archive
5.设置环境变量
终端打开文件:
sudo gedit /etc/profile
在文件末尾加以下的代码并保存(我的是64位系统所以是lib64,如果是32位系统则是lib即可):
export PATH=/usr/local/cuda-9.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64\
${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
重启电脑,检查环境变量是否配置成功。
cat /proc/driver/nvidia/version
nvcc -V
显示出版本信息即安装成功了
还可以使用cat /usr/local/cuda/version.txt查看
注意:如果显示没有nvcc指令那有两种情况,一种是需要下载指令用sudo apt install nvidia-cuda-toolkit;另一种则是cuda没装好。根据提示在terminal中输入sudo apt-get install nvidia-cuda-toolkit安装,执行命令后,nvcc命令可以正常执行,但是运行nvcc –version发现版本为7.5,与CUDA 9.2不匹配
首先卸载nvidia-cuda-toolkit
sudo apt-get autoremove nvidia-cuda-toolkit
nvcc -V
查看/usr/local/cuda/bin下是否有nvcc可程行程序如果没有说明cuda没有正常安装,需要重新安装,如果有,进入下一步添加环境变量,打开~/.bashrc ,sudo gedit ~/.bashrc
添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.2/lib64
export PATH=$PATH:/usr/local/cuda-9.2/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.2
保存,再终端运行:
source ~/.bashrc
使之生效
再次输入nvcc --version。看到以下提示:
bash:/usr/bin/nvcc: No such file or directory
则将/usr/local/cuda/bin下的nvcc复制到这个目录下
wget下载cudnn报错显示403.
这是因为:Nvidia要求下载时进行验证(事实上,在我们从浏览器端下载cuDNN时,会被要求登录),而我们直接使用wget跳过了验证,所以被Forbidden了
1.https://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/ Production/10.1_20191031/cudnn-9.2-linux-x64-v7.6.5.32.tgz
2.CUDNN_TAR_FILE=“cudnn-9.2-linux-x64-v7.6.5.32.tgz” #与上面链接中的相对应
3.wget http://developer.download.nvidia.com/compute/redist/cudnn/v7.6.5/${CUDNN_TAR_FILE} #v7.6.5与CUDNN_TAR_FILE相对应
参考博客:
https://blog.csdn.net/WUDIxi/article/details/119481743?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%80%8E%E4%B9%88%E4%B8%8B%E8%BD%BDcudnn-9.2-linux-x64-v7.6.5&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-119481743.142v35experiment_2_v1,185v2control&spm=1018.2226.3001.4187
解压:
tar -xzvf cudnn-9.2-linux-x64-v7.6.5.32.tgz
将下列文件复制到 CUDA Toolkit 目录,并修改权限:
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.2/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.2/lib64
sudo chmod a+r /usr/local/cuda-9.2/include/cudnn.h /usr/local/cuda-9.2/lib64/libcudnn*
参考博客:
https://blog.csdn.net/RadiantJeral/article/details/120091319?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165897414116782248586975%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165897414116782248586975&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-2-120091319-null-null.142v35experiment_2_v1,185v2control&utm_term=%E6%80%8E%E4%B9%88%E4%B8%8B%E8%BD%BDcudnn-9.2-linux-x64-v7.6.5.32.tgz&spm=1018.2226.3001.4187
如果是同样的cuda和cudnn那么最好的方法还是直接指定路径这样避免重装。
新建一个虚拟环境然后下载cuda11.0.3版本,参考博客:
https://blog.csdn.net/weixin_43678195/article/details/119960152?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165899278816781432973404%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=165899278816781432973404&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-119960152-null-null.142v35experiment_2_v1&utm_term=ubuntu16.04%E4%B8%8Bcuda11.0&spm=1018.2226.3001.4187
网站:https://developer.nvidia.com/cuda-toolkit-archive
安装cuda后使用指令nvcc -V查询显示是9.2,说明cuda似乎是可以虚拟环境共用的。
nvcc: NVIDIA ® Cuda compiler driver
Copyright © 2005-2018 NVIDIA Corporation
Built on Tue_Jun_12_23:07:04_CDT_2018
Cuda compilation tools, release 9.2, V9.2.148
原因是之间添加了路径但没有source一下,使其生效。
接下来是安装cudnn
cudnn官方安装包链接(包含所有版本):
https://developer.nvidia.com/rdp/cudnn-archive
找到对应cuda版本的cudnn然后选择cudnn library for linux右击复制网址。
1.https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.4/11.0_20200923/cudnn-11.0-linux-x64-v8.0.4.30.tgz
2.CUDNN_TAR_FILE=“cudnn-11.0-linux-x64-v8.0.4.30.tgz” #与上面链接中的相对应
3.wget http://developer.download.nvidia.com/compute/redist/cudnn/v8.0.4/${CUDNN_TAR_FILE} #v8.0.4与CUDNN_TAR_FILE相对应
解压
tar -xvf cudnn-11.0-linux-x64-v8.0.4.30.tgz
将下列文件复制到 CUDA Toolkit 目录,并修改权限:
sudo cp cuda/include/cudnn.h /usr/local/cuda-11.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.0/lib64
sudo chmod a+r /usr/local/cuda-11.0/include/cudnn.h /usr/local/cuda-11.0/lib64/libcudnn*
新建一个虚拟环境然后下载cuda10.0版本
参考博客:
https://blog.csdn.net/zbr794866300/article/details/106574704?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165907016916781790762276%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165907016916781790762276&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-2-106574704-null-null.142v35experiment_2_v1&utm_term=ubuntu16.04%E4%B8%8B%E8%A3%85cuda10.0&spm=1018.2226.3001.4187
网站:
https://developer.nvidia.com/cuda-10.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal
安装指令:
sudo sh cuda_10.0.130_410.48_linux.run
输入内容为:accept -> n ->y -> y ->y(没有选项就按回车)
sudo gedit ~/.bashrc
加入
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
最后source ~/.bashrc
加入
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
二 cudnn安装
1.下载cudnn
1.https://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/Production/10.0_20191031/cudnn-10.0-linux-x64-v7.6.5.32.tgz
2.CUDNN_TAR_FILE=“cudnn-10.0-linux-x64-v7.6.5.32.tgz” #与上面链接中的相对应
3.wget http://developer.download.nvidia.com/compute/redist/cudnn/v7.6.5/${CUDNN_TAR_FILE} #v7.6.5与CUDNN_TAR_FILE相对应
之后解压
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.0/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64/
如果没有找到可能是打开终端位置不对,可能需要在download下执行
查看cudnn版本,指令为
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
2.查看torch版本
python
import torch
print(torch.version)
退出则是exit()或者quit()
cuda与torch版本匹配去官网查一下即可
查看pytorch官网 https://pytorch.org/get-started/previous-versions/
查看库版本pip list
3. cuda10.2安装
4.通过指令下载
wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run
然后指令:
sudo gedit ~/.bashrc
环境中加入:
export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:
更新文件:
source ~/.bashrc
5.cudnn下载文件
https://developer.nvidia.com/rdp/cudnn-archive
cudadnn8.0.4:https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.4/10.2_20200923/cudnn-10.2-linux-x64-v8.0.4.30.tgz
cudnn官方安装包链接(包含所有版本):
https://developer.nvidia.com/rdp/cudnn-archive
找到对应cuda版本的cudnn然后选择cudnn library for linux右击复制网址。
1.https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.0.4/10.2_20200923/cudnn-10.2-linux-x64-v8.0.4.30.tgz
2.CUDNN_TAR_FILE=“cudnn-10.2-linux-x64-v8.0.4.30.tgz” #与上面链接中的相对应
3.wget http://developer.download.nvidia.com/compute/redist/cudnn/v8.0.4/${CUDNN_TAR_FILE} #v8.0.4与CUDNN_TAR_FILE相对应
解压
tar -xvf cudnn-10.2-linux-x64-v8.0.4.30.tgz/tar -zxvf cudnn-10.2-linux-x64-v8.0.4.30.tgz
将下列文件复制到 CUDA Toolkit 目录,并修改权限
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.2/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64
sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h
sudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*
检验安装
cat /usr/local/cuda-10.2/include/cudnn.h | grep CUDNN_MAJOR -A 2
cat /home/ubuntu16.04/Downloads/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
在当前文件夹下打开终端 然后
sudo cp ./* /usr/local/cuda-10.2/include
sudo cp ./* /usr/local/cuda-10.2/lib64
正常指令:
sudo cp /home/ubuntu16.04/Downloads/cuda/include/cudnn.h /usr/local/cuda-10.2/include
sudo cp /home/ubuntu16.04/Downloads/cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64
sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h
sudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*
sudo rm -rf /usr/local/cuda #删除之前创建的软链接
sudo ln -s /usr/local/cuda-10.2 /usr/local/cuda #创建新 cuda 的软链接
cuda一般安装在 /usr/local/cuda/ 路径下,该路径下有一个version.txt文档,里面记录了cuda的版本信息:
cat /usr/local/cuda/version.txt
cudnn的信息:
cat /usr/local/cuda-10.2/include/cudnn.h | grep CUDNN_MAJOR -A 2
或者
cat /usr/local/cuda-10.2/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
cudnn10.1版本
https://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/Production/10.1_20191031/cudnn-10.1-linux-x64-v7.6.5.32.tgz
1.https://developer.nvidia.com/compute/machine-learning/cudnn/secure/7.6.5.32/Production/10.1_20191031/cudnn-10.1-linux-x64-v7.6.5.32.tgz
2.CUDNN_TAR_FILE=“cudnn-10.1-linux-x64-v7.6.5.32.tgz” #与上面链接中的相对应
3.wget http://developer.download.nvidia.com/compute/redist/cudnn/v7.6.5/${CUDNN_TAR_FILE} #v7.6.5与CUDNN_TAR_FILE相对应,注意这里不能写7.6.5.32
tar -zxvf cudnn-10.1-linux-x64-v7.6.5.32.tgz
sudo cp /home/ubuntu16.04/Downloads/cuda/include/cudnn.h /usr/local/cuda-10.1/include
sudo cp /home/ubuntu16.04/Downloads/cuda/lib64/libcudnn* /usr/local/cuda-10.1/lib64
sudo chmod a+r /usr/local/cuda-10.1/include/cudnn.h
sudo chmod a+r /usr/local/cuda-10.1/lib64/libcudnn*
cudnn的信息:
cat /usr/local/cuda-10.2/include/cudnn.h | grep CUDNN_MAJOR -A 2
虚拟环境中的cuda和系统安装的cuda是互不影响的,所以在虚拟环境中放心安装你需要的cuda版本。安装之后为了验证时候安装成功,在终端运行了nvcc -V(V大写),很奇怪的发现和系统安装的cuda是一个版本,然后自己傻傻以为没有安装成功,一直在找解决办法。其实这个命令执行之后就是获得系统安装的版本,如果想要看虚拟环境中安装的版本应该运行,conda list | grep cuda,然后就会获得虚拟环境下安装的版本。
是否安装成功:
python
import torch
print(torch.__version__)
print(torch.cuda.is_available())出现true
当然安装了pytorch,肯定还需要安装torchvision,那安装什么版本才是对应的呢?一个简单的方法:
conda install torchvision -c pytorch
anaconda会自动根据pytorch的版本帮你选择对应的torchvision
更多机器人精彩内容,请关注公众号:木鱼机器人