我安装的系统是ubuntu kylin 14.04,ubuntu 14.04也差不多一样.我的目的是让GPU能跑一些机器学习以及深度学习的框架,如theano
1,卸载掉与nvidia相关的驱动以及旧版的cuda相关程序
sudo apt-get remove --purge nvidia* cuda*
2,到cuda官网下载新的cuda toolkit版本,我下的deb版的,也可以下run版的,我装的是时候是7.5版(2015.12.14.),你可以试着进入字符界面(ctrl+alt+F1),安装,也可以直接在终端安装主,我是选择前者,
sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
安装好仓库之后,就可以更新你的本地仓库。
sudo apt-get update
最后开始安装cuda以及显卡驱动
sudo apt-get install cuda
安装完后加入环境变量,这个有好几种方法,我选择在本用户目录下安装,vim ~/.bashrc,在后面加入
$ export PATH=/usr/local/cuda-7.5/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
设置完毕之后,你还可以选择是否安装cuda附带的示例代码(<dir>表示你要安装的位置,你可以将<dir>替换成~):
cuda-install-samples-7.5.sh <dir>
三,安装bumblebee
如果你的电脑是两显卡,不知你会怎样管理呢,我用的是bumblebee,如果你也是一样的电脑,可以一试,ubuntu安装比较简单
sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia
可看看如下文章:使用 Bumblebee 控制 NVIDIA 双显卡(Ubuntu)
这时你最好重启或注销一下电脑
四,测试验证
待你重新开机后,就以后一些验证工作
1,查看nvcc编译器的版本,nvcc是GPU的编译器
nvcc -V i
2,查看显卡的驱动版本,这个得先让你的独立显卡的gpu跑起来才可以看到
optirun python
#另一个终端
cat /proc/driver/nvidia/version
你如果用 lspci |grep -i VGA看独立显卡的状态,前面可能不一样,没开独立显卡是ff,开了后是a1
3,测试集显与独显是否正常,先测试集显,再测试独显
glxgears
你会看到如下结果:
optirun glxgears
很明显,独立显卡的速度要比集显要快的多
4,编译cuda程序,在sample目录下,make编译程序,网上人说编译并运行通过就没问题了,我一开始没了没有通过,虽然可执行文件是可以执行的,后面我加了个环境变量
export LD_LIBRARY_PATH=/usr/lib/nvidia-352:$LD_LIBRARY_PATH
运行编译出来的./deviceQuery,出下面结果
你也可以跑一下,simple下面的其他程序,如果大多没问题的话,就证明还是基本安装成功的.
如果你是做cuda编程的,你可以如这个网址中入门开始学习CUDA在线学习
四,theano测试
因为我的主要目的是跑python代码,我之前已装了theano,所以只测试theano能在GPU上跑吗.
有两种方法运行GPU,一是在那个~/.theanorc配置文件,加入
[global]
floatX=float32
device=gpu
#二,是运行程序时,前面加入说明
THEANO_FLAGS=floatX=float32,device=gpu python /usr/local/lib/python2.7/dist-packages/theano/misc/check_blas.py
会出测试结果.
也可以把下面的代码存为test.py,用cpu与gpu跑一下,出来的显示结果与时间都不一样.
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')
注意,我也要试着在台式机上装过,显卡是GeForce GTX 750Ti,我是用的网络安装的,安装后配置一开PATH,CUDA_ROOT,就可以重启,这样就可以了。如果你想装cudnn的话,建议还是用在显卡比较好的电脑上,我的z470电脑装了用不了,这个750Ti的显卡可以用,不过也不能用当下最新的5.0版本,只能用4.0的,安装的步骤如下:
tar -xzvf cudnn-7.0-linux-x64-v4-prod.tgz
chmod -R 777 cuda #其实不用这样,我只是不想引起其他麻烦
sudo cp lib64/* /usr/local/cuda/lib64/
sudo cp include/* /usr/local/cuda/include/
sudo ldconfig #这样就可以了
五,可借鉴文档
折腾记要——Ubuntu 14.04系统安装Nvidia CUDA7.5并搭建Python Theano深度学习开发环境
Ubuntu12.04配置NVIDIA cuda5.5经验帖
Caffe+Ubuntu 15.04+CUDA 7.0新手安装配置指南
六,可能的问题
FATAL: Module nvidia_uvm not found.