一 安装ubuntu14.10
1
.网上下载ubuntu14.10的iso文件,用光盘刻录大师刻到一张空光盘上,用光盘安装
2
开机按F12,用光盘引导系统安装
3
安装完毕后配置网络
System Settings->Network->options
将自动获取IP改为手动,配置IP地址等信息
不需要修改任何配置文件信息
4
更新源以及安装常用软件
sudo apt-get update
sudo apt-get install openssh-server
sudo apt-get install vim
二 安装theano
1
按照http://deeplearning.net 上面的教程
http://deeplearning.net/software/theano/install_ubuntu.htm是l在ubuntu上安装theano的教程的具体网址
后面安装theano的步骤和上面网址的教程完全一样
2
ubuntu14.10上面已经安装了python2.7 就不用再安装了,下面直接安装python的一些常用库
sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose g++ libopenblas-dev git3
通过pip安装theano
sudo pip install Theano4
进行测试
python -c "import numpy; numpy.test()"
python -c "import scipy; scipy.test()"
python -c "import theano; theano.test()"
三 安装CUDA
很多博客的教程都是通过在nvidia官网上下载run后缀的程序安装CUDAtoolkit以及driver,但其中会遇到非常多问题,作者是直接通过命令行的方式安装CUDA的,其中大部分操作仍然是按照http://deeplearning.net/software/theano/install_ubuntu.htm上面的教程来的
1
首先下载toolkit
sudo apt-get install nvidia-current
sudo apt-get install nvidia-cuda-toolkit2
按照官网的教程,下面安装CUDA(好像就是显卡驱动)
sudo apt-get update
sudo apt-get install cuda但是第二个命令执行不了,应该是源中没有相应的软件,我加了一些常用的源的地址仍然没用
3
根据这个博客http://blog.csdn.net/abcjennifer/article/details/23016583
需要安装额外的库(NVIDIA官网上有)
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
删掉已有的NVIDIA的东西,并且拉黑名单
sudo apt-get remove --purge nvidia*
sudo nano /etc/modprobe.d/blacklist.conf
lacklist amd76x_edac
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
以上这几步到底有没有用我也不知道,反正我都做了
4
按照https://devtalk.nvidia.com/default/topic/714105/cuda-5-5-22-on-ubuntu-12-04-4-lts/的回答
通过更新源,获取CUDA并安装
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-331
三 测试是否能用GPU加速
教程依旧来自于http://deeplearning.net/
具体教程http://deeplearning.net/software/theano/tutorial/using_gpu.html
将下面的程序保存为check1.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' % iters, t1 - t0, 'seconds' print 'Result is', 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'
用CPU执行,在命令行中输入
sudo THEANO_FLAGS=mode=FAST_RUN,device=cpu,floatX=float32 python check1.py
得到结果
[Elemwise{exp,no_inplace}(
Looping 1000 times took 4.27561783791 seconds
Result is [ 1.23178029 1.61879337 1.52278066 ..., 2.20771813 2.29967761
1.62323284]
Used the cpu
用GPU执行,在命令行中输入
sudo THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python check1.py
得到结果
Using gpu device 0: GeForce 505
[GpuElemwise{exp,no_inplace}(
Looping 1000 times took 0.871930837631 seconds
Result is [ 1.23178029 1.61879349 1.52278066 ..., 2.20771813 2.29967761
1.62323296]
Used the gpu
可见GPU确实比CPU快了不少,而且这台机器上的基本上是最烂GPU,gtx505