天天看點

在Ubuntu16上安裝Torch7

雖然時下流行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> 
           

參考文獻

  1. 不争596。Ubuntu 14.04 安裝 CUDA 問題及解決 。https://www.cnblogs.com/gaowengang/p/6068788.html。
  2. 紅色石頭Will。Ubuntu16.04環境下PyTorch簡易安裝教程。https://blog.csdn.net/red_stone1/article/details/78727096。
  3. autocyz。Ubuntu16.04+cuda8.0+caffe安裝教程。https://blog.csdn.net/autocyz/article/details/52299889。
  4. 默默的點滴。Ubuntu 16.04 LTS上安裝Torch7。https://www.mobibrw.com/2017/6915。

繼續閱讀