歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu15.10_64位安裝Theano+CUDA7.5詳解

Ubuntu15.10_64位安裝Theano+CUDA7.5詳解

日期:2017/2/28 13:50:03   编辑:Linux教程

嘗試了網上的各種方法,重裝了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的話,就不多說了。

  1. sudo apt-get update #更新源,如果更新速度比較慢的話或者出現未找到軟件包……,建議如下修改:
  2. sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #在終端中執行下面命令備份源
  3. 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,刷新一下源。
  4. sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose g++ libopenblas-dev git #安裝依賴包
  5. sudo pip install Theano #等安裝完就好了(我在執行這一步時,總是提示找不到相應的安裝信息,我才用的git方式進行安裝的,安裝命令如下:先進入~(home)目錄cd ~,再進行安裝 git clone git://github.com/Theano/Theano.git,大約49M,然後進入cd Theano,執行python setup.py develop –user(同樣是兩個-),這樣就安裝好了)
  6. 測試numpy是否啟用了blas加速,進入python
    》>>>import numpy
    》>>>id(numpy.dot) == id(numpy.core.multiarray.dot)
    》>>>False (輸出False表示加速成功,如果輸出True,參考官方教程修改,理論上很少加速失敗。)
  7. 命令端下其他測試。(建議先做第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

Copyright © Linux教程網 All Rights Reserved