在ubuntu14.10上安装theano并且使用GPU加速

一 安装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 git
3

通过pip安装theano

sudo pip install Theano
4

进行测试

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-toolkit
2

按照官网的教程,下面安装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}(), HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
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


你可能感兴趣的:(在ubuntu14.10上安装theano并且使用GPU加速)