記錄自己ubuntu18.04安裝pytorch的心得,anaconda3-5.2已經安裝好,這里不再詳述。
目錄
1.CPU版本Pytorch安裝
2.GPU版本Pytorch安裝
3.相關網址及總結
1.CPU版本Pytorch安裝
CPU版本的pytoch安裝比較簡單,在Pytorch官網中選擇python版本,運行conda或者pip命令即可,如下圖所示。注意,為了方便多個Python版本的管理,通常需要在anaconda中創建新的環境空間。
2.GPU版本Pytorch安裝
GPU版本的pytorch安裝比較復雜,在安裝pytorch之前,通常需要安裝顯卡驅動,cuda和cudnn,CUDA是NVIDIA推出的用於自家GPU的並行計算框架,也就是說CUDA只能在NVIDIA的GPU上運行;cuDNN(CUDA Deep Neural Network library):是NVIDIA打造的針對深度神經網絡的加速庫,是一個用於深層神經網絡的GPU加速庫。如果你要用GPU訓練模型,cuDNN不是必須的,但是一般會采用這個加速庫。CUDA是必須的,cudnn是可選的。
通常需要考慮:
(1)檢查顯卡型號是否支持GPU運算
檢查方法:終端輸入
ubuntu-drivers devices
得到以下結果:
圖中,“model”對應的就是電腦顯卡型號,“driver”中后面帶有“recommanded”就是推薦的顯卡驅動型號。根據顯卡型號到英偉達官網查詢是否支持GPU。
網站顯示如下:
先選擇“CUDA GeForce and TITAN Products”,再看具體型號,電腦GPU為GTX 1050,支持GPU 運算。
(2)安裝顯卡驅動
確定顯卡支持GPU 運算后,接下來需要安裝顯卡驅動,目前嘗試過兩種安裝方法,都成功了。
安裝方法一:
系統“軟件和更新”,“附加驅動”,選擇推薦的驅動安裝。
安裝方法二:
運行以下命令,安裝所有驅動
sudo ubuntu-drivers autoinstall
或者只安裝推薦的驅動
sudo apt install nvidia-435
判斷驅動是否安裝成功
方法一:
終端輸入命令
sudo nvidia-smi
顯示以下信息則表示安裝成功
方法二:
系統設置查看“圖形”信息,變為英偉達的顯卡類型即可。
(3)GCC降級
CUDA 9.0僅支持GCC 6.0及以下版本,而Ubuntu 18.04預裝GCC版本為7.3,需要手動降級。
安裝4.8版本的g++和gcc,命令如下:
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
裝完后進入到/usr/bin目錄下,鏈接到低版本,命令如下:
sudo mv gcc gcc.bak #備份
sudo ln -s gcc-4.8 gcc #重新鏈接
sudo mv g++ g++.bak
sudo ln -s g++-4.8 g++
檢查是否修改成功,命令:
gcc --version
g++ --version
顯示結果如下,則修改成功。
(4)安裝cuda
cuda和cudnn、pytorch版本之間要保證對應,能夠支持。以下網址中有之前各版本的cuda下載(https://developer.nvidia.com/cuda-toolkit-archive),本文選擇的是cuda9.0,根據系統環境選擇合適的版本下載,有補丁的連補丁一同下載。關於Ubuntu系統一項,記住一個原則:高版本兼容低版本。即cuda9.0只有14.04和16.04兩個選項,但18.04版本兼容這兩個版本,所以cuda9.0也可以用於18.04版本的Ubuntu。
下載完成后,在下載路徑下執行命令
sudo sh cuda_9.0.176_384.81_linux.run
安裝過程中,以下選項選擇no,其余選擇yes或者默認。
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 352.39? ((y)es/(n)o/(q)uit): n
此外,安裝結束前,會出現warning:In complete Installation,可以忽略。
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
sudo <CudaInstaller>.run -silent -driver
Logfile is /tmp/cuda_install_4242.log
隨后執行以下命令安裝補丁:
sudo sh cuda_9.0.176.1_linux.run
sudo sh cuda_9.0.176.2_linux.run
sudo sh cuda_9.0.176.3_linux.run
sudo sh cuda_9.0.176.4_linux.run
安裝完成后,打開.bashrc文件,在終端輸入:
sudo gedit ~/.bashrc
在文件的末尾添加下面兩行,注意修改成你的安裝路徑:
export PATH="/usr/local/cuda-9.0/bin:$PATH" #這里添加路徑出錯的話最好加上雙引號把路徑括起來,這里已經加上了雙引號
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
測試cuda是否安裝成功:
先重啟終端,隨后執行命令:
nvcc -V
之后,編譯 CUDA Samples,注意改為自己的安裝路徑和版本:
cd NVIDIA_CUDA-9.0_Samples/0_Simple/vectorAdd
make
./vectorAdd
出現下面的Test PASSED代表CUDA安裝成功。
(5)安裝cudnn
安裝的cudnn版本要與cuda版本對應,注冊英偉達賬號后,登陸以下網站選擇相應的版本下載,這里選擇的是cudnn-9.0-linux-x64-v7.6.0.64。
由於下載的是.solitairetheme8格式的壓縮文件,在下載路徑下執行命令:
cp cudnn-9.0-linux-x64-v7.6.0.64.solitairetheme8 cudnn-9.0-linux-x64-v7.6.0.64.tgz
tar -xvf cudnn-9.0-linux-x64-v7.6.0.64.tgz
先轉化為tgz格式,再解壓。隨后進入解壓路徑,執行:
cd cuda
sudo cp lib64/* /usr/local/cuda/lib64/
sudo cp include/* /usr/local/cuda/include/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
注:在安裝過程中,我將所有的下載文件剪切到主文件夾中,再運行指令,避免頻繁切換路徑。安裝完成后,這些文件可以刪除。
(6)安裝pytorch
安裝pytorch的時候,同樣需要考慮與cuda版本對應,以下網址中(https://pytorch.org/get-started/previous-versions/)有歷史版本的pytorch,選擇合適的版本,並執行conda或者pip命令即可。這里選擇的是v1.1.0。
注:安裝pytorch時,和CPU版本一樣,新建python環境空間。
3.相關網址及總結
(1)自己安裝過程中及本博客,主要參考以下博客:
Ubuntu18.04下安裝深度學習框架Pytorch(GPU加速)
解壓.solitairetheme8文件
CUDA 版本,顯卡驅動,Ubuntu版本,GCC版本之間的對應關系
GPU,CUDA,cuDNN的理解
(2)安裝思路
安裝anaconda,顯卡是否支持,安裝顯卡驅動,GCC 降級,安裝cuda,安裝cudnn,新建python環境,安裝pytorch
版本對應:系統版本(高兼容低),cuda版本、cudnn版本、pytorch版本
關於版本對應關系,可以到上文提到的網址中查看。
(3)下載網址
cuda最新版下載:
https://developer.nvidia.com/cuda-downloads
cuda歷史版本下載:
https://developer.nvidia.com/cuda-toolkit-archive
pytorch最新版下載:
https://pytorch.org/
pytorch歷史版本下載:
https://pytorch.org/get-started/previous-versions/
cudnn最新版下載:
https://developer.nvidia.com/cudnn
cudnn歷史版本下載:
https://developer.nvidia.com/rdp/cudnn-archive
anaconda最新版下載:
https://www.anaconda.com/distribution/
anaconda歷史版本下載:
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/