服務器配置深度學習環境


Linux服務器配置深度學習環境

本文介紹一下配置深度學習環境的具體步驟,老實說這玩意挺惡心人的,配置這些環境需要相當的耐心。這里我使用的是ubuntu16.04、cuda10.1和pytorch,顯卡是1080ti。

總體要求

深度學習服務器比較好的管理方式是采用分配賬戶的方式來提高服務器的利用率。其中cuda最好是通過全局的方式安裝到機器上的,也就是所有用戶都可以訪問,nvidia驅動和cudnn是直接安裝在全局上的,這個沒什么疑問。Anaconda和pytorch/tensorflow是需要每個用戶自行安裝的,每個用戶根據自己不同的需要安裝不同的包。

安裝ubuntu

安裝操作系統我就不細說了,詳情可以參考虛擬機安裝操作系統安裝操作系統這兩篇博文。安裝系統沒有什么難度,唯一需要注意的是Linux的分區問題

分配賬戶

裝好系統之后,第一件事就是需要分配賬戶,分配賬戶可以參考這篇博文:點擊傳送門需要強調的一件事ubuntu的root賬戶沒有用過的話,是需要自己設置密碼的,由於第一個 user 是在 admin 組 ,所以可以給 root 設置密碼 :

sudo passwd root
[sudo] password for you :---> 輸入你的密碼,不會顯示
Enter new UNIX password:
--- > 設置root 密碼
Retype new UNIX password:

安裝ssh服務

ubuntu只默認帶有ssh客戶端,但是沒有服務器端,因此需要安裝服務器端。
安裝:

sudo apt install openssh-server

安裝好ssh之后,建議通過遠程連接來進行接下來的操作。具體的客戶端我推薦xftp和xshell,詳情參考點擊傳送門

安裝screen包

跑程序必備神器,防止斷電、斷網。詳情請參考:點擊傳送門
安裝:

sudo apt install screen

安裝Nvidia顯卡驅動

如果平時比較喜歡玩游戲的同學對這一定很熟悉,在windows上安裝N卡驅動非常簡單,但是在Linux系統上安裝N卡驅動就很麻煩了,這一步驟也是整個環節中最為麻煩的一步。
安裝N卡驅動可以通過命令行聯網下載安裝,但是最准確的方式是通過官方提供的驅動來手動安裝,這種方式是本文介紹的重點。如果有想使用其他方式安裝驅動的同學請參考點擊傳送門

  1. 下載驅動。Nvidia官網:驅動 在這一步的時候需要注意,不要選錯了,我的顯卡是1080ti,ubuntu系統是64位的,語言為英語,開始下載runfile文件。注意如果這一步是重裝驅動的話,那么一定要根據安裝的cuda版本來選擇相應版本的驅動,具體的對應關系請請參考:點擊

  2. 安裝顯卡驅動需要關閉圖形用戶界面,這個時候就只有存粹的控制台窗口,如果你不用ssh,所有的命令都需要手動輸入,這樣既費時又容易出錯,這個時候就體現出ssh的好處了。

  3. 刪除原有的nvidia驅動,如果沒有安裝可以直接跳過這一步:

sudo apt-get remove --purge nvidia*(注意這里是兩個小短橫,這應該是顯示的問題
sudo ./NVIDIA-Linux-x86_64-384.98.run --uninstall(安裝失敗后徹底卸載,這里也是兩小短橫

  1. bios禁用禁用secure boot,也就是設置為disable,如果沒有禁用secure boot,會導致NVIDIA驅動安裝失敗,或者不正常。
  2. 安裝驅動可能需要的依賴:

sudo apt-get update
sudo apt-get install dkms build-essential linux-headers-generic

  1. 禁用nouveau,打開配置文件:

sudo vim /etc/modprobe.d/blacklist.conf
並且在最后一行添加:
blacklist nouveau
options nouveau modeset=0
這表示禁用nouveau第三方驅動,之后也不需要改回來。由於nouveau是構建在內核中的,所以要執行下面命令生效:
sudo update-initramfs -u

  1. 重啟reboot。重啟之后,可以查看nouveau有沒有運行:

lsmod | grep nouveau # 沒輸出代表禁用生效

  1. 關閉可視化桌面:為了安裝新的Nvidia驅動程序,我們需要停止當前的顯示服務器。最簡單的方法是使用telinit命令更改為運行級別3。執行以下linux命令后,顯示服務器將停止,因此請確保在繼續之前保存所有當前工作(如果有):

sudo telinit 3
之后會進入一個新的命令行會話,使用當前的用戶名密碼登錄
(sudo telinit 5重新回到圖形用戶界面)

  1. 安裝驅動:給驅動文件增加可執行權限:

sudo chmod a+x NVIDIA-Linux-x86_64-390.48.run
執行安裝:
sudo sh ./NVIDIA-Linux-x86_64-390.48.run -no-opengl-files
-no-opengl-files 參數必須加否則會循環登錄,也就是loop login

  1. 安裝驅動的過程中會出現一下事項
    如果提示安裝32位的兼容庫,推薦安裝。
    提示安裝dkms 推薦安裝
    自動更新X配置文件時,請選擇“否”

  2. 執行nvidia-smi命令能夠顯示顯卡信息,則表示驅動安裝成功。

  3. 補充:參數介紹:
    -no-opengl-files 只安裝驅動文件,不安裝OpenGL文件。這個參數最重要
    -no-x-check 安裝驅動時不檢查X服務
    -no-nouveau-check 安裝驅動時不檢查nouveau
    后面兩個參數可不加。

安裝cuda和cudnn

  1. cuda下載地址:https://developer.nvidia.com/cuda-downloads
    同樣,下載之前需要弄清楚自己下載的版本,要和前面的驅動版本對應。cuda與驅動對應的版本:https://blog.csdn.net/zhw864680355/article/details/90411288

  2. cudnn下載地址:https://developer.nvidia.com/cudnn 注意還得注冊賬號才能下載,這個安裝包是用來神經網絡加速的。

  3. 注意安裝cuda的時候,一定不要重復安裝驅動了(這一點非常重要)

  4. 具體的安裝步驟請參考(比較簡單,就不詳細介紹了):https://www.cnblogs.com/pertor/p/8733010.html

  5. 如果在.bashrc上更改配置信息,那么就是把cuda和cudnn安裝在個人賬戶下,這里建議在/etc/profile上配置相關信息

安裝anaconda

安裝anaconda我就不多講了,請參考這篇博文點擊

安裝pytorch

pytorch官方地址:點擊

  1. pytorch已經給我們提供了現成的命令行,但遺憾的是由於特殊國情,這個命令行往往都不好使。
    但是我們可以修改conda的鏡像源,前一段時間清華的鏡像網站活過來了,修改鏡像源的方法請點擊:
    https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ 通過conda info查看是否修改成功。
  2. 也可以先下載安裝包,然后通過pip安裝。詳情參考:https://pytorch.org/get-started/previous-versions/
  3. pytorch有0.4和1.0版本,我推薦使用1.0,1.0中廢除了Variable,使用起來更方便。

判斷整個環境是否配置成功

import torch
torch.cuda.is_available()
輸出true表示安裝成功

吐槽

nvidia的老版驅動太難找了,不知道老黃是啥子目的,大家安裝的時候注意保存一下驅動。

注意

nividia驅動是比較脆弱的,之前我為了在服務器上裝一個軟件,頻繁重啟機器,結果導致nvidia驅動損壞。

疑難問題

安裝驅動的時候可能報錯,大意就是linux系統的內核可能會與nivida驅動的內核不兼容。因為linux系統的內核是會不斷升級的,在安裝一些老的驅動會出現這樣的問題。解決辦法:安裝較新的驅動或者降低系統內核版本
詳情參考:https://blog.csdn.net/jiuliang1916/article/details/79133072

引用

  1. https://blog.csdn.net/red_stone1/article/details/78727096
  2. https://blog.csdn.net/wf19930209/article/details/81877822
  3. https://blog.csdn.net/wf19930209/article/details/95237824
  4. https://blog.csdn.net/wf19930209/article/details/95772476
  5. https://blog.csdn.net/u014561933/article/details/79958017
  6. https://www.cnblogs.com/pertor/p/8733010.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM