Ubuntu16.04 + 1080Ti深度學習環境配置教程

大白鯊,3卡1080Ti

前幾天的GPU機器終于到貨,配置了3張1080Ti顯卡,詳細配置清單文章可以看這里5700刀打造3卡1080Ti深度學習機器。本文為配置GPU深度學習機器的詳細教程,包括顯卡驅動安裝,GUDA、CUDNN安裝,深度學習框架安裝等等,請按此教程從頭一步一步設置,過程中遇到所有問題都可以在這些步驟中找到解決方案,最折磨人的就是環境配置,這次因為secure boot的問題導致驅動失效,郁悶了兩三天……因此分享自己的經歷,讓大家少走彎路。

總體流程

  1. 安裝Ubuntu16.04及顯卡驅動

  2. 安裝CUDA、CUDNN 英偉達GPU加速框架

  3. 安裝深度學習環境

一、安裝Ubuntu16.04及顯卡驅動

安裝ubuntu16.04系統就不詳細解釋,網上有相關教程,可以點這里,建議選擇語言為英文。

這里詳細說明顯卡驅動安裝流程:

安裝顯卡驅動的大致流程為:進入命令行終端 --> 禁用lightdm桌面服務 --> 安裝驅動 --> 啟用lightdm桌面服務 --> 重啟進入BIOS關閉secure boot --> 重啟電腦

最重要的步驟為:重啟進入BIOS關閉secure boot,此步若不操作,驅動將不會起效!

  1. ubuntu系統安裝完畢后,啟動時會進入X桌面,可以用U盤將所有提前下載好的驅動、CUDA安裝文件、CUDNN安裝文件、anaconda3安裝包等等文件拷貝到電腦中。

  2. 鍵盤上按下 ctrl + alt + F1,進入命令行模式。ubuntu有命令行模式和X桌面模式,安裝驅動必須在命令行模式進行。

  3. 禁用X桌面服務,命令行輸入:sudo service lightdm stop,此命令將關閉桌面服務,現在已經不能進入桌面模式(重啟電腦會重啟桌面服務)。

  4. 禁用nouveau驅動。ubuntu默認使用自帶的nouveau驅動,在安裝NVIDIA驅動前,要先禁止nouveau驅動,詳細命令教程請點擊這里,參考當中的“禁用nouveau驅動”部分。

教程截圖:

5.添加ppa庫,通過ppa安裝顯卡驅動,注意不要從NVIDIA官網下載顯卡驅動,直接通過ppa安裝即可:

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt-get update

sudo apt-get install nvidia-381

由于本機顯卡為GTX 1080Ti,截止到2017年7月7日,該顯卡最新穩定版驅動版本為381.22,因此安裝nvidia-381驅動。

安裝驅動過程中,若提示各種操作,一般都按accept同意。如果某一步提示你是否Disable Secure Boot,選擇ok,進行禁用secure boot。這時會要求你設置密碼,直接輸入12345678,再輸一次確認。安裝成功后,再次輸入sudo apt-get install nvidia-381,會提示已經安裝驅動。

但此時輸入nvidia-smi會提示無此命令,驅動沒有安裝好。這個提示是正常的,因為我們實際上還沒正式在BIOS禁用secure boot,現在先可以忽略這個警告。

二、安裝CUDA

緊接著上一部分,我們可以預先下載好CUDA安裝文件在桌面模式時放進電腦,下載地址點這里請務必下載runfile文件(后綴為.run),不能是其它文件。

或者可以用wget進行下載:

wget https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run

下載完畢后,輸入:
sudo sh cuda_8.0.61_375.26_linux.run,進行CUDA安裝。

安裝過程中會提示你進行一些確認操作,首先是接受服務條款,輸入accept確認,然后會提示是否安裝cuda tookit、cuda-example等,均輸入Y進行確定。但請注意,當詢問是否安裝附帶的驅動時,一定要選N!我們在第一部分已經安裝好最新的驅動,附帶的驅動是舊版本的而且會有問題,所以不要選擇安裝驅動。

稍等片刻等待安裝完成,這個時候可以使用此鏈接的教程,測試CUDA是否安裝成功。截圖如下:

最后是配置環境變量,此步很重要,不配置環境變量系統將無法知道CUDA是否被安裝:

輸入:sudo vi /etc/profile,在底部插入以下兩句話:

export PATH=/usr/local/cuda-8.0/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH

然后按esc鍵,按下“:wq”(注意不包含雙引號,記得要包括冒號),然后回車退出。

最后輸入:source /etc/profile,使設置生效。

以上步驟可以參考這篇文章:安裝配置 Ubuntu 14.04 + CUDA8.0 + cuDNN v5 + caffe

三、安裝CUDNN

CUDNN是NVIDIA用于加速深度學習的模塊,裝完CUDA之后就要裝這個,可以預先在其它電腦下載完畢,然后復制到本機中解壓。下載地址為:NVIDIA cudnn

注意要先注冊NVIDIA賬號,按確認條款后才能下載。

進入CUDNN存放的文件夾,輸入:

tar -xzf cudnn-8.0-linux-x64-v5.1.tgz

cd cuda

sudo cp lib64/* /usr/local/cuda/lib64/

sudo cp include/* /usr/local/cuda/include/

CUDNN就這樣安裝完畢,現在重啟lightdm服務,可重啟桌面模式:

sudo service lightdm start

最后可以重啟電腦了,馬上進入第四步,禁用Secure Boot!

四、禁用Secure Boot【重要!】

ubuntu16.04有個重要的特性,就是如果需要安裝第三方顯卡驅動(NVIDIA的就是第三方顯卡驅動),就必須在BIOS中禁用“安全啟動”模式(secure boot),否則第三方顯卡驅動將無法被啟動!

當第三部分結束后,輸入sudo reboot重啟電腦,電腦重啟的那一刻,按下F2或者DEL鍵進入華碩的BIOS,這里只以華碩X99-E WS主板為例,其它主板請參考各自進入BIOS的方式。

此步驟可以直接觀看YouTube上的視頻,Disabiling ASUS Bios Secure Boot,國內的朋友請翻墻觀看,這里截了部分圖用于說明過程。

1.進入BIOS,點擊BOOT(啟動)菜單欄,往下選擇“Secure Boot”:

2.進入Secure Boot界面后,光標移動至“OS type”,選擇為“Other OS”:

然后點擊“Key Management”,進入界面。

3.選擇“Clear Secure Root Keys”,刪除安全啟動密鑰,刪除后就能禁止secure boot。

按下yes或comfirm,確認刪除:

4.按下F10,確認保存設置并重啟電腦:

成功禁用secure boot之后,重啟就能回到X桌面,Ctrl + Alt + T,調出命令行,輸入nvidia-smi就能看見驅動信息:

恭喜你!已經成功安裝顯卡驅動和CUDA!你還可以輸入nvcc -V來查看CUDA版本。

五、安裝Anaconda

anaconda是一款python集成安裝軟件,里面包含了所有機器學習所需要用到的庫,而且各種設置都自動設置妥當,無需人工安裝其它依賴,請務必使用anaconda,否則手動配置環境的過程將會相當漫長痛苦!

anaconda的歷史版本安裝包可以在以下鏈接找到:Anaconda installer archive,這里選擇Anaconda3-4.2.0-Linux-x86_64.sh,在本文寫成(2017年7月7日)之時,tensorflow最高只支持python3.5和python2.7,因此選擇此版本。

命令行cd到安裝包存放地址,輸入:Anaconda3-4.3.1-Linux-x86_64.sh安裝anaconda,一路輸入Y,確認操作就行。

配置環境變量,命令行中輸入:sudo vi ~/.bashrc

在底部插入以下這一句:

export PATH=/home/ubuntu/anaconda3/bin:$PATH

然后輸入:source ~/.bashrc,使設置生效。

可以輸入conda list python查看python版本,其它詳細命令可以查看以下鏈接:Anaconda使用總結

六、更換pip源、conda源和apt-get源

在使用apt-get安裝ubuntu系統軟件,或者使用pip或conda命令安裝第三方python包時,由于鏡像都在國外服務器,國內的朋友使用這些命令安裝時會相當慢,因此需要更換這些鏡像為國內鏡像。

1.更換pip源:

cd到根目錄,命令行輸入:sudo mkdir .pip,新建一個名為“.pip”的文件夾。

創建pip配置文件:sudo vi ~/.pip/pip.conf,在vi界面中插入以下這句話:

[global]
index-url = https://pypi.douban.com/simple

然后按esc鍵,按下“:wq”(注意不包含雙引號,記得要包括冒號),然后回車退出。

即可把pip源更新為國內豆瓣鏡像,可參考這篇文章:pip 更換軟件鏡像源

2.更換conda源

除了可以pip安裝之外,也可以使用conda install xxx來安裝第三方python包,要更換為國內鏡像,創建配置文件:
sudo vi ~/.condarc

加入以下幾句:

channels:

- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

- defaults

show_channel_urls: true

然后按esc鍵,按下“:wq”(注意不包含雙引號,記得要包括冒號),然后回車退出。

3.更換apt-get源

直接看這里:Ubuntu 14.04 更換阿里云源

備份舊版本:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #備份

修改文件:

sudo vim /etc/apt/sources.list

在底部加入以下語句:

deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

保存退出。

七、安裝深度學習框架

1.安裝keras:

pip install keras

2.安裝tensorflow-gpu版本

pip install tensorflow-gpu

3.安裝ssh

我們使用其他windows電腦來連接這臺服務器,就要通過ssh進行連接,教程可以看這里:Ubuntu16.04安裝openssh

安裝ssh服務:

sudo apt-get install openssh-server

編輯配置文件:

sudo vi /etc/ssh/sshd_config

找到:PermitRootLogin prohibit-password,注釋掉此項

添加:PermitRootLogin yes

執行命令:sudo service ssh restart

4.配置jupyter notebook

jupyter notebook是一個基于web的編程交互界面,我們主要使用jupyter來進行算法測試、模型建模,jupyter notebook在安裝anaconda的時候就已經安裝了,這里我們需要配置一些參數,使得我們用其它電腦連接這臺主機的時候,可以在網頁上打開這臺主機的jupyter notebook。

詳細教程可以看這篇文章:遠程訪問jupyter notebook

這里提醒一點,如果發現用Xshell或putty連接到GPU主機后,命令行輸入:jupyter notebook,然后在瀏覽器上輸入:“GPU主機的IP地址:8888”,若發現無法打開,則有可能是防火墻問題,禁止了jupyter的端口,可以在防火墻中通過端口,點擊看這篇教程:Ubuntu默認防火墻安裝、啟用、配置、端口、查看狀態相關信息

安裝防火墻:

sudo apt-get install ufw

開啟端口:

sudo ufw allow 8888

重啟后若發現還是不行,那就有可能是因為你設置了網絡代理,這時候要在你的瀏覽器設置取消全局代理:

上面的所有教程能解決jupyter notebook的設置問題,若還出現問題,請從頭再查看一遍此部分教程。

八、設置開機啟動進入命令行模式

我們要使用其他電腦來遠程連接這臺主機,就要設置開機進入命令行模式,設置只需一句命令,網上其它有關修改gurb的教程都不適用于ubuntu16.04:

sudo systemctl set-default multi-user target

重啟后就能直接進入命令行模式了。

九、所有下載鏈接總結

CUDA下載

CUDNN下載

Anaconda下載

十、常見問題解答(TODO)

后面會寫出一些在配置過程中出現的一些問題,請關注或收藏本文,后面會補全此部分。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容