尝试了网上的各种方法,重装了N遍Ubuntu,今天终于装好了,记录下来,与自己或者有需要的朋友一起分享。
介绍一下我的环境:GTX425M,笔记本win7_64+ubuntu15.10_64双系统,cuda7.5。
首先声明,我是安装完Ubuntu 15.10后,没有sudo apt-get update,没有安装其他的软件,没有disable Nouveau,直接安装的cuda,再安装的Theano。下面介绍一下我的安装过程及遇到的问题和解决方案。
第1步:下载cuda安装包。下载页面:https://developer.nvidia.com/cuda-downloads 从中选择适合ubuntu的deb安装包。也就是linux–>x86_64–>Ubuntu–>15.04–>deb(local). 大约1.9G.假设下载到 ~/Downloads/cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64.deb
第2步:cd ~/Downloads(进入下载的目录),执行sudo dpkg -i 你的下载包
第3步:执行sudo apt-get update
第4步:执行sudo apt-get install cuda
第5步:执行sudo gedit ~/.bashrc,在最后面,64位的话粘贴以下内容:
export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
32位的话,粘贴以下内容:
export PATH=/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib:$LD_LIBRARY_PATH
不要忘了执行source ~/.bashrc 使其立即生效
解释一下,就是在PATH里边添加cuda-7.5的路径,进入/usr/local/可以看到有一个cuda,还有一个cuda-7.5,这里填写cuda-7.5的路径
第6步:这个时候基本就安装完了,剩下的就是进行配置。这个时候可以执行nvcc -V(注意大写V)检测一下是否有内容输出,如果没问题的话,应该有以下类似输出
nvcc: NVIDIA(R) Cuda compiler driver
copyright (c) 2005-2015 NVIDIA Corporation
Built on ………………
Cuda compilation tools, release 7.5, V7.5.17
执行nvidia-settings会弹出显卡配置的界面,至少7个大项,其中有一项叫GPU-0(GeForce GT 425M),如果能看到自己的显卡的话,应该就算安装成功了。下面进行配置。
第7步:使用自带的samples进行GPU运算测试。进入到cuda-7.5的samples目录,一般都是cd /usr/local/cuda-7.5/samples,然后会有一个Makefile文件,执行命令sudo make,不出意外地话,会出现带有红颜色的error错误,大概是这样的:unsupported GNU version! gcc versions later than 4.9 are not supported! 意思也很明显了,就是gcc的版本高于4.9,Cuda不支持。解释一下:ubuntu15.10自带的gcc是5.2.1,可以通过gcc –version(两个-)查看,但是cuda不支持超过4.9.0的gcc编译器。要么安装一个低版本的编译器,要么把cuda的这个限制给去掉。我选择的是后者,而且尚未出现其他问题。
解决方案如下:
sudo cd /usr/local/cuda/include/ #进入到头文件目录cuda(而不是cuda-7.5);
sudo cp host_config.h host_config.h.bak #备份原头文件;
sudo gedit host_config.h #编辑头文件;
ctrl+F查找4.9出现的地方,大约位于115行,在第113行处应该显示if _GNUC_>4 || (_GNUC_ == 4 && _GNUC_MINOR_ > 9),因为我们的是5.2.1,因此,把上面的2个4都改成5就ok了,保存退出。
第8步:重新执行第七步中的sudo make指令(查看是否处于/usr/local/cuda-7.5/samples目录中),这个时候,应该就可以编译了。这个过程会比较长,让他在哪编译一会,剩下的时间可以用来安装Theano。
第9步:安装Theano的话,就不多说了。
- sudo apt-get update #更新源,如果更新速度比较慢的话或者出现未找到软件包……,建议如下修改:
- sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #在终端中执行下面命令备份源
- sudo gedit /etc/apt/sources.list #运行命令修改
删除里面所有的内容,增加下面的Ubuntu 15.10源
deb http://mirrors.hust.edu.cn/ubuntu/ wily main restricted universe multiverse
deb http://mirrors.hust.edu.cn/ubuntu/ wily-security main restricted universe multiverse
deb http://mirrors.hust.edu.cn/ubuntu/ wily-updates main restricted universe multiverse
deb http://mirrors.hust.edu.cn/ubuntu/ wily-proposed main restricted universe multiverse
deb http://mirrors.hust.edu.cn/ubuntu/ wily-backports main restricted universe multiverse
deb-src http://mirrors.hust.edu.cn/ubuntu/ wily main restricted universe multiverse
deb-src http://mirrors.hust.edu.cn/ubuntu/ wily-security main restricted universe multiverse
deb-src http://mirrors.hust.edu.cn/ubuntu/ wily-updates main restricted universe multiverse
deb-src http://mirrors.hust.edu.cn/ubuntu/ wily-proposed main restricted universe multiverse
deb-src http://mirrors.hust.edu.cn/ubuntu/ wily-backports main restricted universe multiverse
然后执行 sudo apt-get update,刷新一下源。- sudo apt-get install Python-numpy python-scipy python-dev python-pip python-nose g++ libopenblas-dev git #安装依赖包
- sudo pip install Theano #等安装完就好了(我在执行这一步时,总是提示找不到相应的安装信息,我才用的git方式进行安装的,安装命令如下:先进入~(home)目录cd ~,再进行安装 git clone git://github.com/Theano/Theano.git,大约49M,然后进入cd Theano,执行python setup.py develop –user(同样是两个-),这样就安装好了)
- 测试numpy是否启用了blas加速,进入python
》>>>import numpy
》>>>id(numpy.dot) == id(numpy.core.multiarray.dot)
》>>>False (输出False表示加速成功,如果输出True,参考官方教程修改,理论上很少加速失败。)- 命令端下其他测试。(建议先做第10步,把theano配置文件配置好后,再测试一下内容)
NumPy (~30s): python -c “import numpy; numpy.test()” #最好errors=0,failures=0
SciPy (~1m): python -c “import scipy; scipy.test()” #最好errors=0,failures=0
Theano (~30m):python -c “import theano; theano.test()” #时间太长,没测试完。
第10步:编辑theano配置文件。
sudo gedit ~/.theanorc
将以下内容写入:
[global]
floatX=float32
device=gpu
[cuda]
root=/usr/local/cuda-7.5
第11步:在python中,import theano时,有可能会出现以下问题:
问题1. cuda is installed but device gpu is not available
解决1:重新检查一下(sudo vim ~/.bashrc)中的$PATH中的路径是否配置正确,包括LD_LIBARAY_PATH。一般这个问题是由于nvcc complier不能编译造成的,解决了host_config.h里边的问题后,应该不会出现,如果有出现,可以把详细输出信息贴出来,讨论一下。
问题2. failed to compile cuda_ndarray.cu
解决2:cd /etc/ld.so.conf.d,然后编辑sudo gedit cuda.conf,此文件应该是不存在的,所以打开是空的,将 /usr/local/cuda-7.5/lib64 写进去,并保存。然后sudo ldconfig。ok,再回去测试,应该就没什么问题了。import theano后,应该会显示你的GPU信息。例如我的显示:Using gpu device 0: GeForce GT 425M(CNMem is disabled)
至此,大功告成。GPU加速成功。可以把经典的GPU测试代码保存至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 range(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 vim ~/.theanorc,将其中的gpu修改为cpu就可以了。
如果还有其他什么问题,可以留言讨论,不一定适合所有人,所有情况。
Ubuntu下安装Torch并配置CUDA和cuDNN http://www.linuxidc.com/Linux/2016-07/133208.htm
Ubuntu 16.04系统下CUDA7.5配置Caffe教程 http://www.linuxidc.com/Linux/2016-07/132859.htm
Ubuntu 14.04安装Nvidia CUDA7.5并搭建Python Theano深度学习开发环境 http://www.linuxidc.com/Linux/2015-09/123562.htm
Ubuntu下CUDA(含GPU卡驱动)安装过程 http://www.linuxidc.com/Linux/2015-07/120456.htm
Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明 http://www.linuxidc.com/Linux/2015-04/116444.htm
Ubuntu 14.04 安装配置CUDA http://www.linuxidc.com/Linux/2014-10/107501.htm
Ubuntu 12.04配置NVIDIA CUDA5.5实录 http://www.linuxidc.com/Linux/2014-10/107502.htm
Ubuntu安装Theano+CUDA http://www.linuxidc.com/Linux/2014-10/107503.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134144.htm