ubuntu安装gpu版tensorflow(注意所安装的版本,版本需匹配才能安装成功,文章中会提到)
1.安装nvidia显卡驱动
首先安装nvidia驱动,很多教程都说要卸载原来的驱动,安装官方最新的,还要禁用图形功能,退到shell界面进行安装。经博主实际测试发现完全没必要,如果卸载重装还可能导致图形界面无法启动的情况,经验不足的话甚至无法修复,只能重装系统。因此完全没必要,直接利用ubuntu的软件更新器选择nvidia驱动即可。
如下图所示,打开software & updates→ Additional Drivers ,初次打开经过几分钟的等待会显示系统推荐的驱动,选择其推荐的进行安装即可。
然后命令行执行:
nvidia-smi
看到以上信息表示安装成功。
2.安装cuda8.0
去官方下载cuda8.0,https://developer.nvidia.com/cuda-downloads?target_os=Linux,官方的是9.1最新版,历史版本在Legacy Releases下,点击进入选择CUDA Toolkit 8.0 GA1下载。(至于为什么不安装最新的版本,是因为9.1版本要求驱动版本至少是390的(please ensure that you have the latest NVIDIA driver R390 installed. The latest NVIDIA R390 driver is available at: www.nvidia.com/drivers),而通过上面的图片可以看到博主的驱动是384的,因此不能安装9.1版本,当然升级驱动即可安装更高版本的cuda)
----------------------------------------------
2020.04.23更新:
通过官方文档可知:driver version >= 384.81的可以安装cuda9.0的.这样本机最高就可以安装tensorflow1.12版本了.不过没啥必要用docker就好了.
----------------------------------------------
然后执行:
sudo ./cuda_8.0.44_linux.run
前面会显示大量的协议,按住enter不放直到跳过协议,然后按照提示选是或否即可。
注意:在遇到Install NVIDIA Accelerated Graphics Driver for xxx时,一定要选no,因为已经安装了显卡,就无需再安装了。其他都选默认即可,没有默认就选yes
安装结束后,修改环境变量/etc/profile文件,追加如下内容:
export PATH=$PATH:/usr/local/cuda/bin export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
保存退出,执行:source /etc/profile使环境变量生效
然后进入cuda 8.0 sample目录(默认在~目录下),依次执行:
cd 1_Utilities/deviceQuery make -j4 ./deviceQuery
没有问题出现如下信息:
可以看到Detected 1 CUDA Capable device(检测到一个可用CUDA设备),即安装成功。
3.安装cudnn6.0
去https://developer.nvidia.com/rdp/cudnn-archive 下载cudnn v6.0 for CUDA8.0(需要注册),如图所示选择cuDNN v6.0 Library for Linux
解压后执行:(cp -a 会保存软连接,否则还要手动创建)
sudo cp -a cuda/include/cudnn.h /usr/local/cuda/include/ sudo cp -a cuda/lib64/libcudnn* /usr/local/cuda/lib64/ sudo chmod a+r /usr/local/cuda/include/cudnn.h sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
注:这里一定要选择6.0版本,否则后面会出现版本不匹配的问题,报错:ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory(即tensorflow1.3以上版本要求使用cudnn6.0版本)
4.pip安装tensorflow1.4
下载tensorflow-gpu=1.4.0,https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.4.0-cp27-none-linux_x86_64.whl,将链接最后的版本号1.4.0换成对应的版本可下载指定的版本。这里之所以先下载是因为直接执行sudo pip install tensorflow-gpu=1.4.0 的下载速度特别慢,许多pip包安装下载都特别慢,推荐大家先去网上下载.whl文件再用pip安装。或者可以将pip的镜像修改成清华大学的。修改方法如下:
①临时修改:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu
②永久修改:
vim ~/.pip/pip.conf ,追加如下内容:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
注:tensorflow1.5以上仅支持cuda9,因此只能安装1.4版本的,否则报错:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
下载完毕之后执行:
sudo pip install tensorflow_gpu-1.4.0-cp27-none-linux_x86_64.whl
5.验证
写个简单的python脚本,只要import tensorflow不报错即安装成功。然后就可以将之前写的deep learning训练代码用支持gpu的tf运行,可以感觉明显的提速。
跑经典的cifar10分类算法(http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/deep_cnn.html),使用tensorflow-cpu每个batch2~3秒,使用gpu以后每个batch0.3~0.5秒(根据配置有所不同,但都会有明显的提速)。
配置成功后证明cuda可用,博主还成功安装了pytorch,在官网直接执行其推荐的命令即可。
其他的深度学习框架也可参考相关资料成功配置。