雖然時下流行TensorFlow和PyTorch兩個深度學習架構,但是仍有些有價值的研究是基于Torch的。
目标組合:Ubuntu 16.04 LTS,NNIDIA GeForce 940MX,CUDA 8.0,cuDNN 5.1,Torch 7。
1 N卡驅動
不要用deb!!!最好使用runfile安裝。所有型号的驅動從此處查找并下載下傳:
blacklist nouveau
options nouveau modeset=0
生成新的kernel initramfs:
(2)重新開機系統,按Ctrl+Alt+F1進入指令行模式(回到圖形模式是Ctrl+Alt+F7),安裝下載下傳好的驅動檔案:
# 關閉桌面服務
sudo service lightdm stop
sudo chmod u+x ./NVIDIA-Linux-x86_64-.run
# 最後的選項表示隻安裝驅動檔案,不安裝OpenGL。不可忽略,否則會導緻登入界面死循環
sudo ./NVIDIA-Linux-x86_64-.run --no-opengl-files
# 重新開機桌面服務
sudo service lightdm start
(3)可以通過以下指令确認驅動是否正确安裝:
cat /proc/driver/nvidia/version
2 CUDA
也不要用deb。最好使用runfile安裝。可以從此處下載下傳所需版本的CUDA:最新版https://developer.nvidia.com/cuda-downloads;曆史版本https://developer.nvidia.com/cuda-toolkit-archive。
(1)按Ctrl+Alt+F1進入指令行模式,執行:
# 關閉桌面服務
sudo service lightdm stop
sudo chmod u+x ./cuda_8._375._linux.run
# 最後的選項表示不安裝OpenGL,不要忽略
sudo ./cuda_8._375._linux.run --no-opengl-libs
# 重新開機桌面服務
sudo service lightdm start
安裝過程中,要選擇不安裝NVIDIA顯示卡驅動。可能是因為CUDA提供的驅動會覆寫前面的顯示卡驅動、引發問題。
(2)設定使系統使用Intel核顯作為圖形處理器,而N卡隻做計算(我跳過了這步),即建立或修改/etc/X11/xorg.conf檔案,添加如下内容:
Section "Device"
Identifier "intel"
Driver "intel"
BusID "PCI:0@0:2:0" (使用 lspci | grep -i intel 查詢即可)
Option "AccelMethod" "SNA"
EndSection
為防止系統自動修改此檔案,修改/etc/default/grub檔案,即在
GRUB_CMDLINE_LINUX_DEFAULT
中增加選項
nogpumanager
,然後更新grub:
sudo update-grub
(3)設定環境變量。在~/.bashrc末尾寫入:
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
設定環境變量和動态連結庫:
sudo gedit /etc/profile
在末尾寫入:
儲存後建立連結檔案:
在檔案中添加:
/usr/local/cuda/lib64
然後執行如下指令使連結生效:
sudo ldconfig
(3)可以通過以下指令驗證CUDA安裝是否成功:
cat /proc/driver/nvidia/version
nvcc -V
(4)也可以通過CUDA提供的例子測試:
cd /usr/local/cuda-/samples/_Utilities/deviceQuery
make
sudo ./deviceQuery
顯示GPU資訊說明成功。
3 cuDNN
從官網https://developer.nvidia.com/rdp/cudnn-download下載下傳最新版或者從https://developer.nvidia.com/rdp/cudnn-archive下載下傳曆史版本。需要注冊登入。要注意cuDNN和CUDA版本的對應關系。此處選擇“Download cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0”的“cuDNN v5.1 Library for Linux”。
(1)先安裝各種依賴包(不确實此步是否必須)
sudo apt update
sudo apt install -y build-essential cmake git pkg-config
sudo apt install -y libprotobuf-dev libleveldb-dev libsnappy-dev libh libatlas-base-dev libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt install -y --no-install-recommends libboost-all-dev
sudo apt install -y python-pip python-dev python-numpy python-scipy
(2)解壓下載下傳好的cuDNN,進入其include目錄,并把其中檔案複制到CUDA的include檔案夾下:
再進入其lib64目錄,把其中的檔案複制到CUDA的lib64檔案夾下,并進行連結:
sudo cp ./* /usr/local/cuda/lib64/ #複制動态連結庫
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so. #删除原有動态檔案
sudo ln -s libcudnn.so.. libcudnn.so. #生成軟銜接
sudo ln -s libcudnn.so. libcudnn.so #生成軟連結
4 Torch 7
這裡當然是用GPU加速版的Torch 7。
(1)首先安裝Torch依賴的luarocks和編譯源碼所需的工具:
sudo apt install kuarocks
sudo apt install nvidia-cuda-toolkit
(2)下載下傳NVIDIA CUDA适配的Torch7源碼,并編譯:
git clone https://github.com/torch/cutorch.git
cd cutorch
mkdir build
cd build
cmake ..
make
(3)最後可以通過
th
指令測試是否安裝成功。成功則會顯示以下内容:
______ __ | Torch7
/_ __/__ ________/ / | Scientific computing for Lua.
/ / / _ \/ __/ __/ _ \ | Type ? for help
/_/ \___/_/ \__/_//_/ | https://github.com/torch
| http://torch.ch
th>
參考文獻
- 不争596。Ubuntu 14.04 安裝 CUDA 問題及解決 。https://www.cnblogs.com/gaowengang/p/6068788.html。
- 紅色石頭Will。Ubuntu16.04環境下PyTorch簡易安裝教程。https://blog.csdn.net/red_stone1/article/details/78727096。
- autocyz。Ubuntu16.04+cuda8.0+caffe安裝教程。https://blog.csdn.net/autocyz/article/details/52299889。
- 默默的點滴。Ubuntu 16.04 LTS上安裝Torch7。https://www.mobibrw.com/2017/6915。