1. 程式人生 > >選擇GPU伺服器的五大基本原則

選擇GPU伺服器的五大基本原則

選擇GPU伺服器的五大基本原則

 從效能、可程式設計性、靈活性等方面對CPU、GPU、FPGA、ASIC等不同型別的伺服器進行了系統的比較分析,並給出了五條選擇GPU伺服器的基本原則:

1.考慮業務應用先選擇GPU型號

2.考慮伺服器的使用場景及數量(邊緣/中心)

3.考慮客戶自身的目標使用人群及IT運維能力

4.考慮伺服器配套軟體的價值以及服務的價值

5.考慮整體GPU集群系統的成熟度及工程效率

NVIDIA 高階系統架構師易成則從計算效能、互聯互通、可擴充套件性、適用場景等方面系統講解了DGX-1、DGX-2、DGX Station以及如何利用VNIDIA NGC高效的使用DGX系統。

選擇GPU伺服器的五大基本原則

 

吳強:大家好,我是吳強,也是NVIDIA NPN(NVIDIA PARTNER NETWORK)合作伙伴負責人,主要負責幫助銷售以及與合作伙伴的管理。今天分享的主題為《不同行業如何選擇深度學習伺服器》,主要從以下幾個方面來進行:

1.不同型別AI伺服器之比較分析

2.選擇GPU伺服器的基本原則

3.AI超級計算機DGX系統詳解

4.NGC雲平臺使用方法和價值

5.DGX系統快速部署的最佳攻略

6.DGX系統各行業應用案例

其中第1、2、6條由我來為大家介紹,第3、4、5條由我的同事易成來介紹。

不同型別AI伺服器之比較分析

選擇GPU伺服器的五大基本原則

 

首先看下不同型別AI伺服器的比較,通過上面這張二維圖中我們可以對不同架構的伺服器進行簡單的比較。從左上方到右下角依次是CPU、GPU、FPGA、TPU、ASIC,從橫軸來看,越往右效能(Performance)越好。縱軸Programmability/Flexibility是指伺服器的可程式設計性和靈活性, ASIC的效能最好,因為它是將演算法固化在晶片上,演算法是比較固定的,所以它的效能最好的,但是它的程式設計性和靈活性就相對比較弱。而CPU的靈活性和程式設計性最好,但效能最弱。總的來說,GPU的靈活性比CPU弱,但它的效能更好。往下依次是FPGA、TPU以及ASIC。在實際選擇時需要考慮到功耗、成本、效能、實時性等各方面因素,尤其是一些具有專用目的的處理器,如果演算法已經固化並且很簡單,可以考慮ASIC,因為ASIC效能好且功耗低。如果是在訓練或者通用情況下,GPU則是更好的選擇。

選擇GPU伺服器的基本原則

在介紹選擇GPU伺服器的基本原則之前,先來跟大家介紹下常見的GPU和GPU伺服器。

常見的GPU,按匯流排介面型別,可以分為NV-Link介面、傳統匯流排介面以及傳統PCI-e匯流排三種。

NV-Link介面型別的GPU典型代表是NVIDIA V100,採用 SXM2介面。在DGX-2上有SXM3的介面。NV-Link匯流排標準的GPU伺服器可以分為兩類,一類是NVIDIA公司設計的DGX超級計算機,另一類是合作伙伴設計的NV-Link介面的伺服器。DGX超級計算機不僅僅提供硬體,還有相關的軟體和服務。

傳統匯流排介面的GPU,目前主流的有這幾款產品,比如 PCI-e介面的V100、 P40(P開頭指的是上一代PASCAL架構)和P4,以及最新的圖靈架構T4等。其中比較薄和只佔一個槽位的P4和T4,通常用於Inference,目前也已經有成熟的模型進行推理和識別。

傳統PCI-e匯流排的GPU伺服器也分為兩類,一類是OEM伺服器,比如曙光、浪潮、華為等其他國際品牌;另一類是非OEM的伺服器,也包括很多種類。選擇伺服器時除了分類,還要考慮效能指標,比如精度、視訊記憶體型別、視訊記憶體容量以及功耗等,同時也會有一些伺服器是需要水冷、降噪或者對溫度、移動性等等方面有特殊的要求,就需要特殊的伺服器。

選擇GPU伺服器時首先要考慮業務需求來選擇適合的GPU型號。在HPC高效能運算中還需要根據精度來選擇,比如有的高效能運算需要雙精度,這時如果使用P40或者P4就不合適,只能使用V100或者P100;同時也會對視訊記憶體容量有要求,比如石油或石化勘探類的計算應用對視訊記憶體要求比較高;還有些對匯流排標準有要求,因此選擇GPU型號要先看業務需求。

GPU伺服器人工智慧領域的應用也比較多。在教學場景中,對GPU虛擬化的要求比較高。根據課堂人數,一個老師可能需要將GPU伺服器虛擬出30甚至60個虛擬GPU,因此批量Training對GPU要求比較高,通常用V100做GPU的訓練。模型訓練完之後需要進行推理,因此推理一般會使用P4或者T4,少部分情況也會用V100。

當GPU型號選定後,再考慮用什麼樣GPU的伺服器。這時我們需要考慮以下幾種情況:

第一、 在邊緣伺服器上需要根據量來選擇T4或者P4等相應的伺服器,同時也要考慮伺服器的使用場景,比如火車站卡口、機場卡口或者公安卡口等;在中心端做Inference時可能需要V100的伺服器,需要考慮吞吐量以及使用場景、數量等。

第二、 需要考慮客戶本身使用人群和IT運維能力,對於BAT這類大公司來說,他們自己的運營能力比較強,這時會選擇通用的PCI-e伺服器;而對於一些IT運維能力不那麼強的客戶,他們更關注數字以及資料標註等,我們稱這類人為資料科學家,選擇GPU伺服器的標準也會有所不同。

第三、 需要考慮配套軟體和服務的價值。

第四、 要考慮整體GPU集群系統的成熟程度以及工程效率,比如像DGX這種GPU一體化的超級計算機,它有非常成熟的從底端的作業系統驅動Docker到其他部分都是固定且優化過的,這時效率就比較高。

AI超級計算機DGX系統詳解

易成: 目前DGX產品主要包含DGX工作站(DGX Station)、DGX-1伺服器以及今年剛釋出的DGX-2伺服器三款產品。它們都是NVIDIA推出的軟硬一體機產品,主要包括作業系統、相關軟體以及配套的硬體。以往我們買伺服器或工作站時,通常需要自己在伺服器中安裝作業系統並部署應用軟體,而在DGX一體機上就不需要這個過程了,所有的軟體出廠時就已經完成了安裝配置,開機就可以使用,非常適合開發人員做深度學習或高效能運算的應用。

在介紹DGX超級計算機之前,先了解一下超級計算機的計算核心V100 GPU。在DGX中使用的是NVLink GPU,包含5120個CUDA核心,640個TensorCore,雙精度的計算能力達到7.8萬億次,深度學習的計算能力達到125萬億次。GPU之間可以通過NVLink進行互相訪問,頻寬可以達到300GB/s。而PCI-e的GPU只能通過PCI-e匯流排進行GPU之間的互相訪問,頻寬為32GB。因此相比較而言,NVLink版V100是目前效能最強的GPU。

與上一代GPU相比,V100 GPU採用最新的Volta架構,採用SM流多處理器架構,首次引進了Tensor Core計算核心,這也是以前Pascal架構所沒有的,大大增強了GPU的深度學習計算效能。V100採用了新一代的NVLink 2.0技術,雙向總頻寬可以達到300GB/s,並且採用了新的HBM2視訊記憶體,可以達到900GB/s的IO頻寬。V100引入了新的MPS多程序服務技術,以提高GPU的利用率,還改進了SMIT的計算模型。

選擇GPU伺服器的五大基本原則

 

Tensor Core是V100非常重要的特性,支援混合精度計算,如上圖所示的D=A*B+ C的混合矩陣乘加計算。在矩陣中,矩陣A和矩陣B要求是半精度的FP16型別,而加法矩陣C可以是半精度FP16或者是單精度FP32型別,左邊的計算結果也可以是FP16或FP32型別。

DGX-1伺服器主要用於資料中心的深度學習或者高效能運算應用,整機的計算峰值可以達到1000萬億次。我們都知道,深圳超算中心的計算能力大約是1200萬億次,也就是一臺DGX-1的計算能力和一個超算中心的計算能力相當,之所以說適合於資料中心,是因為DGX-1伺服器需要安裝在機櫃中,功耗達到3200瓦,噪音也比較大,因此只能放在資料中心的機房。

DGX-1配置了8塊最新的NVLink V100 GPU,每塊GPU是32GB視訊記憶體,配置了大容量的記憶體,一共是512GB,可以將大量的資料讀入記憶體。配置了7TB的SSD作為本地快取,SSD配置的是RAID 0模式,僅僅作為本地的快取,可以實現高速儲存的IO效能。另外,DGX-1配置了4個100Gb的網絡卡,並且可以選擇InfiniBand或乙太網模式,是為了配置GPU叢集預留的網路介面,可以作為節點間通訊的計算網路或儲存網路。

選擇GPU伺服器的五大基本原則

 

DGX-1伺服器的內部網路拓樸架構中有8個GPU伺服器,這8個GPU互聯成一個立方體的拓樸架構,每一個頂點是一塊GPU。另外,從圖中可以看到還有NVLink、PCI-E、QPI 三種互聯通道,綠色的粗線條代表NVLink,紫色的細線條代表PCI-E匯流排,黑色的線條代表QPI線。在做GPU平行計算時,GPU之間的通訊可以選擇兩種方案:

第一、 GPU通過PCI-E匯流排進行通訊,這種通訊的方效率比較低的。

第二、 通過NVLink實現GPU之間直接通訊,很顯然這種方式的通訊效率會很高。

選擇GPU伺服器的五大基本原則

 

接下來為大家介紹下DGX-1伺服器中GPU的計算速度和擴充套件性。圖中柱狀圖表示計算速度,曲線代表擴充套件性,灰色的柱狀圖表示PCIe的GPU計算效能,綠色的柱狀圖表示NVLink GPU的效能。上圖展示的資料是以神經網路翻譯訓練為例,從計算速度的角度看,與PCIe的GPU卡相比,GPU越多,NVLink GPU速度的優勢越明顯,8塊NVLink GPU有20%的效能提升。從擴充套件性的角度看,8塊NVLink GPU的加速比PCIe GPU高20%左右。從圖中可以看出,8塊DGX-1的伺服器和普通的PCIe GPU伺服器相比還是有比較大的效能優勢,尤其是在深度學習框架或模型演算法不支援叢集計算的時候,使用DGX-1伺服器會有比較大的優勢。

NVIDIA DGX STATION是一個非常強大的工作站,可以達到480萬億次的計算能力,採用了最新的32GB V100 GPU。另一個特點是超靜音設計,因為採用的是水冷模式而不是通常採用的風扇冷卻方式,因此不需要機房,在辦公室環境也可以使用,是特別為研發人員設計的個人超級計算機。

選擇GPU伺服器的五大基本原則

 

上圖展示了DGX工作站的詳細配置,包括GPU記憶體、SSD詳細的配置情況等。可以看到,它的配置還是非常高的,完全滿足開發研究人員做深度學習和高效能運算的需求。

最新發布的DGX-2伺服器的計算能力是2000萬億次,是目前世界上效能最強的深度學習單機系統。

DGX-2的內部架構與DGX-1相比,在配置有比較大的提升,其中包括2個GPU主機板,每個主機板包括8塊32GB V100 GPU和6個NVSwitch,採用全線速互聯的方式,任意兩塊GPU之間通訊總頻寬可以達到300GB每秒,系統配置最新的Intel Xeon CPU,配置1.5TB的主機記憶體,8個100Gb的網絡卡,可以支援InfiniBand和乙太網模式互相切換。這8個網絡卡主要用於做計算網路,另外還配置兩個100Gb的網路介面作為儲存網路,也可以支援InfiniBand和乙太網的切換模式。DGX-2配置30TB NVME SSDs,和DGX-1一樣,也是作為本地快取使用。

選擇GPU伺服器的五大基本原則

 

從這張圖我們可以看到DGX-2的內部結構,包括GPU主機板以及其他配置。先來看下DGX-2中GPU互聯的網路拓樸結構,DGX-2有兩個GPU主機板,每個主機板包含8塊GPU,6個NVSwitch,這是因為每個GPU有六個NVLink通道,每個通道連線一個NVSwitch。對於NVSwitch,我們可以把它理解成18埠的NVLink交換機,因為每個NVSwitch和八個GPU相連,一個GPU主機板上所有NVSwitch通過背板和另外一個主機板上的GPU互聯,這樣就能實現所有GPU都達到全互聯狀態,任意兩個GPU之間的頻寬都可以達到300GB/s。每個NVSwitch和8個GPU相連,有8個GPU NVLink接入,然後會有8個埠連出到背板上,因此一共佔用了16個埠,還有兩個埠剩餘。

一臺DGX-2伺服器和兩臺DGX-1伺服器相比,在相同數量GPU卡的情況下,在高效能運算深度學習應用中, DGX-2伺服器相較DGX-1會有兩倍以上的效能加速,之所以能超過兩倍,是因為GPU數量增加兩倍,而效能超過兩倍是因為DGX-2 GPU之間的通訊效率比DGX-1要高,因此它的並行效率會更高。

NGC雲平臺使用方法和價值

DGX工作站和伺服器都是軟硬一體的計算平臺,因此DGX不僅僅是一臺硬體裝置,還是一套完整的深度學習和高效能運算平臺。DGX系統預裝了NVIDIA優化的作業系統、Driver、SDK以及NVIDIA Docker引擎,也預裝了各種深度學習框架和高效能運算的應用軟體,並且所有的應用軟體都會定期更新,一般每個月都會更新一次,這些更新都會發布在NGC雲平臺上。這裡所說的應用都是以Docker容器映象的方式提供。Docker容器是一個非常有用的工具,跟虛擬機器有很多相似的地方,但是容器是一個效率更高更方便的工具。

NGC雲平臺上所提供的資源,包括深度學習的框架以及高效能運算資源,這些軟體都是以容器映象的方式提供。比如一些搞AI研究的研究員或者資料科學家經常會在網站或者論文上看到一些新的模型,並且想要驗證一下效果。但這些模型需要的一些框架不一定是現在已經在用的,或者版本也不一定有。如果要下載一個最新的版本的框架,比如Caffe框架來進行測試,自己手動去安裝這些軟體會非常麻煩,需要安裝cuDNN、OpenCV、Python等這些軟體,另外還可能會存在一些版本的衝突,可能在軟體部署上就會浪費一兩天甚至一週的時間。而如果我們可以從NGC上去下載一個Caffe版本,就可以直接把我們的模型匯入進去執行,這對於我們驗證和測試環境的軟體都是非常有用的,當然,對於生產環境,也可以自己去部署軟體。

選擇GPU伺服器的五大基本原則

 

接下來介紹一下NGC資源的使用流程。首先,免費註冊並登入NGC平臺(ngc.nvidia.com),登入後需要獲取賬號和密碼,點選右上角Get API Key進入一個新的頁面。在這個頁面上點選右上角的Generate API key,這時候會彈出一個要確認的資訊,我們點選Confirm就可以生成圖4所示的賬號和密碼。獲得賬號和密碼後,就可以在DGX系統中進行登入。

圖5是一個範例,輸入使用者名稱和密碼,需要注意的是,輸入密碼時不要加入空格,顯示登入成功後,就可以輸入我們需要下載應用軟體的一些下載命令,輸入 “docker pull nvcr.io/nvidia/caffe:18.09-py3”命令,這些應用的下載都非常簡單,按照這張圖中的操作步驟就可以完成下載,使用也非常方便。

DGX系統快速上手的最佳攻略

選擇GPU伺服器的五大基本原則

 

那麼如何用好DGX系統呢?首先要用好V100的混合精度計算效能,在前面我們已經介紹了Tensor Core,可以支援混合精度的計算,也就是上圖左上角的混合精度矩陣的乘加計算。有很多使用者反映,他們買了DGX-1後發現和相同數量GPU P100相比,效能也沒有特別大的提升。後來發現他們用的是單精度做訓練,也就是將P100上執行的程式碼直接拿到DGX-1上執行,而並沒有做修改,這樣一來還是單精度的訓練,並不會自動使用混合精度。

為了用好V100的混合精度計算效能,我們需要在原始碼上做一些小的修改。比如在做訓練時,需要把有些權重副本、梯度或者啟用值等變數改為半精度FP16,可以提高它的計算速度,還可以減小記憶體的佔用。在更新權重時,我們把它強制轉化為FP32的單精度,可以保證訓練模型的精度不會下降,因此在採用了一些小的修改後,再去做一些訓練的計算才會獲得比較高的計算速度。

縮短資料讀寫的時間也是提高計算速度比較重要的一點。在訓練時都需要從網路檔案系統讀寫資料,通常延時會比較大,因此DGX-1會配置檔案系統的快取功能,將資料快取到系統的本地,而這一點不需要使用者考慮,系統會自動配置好。當然有些使用者會自己把資料拷貝到本地,這也是一個不錯的辦法。另外,由於本地SSD配置為RAID 0,它的可靠性比較低,因此不建議將重要資料長期存放在快取裡面,這將會很不安全。

在搭建GPU叢集的時候,網路不一定是InfiniBand型別,經常會遇到40Gb的乙太網,這時我們可以將DGX-1的網路介面切換為乙太網模式,這樣就可以接入到40Gb的乙太網絡環境中。

選擇GPU伺服器的五大基本原則

 

充分利用NVLINK網路通訊的功能也是用好DGX一個很重要的點。如果使用普通的MPI模式進行通訊,GPU之間採用PCIe,它的通訊效率會比較低。為了採用NVLink通訊,我們可以使用NCCL庫,在Horovod軟體中集成了NVIDIA NCCL庫,它是一個採用的如右邊這張圖的演算法,這個演算法是百度最先提出來的。

從左邊圖上我們可以看到普通的TensorFlow並行和Horovod相比,GPU卡越多效能差距越明顯,因此我們建議,在做多GPU並行或者多節點並行時,使用NCCL庫作為通訊方式。另外,我們在NGC平臺上提供的深度學習框架的資源中也已經集成了NCCL庫,因此建議大家儘量使用NGC中的深度學習框架資源。

NVIDIA DGX伺服器和工作站是軟硬一體的產品,而且軟體和硬體都出自NVIDIA,可以給使用者提供一個高效能、高可靠的系統,提供完善的軟體和硬體服務,包括故障處理、效能調優、應用移植等。NVIDIA有強大的AI專家團隊,也可以快速解決大家在使用過程中的問題,提供一些AI演算法等層面的支援。這對大家節省時間、快速迭代、縮短產品研發週期也是非常有幫助的,這也是NVIDIA服務的優勢。

DGX系統各行業應用案例

吳強:DGX在網際網路行業的應用,比如美國社交網路公司Facebook,去年採購了幾百臺DGX-1用於Deep Text和影象識別等。我們也知道,Facebook可以識別很多使用者的政治傾向等方面的資訊,同時他們也有很大的能力去做更多各種各樣的分析。

DGX在智慧城市領域的應用,中國第一臺DGX-1是海康威視所採購的,海康威視是全世界最大的監控裝置廠商,他們使用DGX訓練神經網路,但在識別時會用到另外的邊緣伺服器,同時還不是通用的PCIe卡,而是用Tegra X2,多個Tegra X2整合到一塊卡中,並插在一個比較小的前端邊緣伺服器上。

DGX在初創公司的應用,Face++在使用大量的DGX和傳統的PCIe伺服器結合應用於在智慧監控領域。商湯科技採用DGX用於人臉識別、車輛識別等。商湯科技在第一批DGX產生時就和NVIDIA有合作了。另外還有國內非常著名的手機廠商,他們也採用DGX用於資料分析或語音識別等。

DGX在教育科研行業的應用,以冷凍電鏡為例,使用Relion GPU版,可以幫他們縮短分析計算的時間和成本。而國外用的最多的是美國的橡樹嶺國家實驗室,它和IBM公司合作使用DGX打造了超級計算機Summit,總共有4608個節點,它的計算效能比神威·太湖之光還高一倍,其中NVIDIA V100的效能佔據了95%的計算力。

DGX在製造業的應用,主要用在一些品質控制,比如原來有150多名檢查員用眼睛去看那些產品的品質,要檢查20-30分鐘,如果使用DGX DeepLearning的方式來取代人來做識別,可以在4分鐘內完成150人接近半個小時的工作。人有時候是會疲勞的,對眼睛傷害也很大。另一方面,在機器人上不僅是DGX的應用,DGX主要負責訓練,訓練好的模型會用到機器人上。另外還有國內物流產業的小車等在室外做識別都會用到DGX。

選擇GPU伺服器的五大基本原則

 

DGX在醫療行業的應用,應用最多是醫學影像識別。如上圖所示,黃顏色是人類有經驗的醫師給出的診斷,淺顏色是機器進行了訓練後得到診斷。比如上海長征醫院,有的醫生一天要看一百多個病人,將近200張片子,同時有的肺片CT是32線或者64線。在排查時,醫生需要從肺的底端到頂端進行排查。尤其人到下午的時間,疲勞度各個方面都會受到比較大的影響,同時準確率也會受到一些影響。在有了機器診斷後,不僅可以降低醫學影像師的工作量,對醫生也有很大幫助。另外,機器可學習的種類更多,學習效率更高,因此診斷結果也會更精準。

DGX在癌症研究方面的應用,比如美國能源部下屬的國家癌症研究中心有一個癌症登月計劃的專案,採用了124臺DGX-1,主要進行加速癌症治療方案的研究、預測藥物治療效果和分析病人對藥物的效果等。

DGX在金融行業的應用,目前幾個主要的銀行或者大保險公司都在使用GPU伺服器,少部分已經開始使用DGX。主要用於快速處理資料,以增加對損失的評估準確率。

NVIDIA在汽車自動駕駛方面有很多的應用,我們公司也有自己的DGX叢集,總共有660臺DGX-1,其中160臺用於自動駕駛領域。利用這個叢集我們可以做很多的訓練,比如車輛識別、人員識別、交通識別以及模擬。自從出現過一些自動駕駛事故後,NVIDIA就不再進行實際路況的測試,而是放到模擬環境下進行測試,在模擬情況下的學習效率也會更高。

DGX在電信行業的應用,主要用於移動邊緣計算。邊緣計算主要是在霧端,目的是在霧端、邊緣端可以有相關的Inference GPU伺服器。所有物聯網的裝置比如紅綠燈、探頭、無人機、VR頭盔等都可以通過5G進行識別。換句話說,不再需要IOT裝置上的嵌入式GPU,因為5G會使網路成本變得很低,完全可以利用邊緣伺服器中的GPU來做Inference,從而獲取更好的結果。