NVIDIA Cuda 7.5 on Ubuntu 14.04 64 bits

關於在Linux上搭Cuda環境,做個筆記備忘。


1. 安裝GPU Driver

在Ubuntu中可以通過System Settings -> Software & Updates安裝:


詳細可參考https://help.ubuntu.com/community/BinaryDriverHowto/Nvidia 。裝好後,執行nvidia X server settings可以看到硬件信息,還可以進行相關設置(如雙顯示器等)。



不嫌麻煩的話也可以從官網下驅動來裝: http://www.nvidia.com/Download/index.aspx?lang=en-us 


2. 安裝CUDA Toolkit

從官網上選擇對應平臺的meta-data安裝包:https://developer.nvidia.com/cuda-downloads。然後安裝:
$ sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
比如在ubuntu平臺上就是:
$ sudo dpkg -i cuda-repo-ubuntu1404-7-5-local_7.5-18_amd64.deb
然後更新源和安裝CUDA Toolkit:
$ sudo apt-get update
$ sudo apt-get install cuda

然後編譯sample。默認toolkit安裝在/usr/local/cuda中,先進到/usr/local/cuda/bin中,執行以下命令安裝sample,<dir>爲安裝的目標目錄。

$ cuda-install-samples-7.0.sh <dir>
如:
$ cuda-install-samples-7.0.sh /home/jzj/source
再到安裝目標目錄中編譯:
$ cd /home/jzj/source/NVIDIA_CUDA-7.5_Samples

$ make

按官方文檔中運行以下sample可以測試CUDA是否work:

$ cd bin/x86_64/linux/release

$ ./deviceQuery

$ ./bandwidthTest


如果很不幸地哪步失敗了,可能就需要按官方文檔裏用runfile來裝了。

http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html#axzz3sm26mXcH 


3. 其它

要想利用N卡GPU來做通用計算,需要用CUDA Toolkit來開發。好在大多數時候領域相關的toolkit已經封閉好GPU和CPU backend。如Torch7在編譯時會通過cmake檢測CUDA環境,如果有的話就會編譯支持(http://torch.ch/docs/getting-started.html)。另外如Theano,只需按http://deeplearning.net/software/theano/install.html#gpu-linux上設置配置文件.theanorc即可:

[global]
device = gpu
floatX = float32

[cuda]
root=/usr/local/cuda

如果import theano時出現

Theano: CNMeM is disabled, CuDNN not available

的錯誤,請參照http://www.cnblogs.com/ZJUT-jiangnan/p/5532724.html的方法。注意其中的cnmem=1如果還是出錯的話就調成更小。比如:

[lib]
cnmem=0.8

安裝cuDnn可以參照http://deeplearning.net/software/theano/library/sandbox/cuda/dnn.html。簡單的說就是到Nvidia的官網(https://developer.nvidia.com/rdp/cudnn-download)下載安裝包安裝即可。


以上兩個安裝好後加載theano時會出現類似下面提示,就說明安裝成功了。

Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import theano
Using gpu device 0: GeForce GTX 970 (CNMeM is enabled with initial size: 80.0% of memory, cuDNN 5005)
>>> 

之後按官方網站上分別用CPU和GPU backend跑例程,可以看到針對該例子GPU計算在性能上有質的提升。

jzj@jlocal:~/code$ THEANO_FLAGS=mode=FAST_RUN,device=cpu,floatX=float32 python check1.py
[Elemwise{exp,no_inplace}(<TensorType(float32, vector)>)]
Looping 1000 times took 1.726703 seconds
Result is [ 1.23178029 1.61879337 1.52278066 ..., 2.20771813 2.29967761
1.62323284]
Used the cpu
jzj@jlocal:~/code$ THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python check1.py
Using gpu device 0: GeForce GTX 970
[GpuElemwise{exp,no_inplace}(<CudaNdarrayType(float32, vector)>), HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
Looping 1000 times took 0.442874 seconds
Result is [ 1.23178029 1.61879349 1.52278066 ..., 2.20771813 2.29967761
1.62323296]
Used the gpu

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章