加油,骚年!
概念解释
CUDA驱动版本:保持最新就好了,CUDA驱动版本要求和CUDA版本匹配,而CUDA又要求cuDNN/TF是匹配的。不过CUDA驱动版本是向下兼容的,所以保持最新就没事。输入nvidia-smi可以查看:
nvidia-smi
其中表格第一行最后的位置Driver Version就是驱动版本:
CUDA:用于GPU编程的语言,跑TensorFlow的时候用了GPU,TensorFlow里面很多函数(或者依赖库)是CUDA语言编写的。不同TF版本需要不同的CUDA。
cuDNN:NVIDIA为深度学习,矩阵运算写的一个加速库。CUDA版本必须和cuDNN版本匹配。cuDNN和TF版本匹配与否则无所谓(CUDA和TF版本必须匹配,所以cuDNN版本和TF版本是间接依赖关系)。
TensorFlow:个人经验,别用太新的,如果每次都用最新的,那么进而导致CUDA也要不断更新。
版本对应
TensorFlow依赖cuda,cuda根据驱动定 ,驱动根据linux定,cudnn看好TF的版本安装一个就好。
本文可以根据你需要的Tensorflow版本先看第4部分,确定好了cuda和cudnn版本再从123部分开始。
准备工作
我这篇没有讲环境管理器Anaconda的安装,但是本篇的安装工作是基于conda的安装,如果没有的话,建议你用pip安装也可以,但是非常推荐你安装anconda 这样一个环境管理器。
Anaconda环境管理会提供两个便利:
- 一个环境用python2.7,一个环境用python3.7,就避免了两者不能共存的麻烦;或者一个环境用旧的TensorFlow调试项目,一个环境用新版本的TensorFlow调试另一个项目。
- 在一个环境下,conda可以根据当前想安装的包,来判断当前包的成功运行还需要安装哪些包,减少为安装某个新包而要一个一个安装很多新包的烦恼。
1. 确定显卡是否符合
下面的命令可以显示你的显卡型号
lspci | grep -i nvidia
然后去到这里https://developer.nvidia.com/cuda-gpus查看你的显卡是否在表中,在的话你显卡就是支持CUDA计算的(CUDA-capable)。
2. linux是否有GCC
gcc --version
如果报错了,那么下载符合的GCC;成功返回了版本信息,则下一步。
如果版本需要降级的话,参考这篇文章《GCC降级》
3. 系统是否安装了正确的内核标头和开发包
内核标头和开发包要匹配,看一下
uname -r
然后,我也不知道匹配不匹配,就按照指示输入了以下命令,用来下载匹配的包。
结果是如图,不需要安装新的了。
sudo apt-get install linux-headers-$(uname -r)
1. 安装显卡驱动
Linux的Nvidia的显卡驱动可以从【软件和更新中安装】
点开之后进入【附加驱动】中,因为我已经安装了Nvidia的驱动,所以已经勾选了,你也需要勾选Nvidia的驱动进行安装。
2. 安装CUDA
确定好了驱动版本后,再确定cuda也就是cudatoolkit的版本。根据英伟达cuda手册安排,根据第2列Linux的驱动版本来确定第1列CudaToolkit的版本,然后安装。
安装方式和安装其他的python一样,如果你使用conda,那么直接用下面语句,注意替换版本号。
conda install cudatoolkit=8.0
3. 安装CuDNN
这个直接用conda安装:
conda install cudnn
4. 查看Tensorflow与cuda的匹配关系
从这个网站https://tensorflow.google.cn/install/source#linux来找到适合自己的TensorFlow的版本进行安装。
我的机器上有cudatoolkit和cudnn的版本:
我选择Tensorflow-gpu的版本:
linux和CUDA的匹配关系
由于不同版本的Cuda对于GCC版本的要求不一样,我是没遇到GCC安装这个问题,但是很多新安装Unbuntu没有GCC,所以需要根据你的CUDA版本和Linux16.04查询下表决定你的GCC版本。
例如下图:CUDA9.0在Ubuntu16.04上需要的GCC版本是5.31。
其他版本的CUDA,可以从下面这个网站找:
https://docs.nvidia.com/cuda/archive/9.0/cuda-installation-guide-linux/index.html
参考感谢
[1] https://www.jianshu.com/p/22b11a11a25e
[2] https://blog.csdn.net/IT_xiao_bai/article/details/88342921
[3] 《深度学习服务器环境配置: Ubuntu17.04+Nvidia GTX 1080+CUDA 9.0+cuDNN 7.0+TensorFlow 1.3》 介绍了怎么更新源,加快下载速度。
[4] 《Ubuntu18+RTX2080Ti 从0开始搭建深度学习环境TensorFlow+PyTorch》 全流程,还有如何降级gcc g++
[5] 《深度学习 最快方式安装CUDA和 Nvidia Driver》 对比其他方法,这个很快,本文提到其他方式是手动的,但是自己觉得这个没有禁用Nouveau,害怕出问题,没有尝试。有了解的大佬给科普一下吧,感谢。
[6] 《Ubuntu 18.04 NVIDIA驱动安装总结》一份驱动安装总结,强调了禁用Nouveau的,三种方法,选择了第二种。
[7] cudatookit版本对应
[8] Nvidia官方教程