从Windows7到Win+Ubuntu14.04双系统到安装CUDA,Theano。。话说工欲善其事,必先利其器。。经历了6天的潜心修炼,终于把我这器修炼成正果。。。。安装过程中真是被虐的不要不要的。。装完之后才发现so easy。在此非常感谢舍友的帮助。。@@@
1. 准备工作
个人计算机配置
CPU:Intel Core i5-4570 @3.20GHz
内存:4GB
显卡:
集显:Intel HD Graphics 4600
独显:NVIDIA Quadro K620
其中Windows 7下双系统安装Ubuntu14.04过程可参考以下链接
http://jingyan.baidu.com/article/76a7e409bea83efc3b6e1507.html
2. 下载CUDA 7.5安装包
在NVIDIA官方网站下载CUDA 7.5和GPU Deploymet Kit安装包:
cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
https://developer.nvidia.com/cuda-downloads/
cuda_352_39_gdk_linux.run
https://developer.nvidia.com/gpu-deployment-kit
(CUDA 7.5的包强烈推荐下载.deb(local)版的,.run的要安装各种依赖库,同时要切换到tty,关闭lightdm。gdk去官网下载和系统匹配的版本)
3. 安装CUDA 7.5
1. 调出终端Ctrl+Alt+T
2. 安装CUDA7.5:
切换到安装文件目录下,执行指令
sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install cuda
3. 安装gdk
sudo cuda_352_39_gdk_linux.run
4. 重启
(注意gdk里包含nvcc编译器,如果不装的话,在使用theano的时候会提示找不到nvcc编译器,系统提示的的gdk一定不要安装,这个gdk包含CUDA安装程序,会将CUDA自动降为5.5版本的)
5. 检查驱动安装情况
检查NVIDIA显卡是否正常
nvidia-smi
检查NVIDIA相关包安装是否正常
nvidia-smi
检查nvcc编译器是否安装正常
nvcc –version
4. 安装Theano 0.7
1. 预安装后面会用到的工具如编译器等
>sudo apt-get install -y python-dev python-pip python-nose gcc g++ git gfortran
2. 安装BLAS, LAPACK, ATLAS等
>sudo apt-get install -y libopenblas-dev liblapack-dev libatlas-base-dev
3. 安装numpy:
sudo pip install numpy
完成后进入Python,运行:
import numpy
numpy.test()
测试结果OK后再继续下一步安装
4. 安装scipy:
sudo pip install scipy
完成后进入Python,运行
import scipy
scipy.test()
测试结果OK后再继续下一步安装
5. 安装theano
sudo pip install theano
完成后进入Python,运行
import theano
theano.test()
测试结果OK。(这一步测试结果有出错的情况,但好像不影响后面的使用)
5. 终极测试
配置Theano使用GPU进行并行计算,验证环境搭建是否成功。
1. 新建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')
2. 在用户目录下新建.theanorc配置文件,设置采用GPU替代CPU进行运算(注意是用户目录 /home/用户名/,不是test.py文件所在目录):
新建配置文件
sudo vi ~/.theanorc
添加如下内容:
[global]
floatX=float32
device=cpu
3. 运行test.py测试文件:
首先是默认的使用cpu进行计算,查看运行结果,然后将配置文件.theanorc里的cpu改为gpu,再进行测试,对比两次运行结果会发现,使用gpu计算明细快于cpu。
至此,安装OK。