Ubuntu 18.04, NVIDIA GTX 1060. 此贴总结一下我这次安装的过程. 我之前用过 anaconda 安装的非常顺利, 这次虽然换了 conda 源, 或者走了代理, conda 下载总是超时, 尝试自己下载好一些包给 conda, 他 不 识 别! 一把辛酸泪啊, 最后放弃了 anaconda 用 pip 安装没想到速度快的飞起, 总结一下安装过程以供参考.
1. 安装NVIDIA显卡驱动 -- 用命令行安装显卡驱动
查看显卡信息和推荐驱动版本:
$ ubuntu-drivers devices
安装显卡驱动:
$ sudo ubuntu-drivers autoinstall
我这里自动安装的显卡驱动的版本为390.77
还有一种方法, 在 Software & Updates -> Additional Drivers 里选择 Using NVIDIA driver metapackage from nvidia-driver-XXX (这里是推荐的版本号), 然后点 Apply Changes 等他自动下载安装就可以.
安装完显卡驱动以后重启Ubuntu, 终端里check一下是不是成功安装了显卡驱动:
$ nvidia-smi
2. 安装 CUDA 和 cuDNN
tensorflow官网给出GPU支持信息: ( https://www.tensorflow.org/install/gpu )
- NVIDIA® GPU drivers —CUDA 9.0 requires 384.x or higher.
- CUDA® Toolkit —TensorFlow supports CUDA 9.0.
- cuDNN SDK (>= 7.2)
我的驱动版本 (390.77) 符合安装 tensorflow gpu 版的要求 (>= 384.x), 链接点进去在NVIDIA官网下载 CUDA 9.0 和 cuDNN 7.
2.1 安装 CUDA 9.0
CUDA 所有版本地址: https://developer.nvidia.com/cuda-toolkit-archive
CUDA 9.0: https://developer.nvidia.com/cuda-90-download-archive 选择 Linux -> x86_64 -> Ubuntu -> 17.04 -> runfile (local)
我们实验室的网太渣了, 网络不稳定, 下载中途老是断掉, CUDA 的安装包我下载了大概5, 6次才成功...
下载完后, 终端执行:
$ sudo sh cuda_9.0.176_384.81_linux.run
安装的过程中除了问是否下载显卡驱动选no以外,其他全yes就可以.
安装完 CUDA 后, 需要把 CUDA 添加到环境变量:
1) 终端执行命令:
$ sudo gedit ~/.bashrc
2) 在打开的文档里添加:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
3) 终端执行命令使生效:
$ source ~/.bashrc
2.2 安装 cuDNN 7
根据 tensorflow 官网提示, 我们只要安装7.2以上的版本就可以了, 并且要根据自己安装的 CUDA 版本下载对应的 cuDNN.
下载地址: https://developer.nvidia.com/cudnn
需要先登录, 这里我直接下载了最新的版本 (v7.4.2).
下载时选择 cuDNN Library for Linux, 得到一个 .tgz 包, 解压这个包, 然后执行以下命令:
$ 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*
这里就是把解压出来的 cuDNN 的文件复制到 CUDA 的有关文件夹里.
3. pip 安装 tensorflow
我这里用的是 python 3.6.5, 在终端里, 执行
$ pip3 install tensorflow-gpu
默认安装了最新的 1.12.0版本.
(官方推荐虚拟环境下安装tensorflow, 链接 https://www.tensorflow.org/install/pip)
安装完成后, 可以测试一下 tensorflow 有没有成功安装. (网上有很多贴子给了简单的测试例子)
我这里在测试的时候, 发现会报一个错误, failed call to cuInit: CUDA_ERROR_NO_DEVICE, 这是没找到GPU.
我们现在终端看一看自己的 GPU 信息:
$ nvidia-smi -L
会看到自己有几个 NVIDIA 显卡设备, 他的标号是 0, 1, 2等等.
在网上搜了搜, 有一个临时的方法是, 在 python 代码里加入:
>>> import os
>>> os.environ['CUDA_VISIBLE_DEVICES'] = "0" #这个让 CUDA 可以连接到你的显卡
这个方法是有效的, 此外, 还搜到了一个方法可以不用在 python 代码里添加就能解决这个问题, 终端里执行:
$ sudo apt-get install nvidia-modprobe
最后大功告成啦~
总结: 安装的过程其实都不困难, 没想到最困难的是下载的过程...一把辛酸泪啊