环境:
Ubuntu16.04
python3.5(自带)
NVIDIA GTX 960
本文需要安装的内容有Cuda8.0和Cudnn5.1和tensorflow-gpu。
一定要注意,cuda版本8.0,cudnn版本5.1,tensorflow-gpu版本1.2.1 ,NVIDIA驱动版本384.*
之前下载最新的版本,比如cuda9+,cudnn6+,tensorflow1.8,驱动390+之类的,怎么都调不通,各种奇葩问题,折腾了两天,最后老老实实下载低版本的,完美解决,真是血的教训啊。当然不是说以上版本一定是绑定的,不会的了,比如在windows下,我使用的Python3.6配置的gpu,详情可以参考我的另一篇文章,因为主要还是在linux下玩,所以windows下的没有一步步列出操作,其实很简单,具体翻上篇吧,文章给出了链接。好了,废话少说,直接上干货。
检查你的显卡是否可以安装Cuda
首先,你要有一块NVIDA的显卡,然后性能评分要大于3.0
显卡性能检测请看这里打开terminal输入以下指令:
然后在系统设置->软件更新->附加驱动->选择nvidia驱动(384)->应用更改
或者直接去官网下载:
首先去官网(http://www.nvidia.com/Download/index.aspx?lang=en-us)查看适合自己显卡的驱动:
然后下载要找的版本即可。
打开终端先删除旧的驱动
sudo apt-get purge nvidia*
2.2禁用自带的 nouveau nvidia驱动 (important!)
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
并在文件中添加如下内容:
blacklist nouveau
options nouveau modeset=0
然后在更新一次 sudo update-initramfs -u
首先我们需要结束x-window的服务,否则驱动将无法正常安装,通过以下命令实现。
sudo service lightdm stop
然后切换到tty1控制台:Ctrl+Alt+F1即可
安装驱动
cd /home/katherine/
sudo sh ./NVIDIA*.run
重新启动X-Window: sudo service lightdm start
,然后Ctrl+Alt+F7进入图形界面
检查
nvidia-smi
按装官方教程,我们可以应该安装Cuda8.0和Cudnn V5.1
(由于Cuda7.5最高支持15.04,所以不推荐安装Cuda7.5,虽然也能运行。另外Cuda8.0一定要安装Cudnn5.1,版本必须匹配)
大家可以到这里来下载Cuda8.0
如图,打开主页,列出的永远是最新的版本,注意看清版本,如上是cuda9了,千万别手贱去下载了这个最新的,否则无数坑等着跳吧。
正确的打开方式如下:点击 Legacy Release,选择对应版本。
.gcc降版本
ubuntu的gcc编译器是5.4.0,然而cuda8.0不支持5.0以上的编译器,因此需要降级,把编译器版本降到4.9:
在terminal中执行:
sudo apt-get install g++-4.9
然后和装驱动一样的操作,Alt+F1进入文本界面安装。
cd 到你要下载的目录,执行
sudo sh cuda_8.0.44_linux.run
然后你会看到
Do you accept the previously read EULA?
accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
(y)es/(n)o/(q)uit: n
后面的基本都是Yes了
安装完毕,输入
sudo service lightdm start
回到图形界面。
到这里,成功了一小半,这里必须设置下环境变量,否则后面TensorFlow运行失败
sudo vi ~/.bashrc
打开配置文件,最后们加入以下几行
OK,wq保存下完事。然后,终端运行: source~/.bash_profile#使更改的环境变量生效1到这里下载。
当然你先得注册一个NVIDA账号,添一堆问卷。
选择 Download cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0下载
cuDNN v5.1 Runtime Library for Ubuntu16.04 Power8 (Deb)
安装
或者下载tar,解压后会得到一个Cuda文件夹,复制到Cuda-8.0文件夹中
sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*
终于部署好环境了,现在进入正题,tensorflow的安装前,请先更新下pip,
sudo apt-get install python-pip python-dev # for Python 2.7
sudo apt-get install python3-pip python3-dev # for Python 3.n
通过调用以下命令之一来安装TensorFlow
pip install tensorflow # Python 2.7; CPU support (no GPU support)
pip3 install tensorflow # Python 3.n; CPU support (no GPU support)
pip install tensorflow-gpu # Python 2.7; GPU support
pip3 install tensorflow-gpu # Python 3.n; GPU support
也可以指定版本,对,必须指定下,不然可能还有坑等着。
pip3 install tensorflow-gpu==1.2.1
最后是测试了。
完成安装开始验证
在terminal中输入:
python3
然后输入程序验证:
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
如果安装成功,则会显示 Hello, TensorFlow!
最后,最坑的一点来了,上述一切都正常的情况下,使用tensorflow-gpu没有任何问题,但是打开pycharm ,眼看着配置都是正确的,但是一旦运行,就会报错,
ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory
又是一番折腾,最终还是找到了解决方法。
https://blog.csdn.net/appleml/article/details/76922476
给出解决方案:
pycharm 菜单栏Run-Edit Configurations
把cuda的路径添加到environment variables
修改Environment Variables:
参考链接:
1.https://blog.csdn.net/qq_30520759/article/details/78947034
2.https://segmentfault.com/a/1190000008234390
3.https://www.aliyun.com/jiaocheng/515113.html
4.https://www.cnblogs.com/luruiyuan/p/6660142.html