我安裝的系統是ubuntu kylin 14.04,ubuntu 14.04也差很少同樣.個人目的是讓GPU能跑一些機器學習以及深度學習的框架,如theano html
1,卸載掉與nvidia相關的驅動以及舊版的cuda相關程序 python
sudo apt-get remove --purge nvidia* cuda*
2,到cuda官網下載新的cuda toolkit版本,我下的deb版的,也能夠下run版的,我裝的是時候是7.5版(2015.12.14.),你能夠試着進入字符界面(ctrl+alt+F1),安裝,也能夠直接在終端安裝主,我是選擇前者, linux
sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
安裝好倉庫以後,就能夠更新你的本地倉庫。 shell
sudo apt-get update
最後開始安裝cuda以及顯卡驅動 編程
sudo apt-get install cuda
安裝完後加入環境變量,這個有好幾種方法,我選擇在本用戶目錄下安裝,vim ~/.bashrc,在後面加入 ubuntu
$ 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>替換成~): vim
cuda-install-samples-7.5.sh <dir>
三,安裝bumblebee bash
若是你的電腦是兩顯卡,不知你會怎樣管理呢,我用的是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.