題記:從一開始不知道顯卡就是GPU(雖然是學計算機的,但是我真的不知道…腦殘如我也是醉了),到搞好所有這些環境前后弄了5天時間,前面的買顯卡、裝顯卡和裝雙系統見另一篇博客裝顯卡、雙系統,這篇主要記錄我怎么配置后面的環境,雖然中間重裝Ubuntu三次,后面安裝過程也沒差別。
基礎平台:64-bit,Ubuntu14.04
1.安裝NVIDIA驅動(參考技術文章,基本是復制啊,蟹蟹作者~)
(1) 在官網下載NVIDIA驅動,根據自己買的型號選擇下載,放到 /home/lvxia/ 目錄下面,我下載的是NVIDIA-Linux-x86_64-367.27.run.
(2) 屏蔽開源驅動 nouveau(原文章說“可以不編輯blacklist.conf,NVIDIA.run驅動程序可以自己停止其他開源驅動,但是需要重啟”)
sudo gedit /etc/modprobe.d/blacklist.conf
添加以下內容保存
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
(這里有一行空格)
(3) 刪除舊NVIDIA驅動
sudo apt-get --purge remove nvidia-*(需要清除干凈)
sudo apt-get --purge remove xserver-xorg-video-nouveau
(4) 重啟電腦。
(5) 按Ctrl + Alt +F1(F1~F6均可)到x-server, Ctrl+Alt+F7是返回
(6) 關閉圖形環境,否則驅動無法正常安裝
輸入用戶名密碼登錄,然后鍵入命令后執行(數字不能用小鍵盤輸入)
sudo service lightdm stop
成功關閉服務后將出現:lightdm stop/waiting
(7) 進入驅動所在的文件夾,這里就是/home/lvxia,執行
sudo sh NVIDIA*.run
原文章鏈接里的 sudo sh NVIDIA.run 執行失敗,鍵入用戶密碼。后面就一路Accept就可以~報錯The distribution-provided pre-install script failed!不必理會,繼續安裝。最重要的一步,安裝程序問你是否使用nv的xconfig文件,這里一點要選yes,否則在啟動x-window時不會使用nv驅動。
至此,安裝成功~
(8) 重啟 X-window 服務
sudo service lightdm start
查看顯卡是否裝好,運行
glxinfo | grep rendering
假如顯示"direct rendering: Yes",則已安裝。
原技術文章寫了另一PPA源方法,我沒有測驗過,就不貼了~~
2.安裝Theano、cuda支持
這里看了很多不錯的技術博客,但是因為沒有一個是完全適合我的情況的,也入了不少坑,所以我自己也記錄一個吧~
(1) Ubuntu-安裝-theano+caffe-超詳細教程
蟹蟹作者們~~
2.1 安裝Theano
(1) 預先安裝工具
sudo apt-get install -y python-dev python-pip python-nose gcc g++ git gfortran
(2) 安裝BLAS, LAPACK, ATLAS
sudo apt-get install -y libopenblas-dev liblapack-dev libatlas-base-dev
(3) 安裝NumPy
后面安裝的每一步測試為 0 errors,才能進行下一步~~時間都挺長的啊~
sudo pip install numpy
#進行測試。
python -c 'import numpy; numpy.test()'
也可以命令python進入—>import numpy—>numpy.test()。
(4) 安裝scipy
sudo pip install scipy
python -c 'import scipy; scipy.test()'
(5) 安裝Theano
sudo pip install Theano
sudo python -c 'import theano; theano.test()'
這個測試的時候遇到 ImportError:No module named nose-parameterized 錯誤,后來執行:
pip install nose_parameterized
再次測試就木有問題啦,等了好久~以上操作我都是參考博客2的,然后后面我按照他的操作裝cuda時,install libgl1-mesa-glx的時候出現依賴包問題解決不了,報以下錯誤:
The following packages have unmet dependencies:
unity-control-center: Depends:libcheese-gtk23(>=3.4.0) but it is not going to be installed
Depends:libcheese7(>=3.0.1) but it is not going to be installed
令人抓狂的錯誤提示,后面搞這個搞了一兩天,最后還是沒有正面解決這個問題,不更新/更新系統補丁、不換/換軟件源都不行,明明已經安裝了依賴的包,但是卻總提示包不被安裝,最后通過另一篇博客里介紹的方法安裝cuda了。。
2.2 安裝Cuda(參考博客3)
(1) 驗證電腦是否有顯卡支持
lspci | grep -i nvidia
我買的是GTX 960,窮人版本…
(2) 查看Linux的版本
uname -m && cat /etc/*release
(3) 查看gcc版本
gcc --version
(4) 下載nvidia cuda的倉庫安裝包nvidia-cuda,找到自己電腦對應系統對應版本。
注意選擇的是deb(network).
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_7.5-18_amd64.deb
直接下載到主目錄下了~~
(5) 安裝cuda軟件包
sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb
(6) 更新本地倉庫
sudo apt-get update
(7) 安裝cuda啦
sudo apt-get install cuda
原來的技術博客里說Ubuntu系統安裝好后不要更新系統補丁,原因見 博客3.
(8) 測試
echo 'export PATH=/usr/local/cuda-7.5/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc
這里最好重啟一下電腦,因為我按照操作后測試deviceQuery時一開始是不對的,重啟電腦后就好了~
2.3 驗證
(1) 查看NVCC編譯器的版本
nvcc -V i
(2) 查看顯卡的驅動版本
cat /proc/driver/nvidia/version
(3) 安裝cuda的示例代碼
cuda-install-samples-7.5.sh /home/lvxia/cuda
(4) 編譯代碼
cd cuda/NVIDIA_CUDA-7.5_Samples/
make
(5) 運行代碼
cd bin/x86_64/linux/release/ sudo ./deviceQuery sudo ./bandwidthTest
最后一行 result=pass表示通過~
3. 驗證環境
(1) 新建test.py,復制如下內容保存,(主目錄/home/lvxia下)
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')
(2)新建 .theanorc 設置GPU代替CPU運算(主目錄)
可以使用 gedit 打開,因為 vi 不太會操作。。復制如下內容到文件中保存。這個文件在home目錄下看不到,可以通過命令 ls –all 看到的~
[global] floatX=float32 device=gpu
(3) 運行test.py
python test.py
最后一行顯示 used the gpu 就對啦~
然后有句提示CNMEM is disabled, cuDNN not available, 資料說CNMEM可以不用管,Theano支持cuDNN(可選),但是Tensorflow必須要cuDNN,所以就裝cuDNN了。
(4) 安裝cuDNN
cuDNN是專門針對deep learning框架設計的一套GPU計算加速方案,首先需要注冊一下,然后才能下載cuDNN。
進入Downloads目錄
tar xvzf cudnn-7.5-linux-x64-v5.0-ga.tgz sudo cp cuda/include/cudnn.h /usr/local/cuda/include sudo cd -a cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
有個技術博客里說的問題我這里沒遇到。
再運行test.py,提示 CNMEM is disabled, cuDNN 5005對啦~!
后面發現了一些不錯的博客,沒有測試,貼在這后面看看 使用GPU和Theano加速深度學習、Theano、Lasagne、TensorFlow在Ubuntu支持GPU的安裝
end,happy~