Ubuntu14.04+CUDA7.5+theano

序言

最近找了不少资料,反反复复装了好几遍系统,最终搭好了theano的gpu计算环境。总结一下前面失败的原因,方便以后再安装,也给需要的人一些帮助吧。由于网上各种教程,看的也有点醉的,走了不少歪路。一开始都是baidu的,后来快放弃了,最后不甘心,改google就成功了(怒黑一把百度)。

配置

先说一下我的笔记本显卡吧,电脑4年前的。双显卡:

  • Intel(R) HD Graphics 4000

  • NVIDIA GeForce GT 630M

当然重点是有这块GT 630M,虽然它旧,但是还是能支持gpu计算的。你可以去这里查询自己设备是否支持gpu设备

安装 UBUNTU 14.04

我是装了双系统,win10+Ubuntu14.04,建议先装win10,这样就不用折腾启动项了,再去安装Ubuntu。Ubuntu建议装中文版,如果装英文版,强烈建议改一下库的源地址,不然bash下更新软件慢的要死(我12m的网速,下载速度只有几kb/s到10几kb/s,当时还以为网速问题,白等了好久)。具体安装可以参考网上教程,这个安装还是挺简单的。

下载RUN版本的CUDA 7.5 toolkit

不要去Nvidia网站下载你的显卡驱动,只要下载CUDA toolkit即可,这里提供了deb和run两种版本,建议下run版本吧。

屏蔽Nouveau驱动

之前找过不少教程,都没提到屏蔽Nouveau驱动,导致每次装完cuda,重启后就黑屏了,害我重装了两次。Nouveau驱动是Ubuntu下自带的显示驱动,会和你装的Nvidia驱动冲突,导致黑屏。

为了拒绝黑屏,我们这么做,输入命令

$ sudo gedit /etc/modprobe.d/blacklist.conf

文本中加入以下内容并保存

blacklist nouveau

blacklist lbm-nouveau

options nouveau modeset=0

alias nouveau off

alias lbm-nouveau off

如果是其他linux系统,加入下面

blacklist vga16fb

blacklist rivafb

blacklist nvidiafb

blacklist rivatv

关闭 X server

接下来要关闭X server(即Ubuntu的图形界面)。按下“ctrl+alt+F1”进入tty1,输入命令

 $ sudo service lightdm stop

安装CUDA 7.5 toolkit. (Driver, Toolkit, Samples)

先进入到你的.run目录文件下,由于在tty中,中文无法显示,我建议你先在自己的主目录下创一个英文名的文件夹。输入下面两条命令:

$ chmod a+x cuda_7.5.18_linux.run
$ sudo ./cuda_7.5.18_linux.run

然后一堆介绍吧,直接pass,回到问题的那一步:
仔细阅读问题,按照我的回答:

Do you accept the previously read EULA? (accept/decline/quit): accept

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 346.46? ((y)es/(n)o/(q)uit): y

Do you want to install the OpenGL libraries? ((y)es/(n)o/(q)uit)[ default
is yes ]: n

Install the CUDA 7.5 Toolkit? ((y)es/(n)o/(q)uit): y

Enter Toolkit Location [ default is /usr/local/cuda-7.5 ]: [Enter]

Do you want to install a symbolic link at /usr/local/cuda? ((y)es/(n)o/(q)uit): y

Install the CUDA 7.5 Samples? ((y)es/(n)o/(q)uit): y

Enter CUDA Samples Location [ default is /root ]: [Enter]

  • 注意!
    千万不要安装 OpenGL library. 它可能使你的显卡驱动产生错误。

重启

命令重启电脑

$ sudo reboot

添加PATH and LD_LIBRARY_PATH到.bashrc

首先输入

$ sudo gedit ~/.bashrc

然后加入以下内容并保存

export PATH=/usr/local/cuda-7.5/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda7.5/lib64:$LD_LIBRARY_PATH

输入下面这个命令使得配置生效

$ sudo source  ~/.bashrc

安装并更新 G++/GCC 编辑器

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential
$ gcc -v
$ make -v

配置 CUDA sample 并测试 deviceQuery

  • 这是为了测试你的cuda库是否正确安装

    $ cd NVIDIA_CUDA-7.5_Samples
    ~/NVIDIA_CUDA-7.5_Samples$ make 
    ~/NVIDIA_CUDA-7.5_Samples$ cd bin/x86_64/linux/release
    ~/release$ ./deviceQuery
    

    运行deviceQuery程序,查看输出结果(重点关注最后一行,Pass表示通过测试)。

  • 另外一种简单的测试方式

    $ nvcc -V
    

    nvcc: NVIDIA (R) Cuda compiler driver

    Copyright (c) 2005-2015 NVIDIA Corporation

    Built on Mon_Apr_4_22:59:02_CST_2016

    Cuda compilation tools, release 7.5, V7.5.15

    $ nvidia-smi 
    

    Ubuntu14.04+CUDA7.5+theano_第1张图片

  • 千万不要用这条“sudo apt-get install nvidia-cuda-toolkit”命令,这是条过时了的命令,会在你电脑上装上cuda5.5,会无法工作的,请按照我上面说的操作!

  • 如果没通过以上两种测试(任一),你的Nvidia cuda驱动和配置可能有问题。如果通过了,那恭喜你cuda成功装好了!

安装 Numpy, Scipy, Pip, Theano

  • 接下来安装python库和theano依赖的库,输入命令

    $ sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose g++ git
    
  • 安装theano

    $ sudo pip install Theano 
    

    倘若pip出现如下错误

    pip install yolk

    Downloading/unpacking theano

    Cannot fetch index base URL https://pypi.python.org/simple/

    Could not find any downloads that satisfy the requirement theano

    参考这里,原因如下

    This seems to be an issue with an old version of OpenSSL being incompatible with pip 1.3.1. If you’re using a non-stock Python distribution (notably EPD 7.3), you’re very likely to have a setup that isn’t going to work with pip 1.3.1 without a shitload of work.

    解决办法

    $ curl -O https://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz
    $ tar xvfz pip-1.2.1.tar.gz
    $ cd pip-1.2.1
    $ python setup.py install
    

安装OpenBlas

$ sudo apt-get install libopenblas-dev

生成 .theanorc 文件

“.theanorc. ” 文件包含theano库的配置信息,首先用下列命令新建 theanorc 文件

$ sudo gedit ~/.theanorc

加入以下信息并保存

[global]

device=gpu

floatX=float32

root=/usr/local/cuda-7.5

[nvcc]

fastmath = True

[blas]

ldflags = -lopenblas

[cuda]

root = /usr/local/cuda-7.5

测试Theano

  • 新建一个python 文件

    $ sudo gedit testing_theano.py
    

    复制并粘贴测试代码. 并保存 “testing_theano.py” 文件

    $ python testing_theano.py
    
  • 检查是否启用gpu

    如果看到下面一这句,你就已经成功了。

    Using gpu device 0: GeForce 630M


你可能感兴趣的:(深度学习)