1、安装Ubuntu系统
这个只要用优盘做一个启动盘就好,然后安装就好了,为了之后cuda安装顺利,这里特别提示/tmp挂载点尽量大一点,我也不知道具体需要多大,反正我给了100G。
2、卸载和安装显卡驱动
为了之后安装NVIDIA显卡驱动,需要把Ubuntu系统自带的两个驱动给卸载掉
(1)屏蔽集显nouveau,编辑黑名单文件
sudo gedit /etc/modprobe.d/blacklist.conf
(2)在文件末尾加入
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
(这里有一行空格)
(3)删除旧的NVIDIA驱动
sudo apt-get --purge remove nvidia-*
sudo apt-get --purge remove xserver-xorg-video-nouveau
(4)安装依赖项
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
(5)重启Ubuntu,按住Ctrl+Alt+F1进入x-server, Ctrl+Alt+F7是返回
(6)关闭图形环境,否则驱动无法正常安装
输入用户名密码登录,然后键入命令后执行(数字不能用小键盘输入)
sudo service lightdm stop
成功关闭服务后将出现:lightdm stop/waiting
(7)进入驱动所在的文件夹,执行
sudo sh NVIDIA-Linux-x86_64-367.57.run
后面就一路Accept就可以~报错The distribution-provided pre-install script failed!不必理会,继续安装。最重要的一步,安装程序问你是否使用nv的xconfig文件,这里一点要选yes,否则在启动x-window时不会使用nv驱动。
至此,安装成功~
(8)重启 X-window 服务
sudo service lightdm start
查看显卡是否装好,运行
glxinfo | grep rendering
假如显示”direct rendering: Yes”,则已安装。
或者进入系统输入
sudo nvidia-smi
如果看到了显卡和GPU的信息则表示安装成功
(5)-(8)可以用PPA方法,另一PPA源方法参考博客2
3、CUDA安装
(1)CUDA是NVIDIA的编程语言平台,想使用GPU就必须要使用CUDA。首先在官网 https://developer.nvidia.com/cuda-downloads 下载CUDA(.run形式),我下载的是cuda_8.0.44_linux.run
(2)执行安装命令,你下载的是哪个版本就写对应的CUDA版本
sudo sh cuda_8.0.44_linux.run
(3)一路回车看完一堆废话,遇到安装显卡驱动时选择no,其他都选择默认和yes
(4)配置PATH环境
echo 'export PATH=/usr/local/cuda-8.0/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
或者直接用以下命令把引号里的话编辑进去
sudo gedit ~/.bashrc
4、验证
(1) 查看NVCC编译器的版本
nvcc -V
(2) 查看显卡的驱动版本
cat /proc/driver/nvidia/version
或者
nvidia-smi
5、安装python、theano、tensorflow、tensorlayer
sudo apt-get install python-pip python-dev
sudo pip install --upgrade pip
sudo pip install theano
sudo pip install tensorflow
sudo pip install tensorlayer
对于Theano的话需要在根目录新建一个.theanorc
sudo gedit ~/.theanorc
写入以下内容
[global]
floatX=float32
device=gpu
[cuda]
root=/usr/local/cuda/bin/
[nvcc]
flags=-D_FORCE_INLINES
新建test.py
from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time
vlen = 10 * 30 * 768 # 10 x #cores x # threads per core
iters = 1000
rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in xrange(iters):
r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
print('Used the cpu')
else:
print('Used the gpu')
如果显示used the gpu就说明配置成功
6、安装cudnn
去cudnn官网下载cudnn-8.0-linux-x64-v5.1.solitairetheme8,放到根目录下,进行解压,之后拷贝到cuda文件夹
tar xvzf cudnn-8.0-linux-x64-v5.1.solitairetheme8
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/lib64/libcudnn*
在运行test.py就可以看到cudnn可以用了
7、安装tensorflow
使用pip安装tensorflow可能安装的是仅有CPU的版本,所以去github上下载最新编译的GPU版本whl文件,通常tensorflow更新很快,所以一般是对应了最新的cuda版本,如果不行的话就自己网上查阅教程进行源码安装再编译吧,我台式机里面现在的版本就是对应了文档中cuda8.0和cudnn5.1版本的