注:本文原創,做者:Noah Zhang (http://www.cnblogs.com/noahzn/)html
決定加入深度學習的大軍,感謝導師給配了臺新設備!第一次接觸服務器並配置開發環境,整個過程當中遇到很多坑,可是好在最後都成功解決了。不過有點擔憂的是,Tesla k40c 默認還要一個輔助供電,我目前只插了8pin的供電接口,6pin的供電接口沒插,不知道後續計算會不會受影響……內心怕怕的……python
首先報一下硬件配置:linux
服務器:聯想TD350:c++
CPU:Intel® Xeon(R) CPU E5-2620 v4 @ 2.10GHz × 32 git
內存:16G × 2條github
硬盤:2TBubuntu
顯卡:Tesla K40cwindows
1、安裝Ubuntu16.04 LTS 64bit服務器
自行下載安裝程序iso文件,用ultraISO製做成優盤啓動盤。安裝。oop
2、安裝CUDA8.0
Tesla K40c 是純計算卡,切換至這款顯卡後,沒法顯示GUI界面,按照同窗的說法「再裝塊其餘的獨顯做爲顯示」,雖然可行,可是白白浪費一塊獨顯。按照如下方法能夠作到平時顯示用Intel自帶集顯,運算時再切換至Tesla K40c。
1. 檢查是否正確識別顯卡:
在Terminal中輸入:
lspci | grep -i nvidia
顯示:
81:00.0 3D controller: NVIDIA Corporation GK110BGL [Tesla K40c] (rev a1)
2. 查看GCC安裝版本:
gcc --version
顯示:
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
3. 查看是否已有安裝的NVIDIA驅動:
若是有,請卸載。本人的服務器是新的,因此木有安裝過。
lsmod | grep nvidia
4. 查看集顯驅動:
lsmod | grep nouveau
5. 下載CUDA8.0:
去cuda官網下載對應版本的驅動,請下載.run格式的安裝文件,不要下載deb格式的!把安裝文件放在任意目錄下。
6. 禁用顯卡驅動:
Ctrl + Alt + F1 進入tty1界面。
關閉桌面服務:
sudo service lightdm stop
把自帶顯卡驅動加入黑名單:
cd /etc/modprobe.d/
sudo touch blacklist-nouveau.conf sudo su root echo "blacklist nouveau">>blacklist-nouveau.conf echo "options nouveau modeset=0">>blacklist-nouveau.conf
當即生效:
sudo update-initramfs -u
重啓系統。
7. 安裝CUDA:
再次進入tty1,並再次關閉桌面服務,找到剛纔存放.run安裝程序的路徑,安裝一下,後面跟上參數!!
sudo ./cuda_8.0.44_linux.run --no-opengl-libs
按照提示,輸入yes或者回車,裝完後開啓桌面服務:
sudo service lightdm start
重啓。
8. 後續配置:
2016年12月16日補充:ubuntu16.04下建立這個問題件後,開機會提示問題,而後會自動刪除這個文件,沒這個文件一切也挺正常的。。因此暫時能夠不用改這個文件了。
建立 /etc/X11/xorg.conf 文件,內容以下:
Section "Device" Identifier "intel" Driver "intel" BusID "PCI:0@0:2:0" Option "AccelMethod" "SNA" EndSection
打開文件 /etc/default/grub, 在 GRUB_CMDLINE_LINUX_DEFAULT 後增長一個參數: "nogpumanager"。
當即生效:
sudo update-grub
9. 配置環境變量:
/etc/profile文件最後增長兩行:
export PATH=$PATH:/usr/local/cuda-8.0/bin export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/lib
個人CUDA裝在默認位置,若是你的不是,請自行修改上述路徑吧~
當即生效:
source /etc/profile
10. 驗證安裝:
終端輸入:
lsmod | grep nvidia
顯示:
nvidia_drm 45056 0 nvidia_modeset 765952 1 nvidia_drm nvidia 11485184 1 nvidia_modeset drm_kms_helper 147456 2 ast,nvidia_drm drm 360448 6 ast,ttm,drm_kms_helper,nvidia_drm
終端輸入:
nvcc -V
顯示:
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2016 NVIDIA Corporation Built on Sun_Sep__4_22:14:01_CDT_2016 Cuda compilation tools, release 8.0, V8.0.44
3、 安裝Anaconda3
官網下載python3.5版本,cd到安裝程序目錄下執行:
sudo sh Anaconda3-4.2.0-Linux-x86_64.sh
安裝過程當中提示要不要加入環境變量啥的,都選yes。
4、 安裝Matlab2016a
下載好破解版的Matlab iso鏡像, cd到鏡像文件目錄下執行:
sudo mount -t iso9660 -o loop R2016a_glnxa64.iso /mnt cd /mnt ./install
一開始輸入破解文件夾內的序列號,裝完之後,把破解文件夾內的兩個lib開頭的文件拷到 /usr/local/MATLAB/R2016a/bin/glnxa64/ 目錄下,注意操做權限。
打開Matlab:
cd /usr/local/MATLAB/R2016a/bin ./matlab
定位到破解文件夾內的lic文件。
安裝一個插件:
sudo apt-get install matlab-support
按照要求輸入matlab執行程序所在bin文件夾的上層目錄。
之後就能夠直接在終端裏輸入 matlab 來啓動啦!
5、安裝OPENCV3.1
先裝下各類可能用到的依賴庫吧:
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libopenblas-dev sudo apt-get install liblapack-dev sudo apt-get install libatlas-base-dev
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
安裝cmake、git,這裏還要安裝下cmake的gui程序,後續編譯opencv咱們在gui界面操做!
sudo apt-get install cmake git cmake-qt-gui
下載opencv3.1源碼以及擴展包源碼:
cd /home/noah/
mkdir opencv
mkdir build cd opencv git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git
使用cmake-gui編譯至剛纔建立的build文件夾
終端輸入:
cmake-gui
配置方法能夠參考我在windows下編譯opencv的博文,主要看下anaconda這些有沒有被檢測到,還要在擴展包路徑裏選擇 /opencv_contrib/modules 文件夾。
編譯好以後,終端進入build文件夾:
make -j16
你們根據本身CPU狀況更改數字哦,make過程會好久,特別是到opencv_perf_stitch 和python3 這兩步時,估計要等四十分鐘………………完成後,安裝:
sudo make install
安裝完後,檢測一下,終端輸入python,而後import cv2試試,若是出現說什麼libstdc++.so.6 有問題,軟鏈接一下:
sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /home/noah/anaconda3/lib/libstdc++.so.6
同理,若是libgomp.so.1文件有問題,也軟鏈接一下:
sudo ln -sf /usr/lib/x86_64-linux-gnu/libgomp.so.1 /home/noah/anaconda3/lib/libgomp.so.1
再import cv2就能夠咯~~~~
6、安裝CuDNN5.1
去官網下載最新版本CuDNN5.1,tga格式。
終端輸入:
tar -zxf cudnn-8.0-linux-x64-v5.1.tgz cd cuda/
sudo cp lib64/* /usr/local/cuda-8.0/lib64/ sudo cp include/cudnn.h /usr/local/cuda-8.0/include/
7、安裝MXNet
下載mxnet:
git clone https://github.com/dmlc/mxnet.git ~/mxnet --recursive
修改 /mxnet/make/config.mk,把USE_CUDNN=0、USE_CUDA=0 都改爲=1,而且指定CUDA路徑:/usr/local/cuda,在mxnet根目錄下編譯:
make -j16
cd /mxnet/python 目錄,執行:
python setup.py install
跑下示例程序吧~~ cd /mxnet/example/image-classification/,執行:
python train_mnist.py --gpus 0
沒問題的話就OK啦!!
附:參考資料
http://www.cnblogs.com/muchong/p/6093328.html
https://my.oschina.net/u/1046919/blog/479947
http://www.cnblogs.com/gaowengang/p/6068788.html
http://mxnet.io/get_started/setup.html#installing-mxnet
http://jingyan.baidu.com/article/d45ad148a78cbe69552b8089.html