转载请注明出处:http://www.cnblogs.com/buxizhizhoum/p/8086230.html html
环境:node
系统:ubuntu 16.04python
cpu:i5linux
gpu:gt920mgit
memory:8ggithub
disk:SSD 256gubuntu
1.安装显卡驱动 app
首先须要保证电脑有知足cuda要求的显卡,ubuntu通常安装完成后都会使用集成显卡,独立显卡并无充分利用。测试
ubuntu安装NVIDIA驱动还涉及到和原有驱动的冲突,这部分在网上比较多,也有些坑须要踩,能够本身搜索。this
安装nvida的驱动,须要屏蔽以前的驱动,操做不当会形成系统没法进入图形界面,这时候,能够ctrl + alt + F1进入字符界面,进行补救,网上在这一点说的比较多,就再也不多说了。
在知乎上看到一个安装nvidia驱动的方法,试了一下是能够用的,只是不知道是否是由于以前已经屏蔽了系统自带的驱动的缘故。
记在这里供你们参考:
进入:system setting -> software update -> additional drivers
select as the photo below and apply changes:
2.安装完驱动以后,安装cuda.
不一样的tensorflow支持不一样版本的cuda,在安装以前须要确认下载对应的cuda不然tensorflow没法调用cuda
a)准备工做:
检查gpu是否支持cuda:
lspci | grep -i nvidia
检查linux版本是否支持:
uname -m && cat /etc/*release
确认gcc是否安装:
gcc --version
确认内核头文件和开发环境:
uname -r
安装内核头文件:
sudo apt-get install linux-headers-$(uname -r)
b)开始安装:
下载对应版本的cuda tookit并安装(下载地址点这里),这里选择离线安装方式(注意,目前tensorflow最新版本,1.4,1.5只支持到cuda 8.0, nvidia官网最新安装包为cuda 9.1)。
若是是从新安装,请先卸载:
sudo apt-get --purge remove <package_name>
使用离线安装包安装cuda tookit:
sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub sudo apt-get update sudo apt-get install cuda # (若是以前安装过cuda, 这里须要指定版本号,不然仍是安装以前的版本,例如,安装cuda8.0使用:sudo apt-get install cuda-8-0)
3.安装cuDNN
下载对应版本的cuDNN并安装,下载地址点这里,目前tensorflow版本1.5,支持cuDNN6.0 .
下载cuDNN v6.0 Runtime Library for Ubuntu16.04 (Deb)和cuDNN v6.0 Developer Library for Ubuntu16.04 (Deb),使用:
sudo dpkg -i <安装包名称>
安装上述两个包,先安装runtime library,不然可能会有依赖问题。
4.安装tensorflow
这里使用Python virtualenv进行安装
先安装virtualenv:
sudo pip install virtralenv
创建虚拟环境的文件夹, 好比安装到tensorflow_evn:
mkdir tensorflow_env
建立虚拟运行环境: virtualenv <刚才创建的文件夹>, 即:
virtualenv tensorflow_evn
激活虚拟环境:
source tensorflow_evn/bin/active, 总之就是要运行虚拟环境中bin目录下的active文件。
安装tensorflow须要的包:
pip install numpy
安装tensorflow-gpu:
pip install tensorflow-gpu
5.测试安装是否成功:
若是刚才的虚拟环境尚未关闭,启动python,运行:
import tensorflow as tf op = tf.add(1.0, 2.0) # 进行加法运算 with tf.Session() as sess: print(sess.run(op))
更多示例代码,见:https://github.com/buxizhizhoum/machine_learning/tree/master/tf
若是已经关闭,从新激活虚拟环境:
source tensorflow_env/bin/active
而后运行python,运行上述代码。
若是能够运行成功,而且提示信息里面有提到gpu参与运算的信息,代表安装成功。
提示信息:
2017-12-22 15:01:58.555074: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA
2017-12-22 15:01:58.715769: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:892] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2017-12-22 15:01:58.716538: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Found device 0 with properties: name: GeForce 920MX major: 5 minor: 0 memoryClockRate(GHz): 0.993 pciBusID: 0000:01:00.0 totalMemory: 1.96GiB freeMemory: 1.31GiB
2017-12-22 15:01:58.716592: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1120] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: GeForce 920MX, pci bus id: 0000:01:00.0, compute capability: 5.0)
3.0
第一条信息不用管,这个是由于使用pip安装,而没有使用源码编译安装的缘由,tensorflow为了尽量好的兼容性,舍弃了cpu的一部分特性,经过编译安装能够解决,大概会有3倍左右的提高。
第三条便是说找到了GPU,而且打印了显存信息。
第四条代表建立了tensorflow的设备。
最下面的是运行的结果,代表gpu已经参与计算加速。
6.效果
进行gpu加速后,以前每次训练都占满的cpu如今只有一个核是满负荷的,运算速度有提高,可是没有网上说的20倍左右的提高,在mnist数字识别上,只比cpu块2~3倍,多是由于这个显卡比较通常,cuda算力只有3.5,是知足tensorflow使用gpu加速的显卡里面的底线,使用高端显卡应该会有更大的提高。