一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗

目錄

- 從十年前的Tesla T10說起

- AI/深度學習系統的搭建步驟

- NVIDIA Data Science Stack:真的能一個命令解決部署?

- 驗證:在JupyterLab中使用Python、CUDA、TensorFlow等

- 硬件選擇建議


從十年前的Tesla T10說起


一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗

早期主動散熱的Tesla,怎麼看怎麼像Quadro,除了沒有顯示輸出。如今NVIDIA也並不反對Quadro用於數據中心,RTX 6000和8000甚至還推出了被動散熱的版本。被限制的只有“利潤較低”的GeForce…


上面這兩塊GPU卡有多少朋友能認出來?它們是十年前的NVIDIA Tesla C1060,代號“T10”,不過和《NVIDIA Tesla T10變身GeForce?雲遊戲能接盤礦卡市場嗎》一文中的新T10實在沒什麼關係。


C1060是Tesla家族的第二款產品,之前還有一款是C870,它們都還是渦輪風扇主動散熱的。所以大家可以看到上圖中的2塊卡是裝在一臺塔式工作站中,為了顯示輸出還添加了一塊Quadro FX 380。同期NV也開始推動被動散熱用於服務器上的M1060——並逐漸發展壯大為今天人們所熟悉的Tesla產品線。


那幾年,CUDA也是剛開始嶄露頭角。還記得有一次客戶給我打電話諮詢這個“萬億次浮點預算”的方案(C1060的理論單精度性能為1T FLOPS),大有馬上就要掏錢的勢頭。當時我顯然沒有老黃那種自信,還是建議用戶先測試一下CUDA,畢竟和傳統CPU的軟件編程不同。可能是網絡沒今天發達吧,這客戶居然跑過來找我拷貝Tesla的驅動光盤,當時我正在外面另一個客戶那裡幹活呢。


我還記得,當年已經開始有國內排名靠前的HPC超算四處諮詢Tesla的價格,幾年之後某行業被禁售了… 另一方面,當時我並沒想到CUDA、以及後來開始流行的AI、深度學習會把GPU計算推到如今的高度。


AI/深度學習系統的搭建步驟


有位同事反映過幾次,說我寫的文章插入與主題關係不密切的內容有點多(比較散),所以這就趕緊切回正題:)


前面是什麼讓我想起十年前呢?記得當初測試CUDA環境在Windows裡裝一下就好了,然後Matlab等支持GPU的應用就可以運行了。如今基於GPU的人工智能、深度學習系統更青睞開源的Linux平臺,軟件環境的部署要相對麻煩一些,特別是像我這樣平時主要擺弄硬件的人,總是希望有更簡單的辦法。當然,我也看過網上一些高人朋友總結的操作經驗,也自己動手嘗試過。下面大致列出幾個主要步驟:


1、安裝Linux,Ubuntu或者RedHat/CentOS;

2、Linux下安裝NV顯卡/GPU驅動(含準備工作),在Ubuntu下就有3種方法,下文中我會推薦其中最方便的;

3、CUDA安裝——除了獨立安裝,還有一種方式是顯卡驅動隨CUDA一同安裝;

4、安裝深度學習環境:這部分首先是NVIDIA的cuDNN基礎神經網絡SDK,然後才是依賴它的TensorFlow、Caffe、MXNet、PyTorch等深度學習框架,其間還要安裝的Python和pip等。


一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗


可能有朋友說用Docker容器會簡單一些。沒錯,NVIDIA網站提供了一些常用的容器可供下載,這樣在GPU驅動之後的部署就可以省去了?但別忘了Docker對有些人(比如我)來說也需要學習,特別是想用的好一點、乃至於定製部署自己的容器。


NVIDIA Data Science Stack:真的能一個命令解決部署?


最近我瞭解到NV的Data Science Stack(數據科學套件,https://github.com/NVIDIA/data-science-stack),並按照《Dell Precision Data Science Workstation Guided Install Edition》手冊的操作指導進行了測試,下面把步驟和收穫分享給大家:


1、選擇機型配置(略,關於硬件的討論我想放在最後)


本次測試使用了Dell Precision 7740移動工作站(Quadro RTX 5000 GPU),以及Precision7920 Tower塔式工作站(Quadro P4000 GPU)。


2、安裝系統前準備。這一步主要是關閉BIOS中的“Secure Boot”,這是因為影響到Linux Kernel的更新,基本上Linux安裝NV顯卡驅動都是要改這個的。


3、提升你的性能——設置和優化(可選),這部分做的是2方面事情:


3.1 關閉閒置使用電源管理設置

/usr/bin/gsettings setorg.gnome.settings-daemon.plugins.power sleepinactive-ac-timeout 0


3.2 關閉休眠設置

sudo systemctl maskhibernate.target


3.3 刪除交換文件

sudo swapon –show

sudo swapoff -v /swapfile

sudo sed -i ‘/^\/swapfile/d’/etc/fstab

sudo rm /swapfile


關閉虛擬內存(頁面文件)的理由,我就不在這裡展開了。


4、安裝NVIDIA Data Science Stack v2.2.x


首先是Linux發行版的選擇,NV數據科學套件支持Ubuntu 18.04.x和RedHat Enterprise Linux 7.5+ or 8.0+ (需要license)。RHEL是購買商業版OS不錯的選擇,不過由於我手頭恰好沒有Lincense,無法使用紅帽訂閱來更新,所以本次測試使用Ubuntu。


注:由於Dell 7740移動工作站帶的IntelAX200 WiFi6無線網卡需要Linux5.1+內核才有驅動,因此我安裝了最新的5.3內核的Ubuntu 18.04.4。


儘管這個版本的NV Data Science Stack宣稱在Ubuntu下能夠包含GPU驅動的安裝,但經過我的測試還是建議手動先裝好。(也可能是我水平不夠,坐等高人拍磚)


sudo apt update

sudo apt upgrade

sudo apt install nvidia-driver-430


包擴系統更新在內,準備工作總共就這3條在線命令,不算複雜吧?我也試過用NV官網下載的.sh驅動文件安裝,但為了解決相關依賴還是步驟繁瑣了點。所以上面推薦最簡單的辦法。


一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗

運行nvidia-smi出現上面這樣的輸出,就代表顯卡驅動裝好了。大家都知道GeForce比Quadro的性價比好,但如果用戶需要像RTX 5000這樣16GB顯存的筆記本,還真沒有更多的選擇。


然後就是從github上下載data-science-stack-2.2.2.tar.gz(很小),並解壓縮:

tar zxvf data-science-stack-2.2.2.tar.gz

cd data-science-stack-2.2.2


再往後的命令行操作,就真的是隻使用一個腳本了。


安裝系統環境、設置用戶:

./data-science-stack setup-system

./data-science-stack setup-user


Linux系統中需要的包、Docker環境會在上面的操作中完成,如有英文提示重啟或者Log out / Log in,請按要求執行。


接下來是選擇構建容器,或者原生的數據科學開發環境:


./data-science-stack build-container


./data-science-stack build-conda-env


Conda 是一個開源的軟件包管理系統和環境管理系統。上述2種部署我都測試過,無論使用容器與否,下載安裝的組件其實大多是相同的,比如下面我隨便挑幾個比較常見的:


pytorch-1.4.0

cudnn 7.6.0

mkl-2020.0

tensorflow-base-1.14

cudatoolkit-10.1.243

ffmpeg-4.1.3

……


最後的驗證,就是運行容器化環境或者Conda環境,分別使用2個不同的參數:


./data-science-stack run-container


./data-science-stack run-jupyter


驗證:在JupyterLab中使用Python、CUDA、TensorFlow等


一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗

這裡我以使用容器為例,跑起來之後看提示,用瀏覽器訪問localhost:8888。其實無論是否選擇容器化部署,最終用戶的使用界面都是JupyterLab這個基於網頁的用於交互計算的應用程序。


一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗

如上圖,JupyterLab顯然是為編程人員服務的。我先開一個Python 3的Console看看。


一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗

在下面的輸入框裡就可以敲代碼了,上面顯示的Python版本是3.7.6,常用的2.7有沒有呢?


一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗

我開了一個終端,驗證下Python2.7是必須存在的。


一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗

JupyterLab裡的圖形化GPUDASHBOARDS,可以選擇從不同方面監控GPU的資源使用情況。


一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗

我又驗證了一下CUDA環境,是V10.1.243版本。ffmpeg也是正常的。


一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗

最後試了下在Python裡導入TensorFlow深度學習框架,上圖為輸出。PyTorch等其它的框架也可以按照同樣的方式導入。


結果表明,從CUDA到一系列深度學習框架等的安裝部署,以及JupyterLab的運行都只用data-science-stack這一個腳本就可以實現。哪怕使用容器,也可以在不會敲一條Docker命令的情況下就run起來。


硬件選擇建議


結尾處簡單聊幾句,感興趣的朋友可以看看。


一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗

上表是出現在Dell這份安裝文檔中的,推薦的配置比較高,比如塔式工作站上只列出了Quadro RTX6000和8000選項?除了性能較高、顯存更大之外,選擇認證這些配置有沒有NV想賺更多錢的原因呢?


下面我們再看一下NVIDIA Data Science Stack的硬件要求:


NVIDIA GPU - Pascal, Volta, orTuring family GPU(s) including:

  • Quadro P, GV, and RTX series
  • Tesla P, V and T series
  • GeForce 10xx and 20xx


不過還好,Quadro P系列以及GeForce 10xx和20xx也在支持的範圍內,對性價比要求高的用戶,在塔式工作站上配1-3片GeForce RTX如何?商用產品的支持服務和設計可靠性會更好,無論Quadro、Tesla(適用於服務器)還是一款優秀的(圖形)工作站。


一個命令搭建AI/深度學習平臺?NVIDIA Data Science Stack初體驗


參考資料:

https://www.delltechnologies.com/en-us/ai-technologies/index.htm

https://github.com/NVIDIA/data-science-stack


注:本文只代表作者個人觀點,與任何組織機構無關,如有錯誤和不足之處歡迎在留言中批評指正。進一步交流技術,可以加我的QQ/微信:490834312。如果您想在這個公眾號上分享自己的技術乾貨,也歡迎聯繫我:)

尊重知識,轉載時請保留全文。感謝您的閱讀和支持!


分享到:


相關文章: