英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集羣

去年5月,在2017年度GPU技術大會(GTC)上,英偉達發佈了超級計算機NVIDIA DGX Station。作為針對人工智能開發的GPU工作站,NVIDIA DGX Station的計算能力相當於400顆CPU,而所需功耗不足其1/20,而計算機的尺寸恰好能夠整齊地擺放在桌側。數據科學家可以用它來進行深度神經網絡訓練、推理與高級分析等計算密集型人工智能探索。

作為致力於將深度學習人工智能技術引入到智能醫學診斷的系統開發商,圖瑪深維採用了DGX Station以及CUDA並行加速來進行神經網絡模型的訓練,並在此基礎上開發出了σ-Discover Lung智能肺結節分析系統。σ-Discover Lung系統能夠幫助醫生自動檢測出肺結節、自動分割病灶、自動測量參數,自動分析結節良惡性、提取影像組學信息、並對肺結節做出隨訪,大幅度減少結節篩查時間,減少讀片工作量,提高結節的檢出率,並且提供結節的良惡性定量分析,提高篩查的效果。σ-Discover Lung系統於去年8月發佈。去年12月,圖瑪深維完成軟銀中國領投的2億人民幣B輪融資。

3月23日起,智東西聯合NVIDIA推出「NVIDIA實戰營」,共計四期。第一期由圖瑪深維首席科學家陳韻強和NVIDIA高級系統架構師付慶平作為主講講師,分別就《深度學習如何改變醫療影像分析》、《DGX超算平臺-驅動人工智能革命》兩個主題在智東西旗下「智能醫療」社群進行了系統講解。目前,「NVIDIA實戰營」第二期已經結束。「NVIDIA實戰營」第三期將於4月13日20點開講,主題為《智能監控場景下的大規模並行化視頻分析方法》,由西安交通大學人工智能和機器人研究所博士陶小語、NVIDIA高級系統架構師易成共同在智東西「智能安防」社群主講。

本文為NVIDIA高級系統架構師付慶平的主講實錄,正文共計3515字,預計5分鐘讀完。在瀏覽主講正文之前,先了解下本次講解的提綱:

-Tesla Volta GPU

-DGX-1硬件設計及軟件堆棧

-搭建DGX-1高性能AI集群

付慶平:大家好,我是付慶平,來自NVIDIA。非常感謝陳博士的講解。我來介紹一下NVIDIA做的一些突破性的工作,以及DGX這樣一個整體的解決方案。如何去幫助大家儘快地高性能地去完成自己的深度學習工作。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

這張圖片大家可以看到,從2012年開始,大家已經不斷地在進行GPU+深度學習的探索;在2015年ImageNet競賽中,DNN(深度神經網絡)圖像識別的水平已經完全超越了人類;在2015年,語音識別系統也達到了超人類的語音識別水平。這主要得益於計算本身的高可靠、高性能,能夠避免人在識別的過程中的一些環境,身體,心理等因素造成的失誤,從而達到更高的準確率。

這裡我借鑑陳博士那張PPT,從這張PPT可以看到,在醫療診斷的過程當中,圖像識別起到了非常重要的作用。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

在模型訓練之前,我們的研發人員需要去準備這樣一個深度神經網絡。在準備好我們的網絡之後,需要去訓練這個網絡,訓練的過程需要大量的數據,通過大量數據的準備和計算,去完成我們在整個網絡weights值的更新。

陳博士所提到的,每個病人可能有幾百張的照片要去計算,所有的醫院所有病人加起來,可能有幾千萬張甚至上億張的圖片需要我們去完成計算。這個過程當中,一方面我們需要優秀的算法,優秀的網絡,但另一方面我們需要非常高性能的基礎設施去完成這樣的計算過程。

在網絡訓練完成之後,就得到了一個能夠滿足我們識別需求的深度神經網絡,下一步是要把這個網絡部署到我們實際的應用場景當中。在應用場景當中,需要做到如何去高效、高性能、快速地去識別圖片。這裡需要提到兩點:

1、吞吐量,也即單位時間內所能識別的圖片數量;

2、識別的延遲。

這也是我們在訓練端所需要關注的兩個非常重要的因素。下面我基於上面幾點來介紹NVIDIA的整體解決方案。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

什麼是NVIDIA面向HPC(高性能計算)以及深度學習的整體的解決方案呢?

首先是NVIDIA所提供的Tesla GPU,最新的V100 GPU、DGX-1等基礎硬件設施,再上一層是NVIDIA所提供的SDK,我們如何更好地去應用這些高性能的硬件措施,包括CuDNN 、TensorRT等。TensorRT主要應用於推理端,CuDNN主要應用於神經網絡訓練。NCCL是GPU之間的集合通信庫,以及其他的一些數學庫。NVIDIA還提供Caffe、Caffe2、Tensorflow這些專門針對硬件進行優化的主流深度學習框架。

另外一方面,NVIDIA也為高性能計算提供完整的解決方案,我們在做深度學習優化的過程中,也在做AI的高性能計算。

我將就以下三個方面向大家介紹NVIDIA面向HPC(高性能計算)以及深度學習的整體解決方案。

V100 GPU是目前NVIDIA針對高性能計算以及深度學習所推出的最新版GPU。首先我來對NVIDIA GPU的發展做一定的介紹:

2008年,NVIDIA推出了Tesla GPU,Tesla GPU第一款就是CUDA的GPU,CUDA的出現,方便了我們科研人員在GPU上進行編程,完成自己的科研計算任務。

2010年,在Fermi GPU中,增加了雙精度計算以及內存ECC相關功能的支持,每一代GPU都會有新的功能加入,其計算能力上也會有非常大的提升。

2012年,開普勒GPU,增加了動態的線性調度以及GPU Direct等功能,GPU Direct可以實現GPU之間的直接通信,對GPU間並行計算的性能有了非常大的提升。

在Pascal架構的GPU中增加了Unified Memory、3D堆疊顯存,以及NVLink GPU通信的一些新型功能的支持,這些功能對加速高性能計算及人工智能的發展都起了突破性的作用。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

接下來我將介紹最新的 Volta架構 V100 GPU。V100 GPU相對於P100 GPU有了突破性的提升。主要為以下幾點:

首先,Volta GPU在基本架構上有了非常大的改進。在計算能力不斷增強的基礎上,它的耗能是P100 GPU的50%,並加入了最新面向深度學習的Tensor Core專用計算單元,可以實現125 TFlOPS的運算能力;

其次,在擁有了這樣一個強大的計算核心的同時,我們在GPU內部增加了高帶寬顯存以及NVLink這樣的新型技術。面向推理端,我們提供新型的多進程服務功能,進一步增大了推理的吞吐量,降低推理延遲;

最後是單指令多數據的模型,在多進程之間增加了一個新的通信算法和功能。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

我首先對GPU的內部進行基本的介紹,在V100 GPU內集成了21B個晶體管,包括了80個SM流處理器,5120個CUDA Cores以及640個TensorCores。

右圖中綠色的部分就是我們GPU內部的流處理器,流處理器是完成計算任務最基本的處理單元。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

一個流處理器包含了64個單精度計算單元、32個雙精度計算單元、64個整型計算單元,以及8個計算能力最強的TensorCores。從圖中我們也可以看到,TensorCores在一個SM流處理器中佔用了很大的面積。

從上表中我們可以看到,針對深度學習,V100的訓練性能以及推理性能相對於P100都有了非常大的提升,其中訓練性能提升達到了12倍。在訓練的過程中會有大量的數據讀取需求,V100的高帶寬顯存帶寬達到了900GB每秒,相對於P100也有了1.2倍的提升。對於多GPU訓練,GPU之間的通信帶寬以及延遲起到了決定性的作用,V100相當於P100也有了1.9倍的提升。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

下面我對大家比較關心的,也是我們計算能力最強的Tensor Core進行介紹。

我們剛才提到Tensor Core擁有125TFLOPS的超強的計算能力,125T意味著什麼呢?也就是說一臺雙路的服務器,它的雙浮點計算能力應該在一個T左右,而加入了Tensor Core之後,GPU的運算能力可能相當於幾百塊CPU的計算能力。這樣一個計算能力的實現,主要依賴於Tensor Core在一個時鐘週期內能夠實現一個四維矩陣的乘加運算,等於是針對卷積神經網絡中矩陣的乘加運算的一個專用的運算單元。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

那麼我們如何去使用Tensor Core超強的計算能力呢?其實Tensor Core已經作為_device_函數封裝在了CUDA中,同時CuBLAS、CuDNN也提供了相應的調用Tensor Core的API,在主流的深度學習框架當中,特別是NVIDIA提供的Docker版本的Caffe 、Caffe 2都已經集成了Tensor Core的使用,前提是要把CUDA版本升級到最新。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

大家可以看到,當我們使用CUDA Core之後,V100的運算能力相對P100有了將近9.3倍的提升。

Tensor Core之外,HBM2顯存在訓練過程中也起到了非常關鍵的作用,訓練過程其實是一個數據處理的過程,牽涉到大量數據的緩存,V100高帶寬顯存的利用率相對P100也有了1.5倍的提升。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

從這張圖中可以看到V100 GPU的NVLink連接方式帶寬已經達到了300GB每秒,相當於V100有了很大的提升。在單機多卡的訓練場景當中起到了非常重要的作用。

下面對面向人工智能的超級計算機DGX-1的硬件設計及軟件堆棧向大家進行介紹。DGX-1可以說是集成了NVIDIA從基礎的硬件、SDK,到主流的深度學習框架的整體解決方案,

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

大家可以看一下DGX整體的產品系列,包括DGX Station、DGX-1以及NVIDIA GPU的Cloud服務。

DGX Station是面向桌面端,由四張NVLink連接的GPU卡組成,採用了水冷靜音的方式,非常便攜,可以放到辦公室裡使用。DGX-1面向數據中心,使用了8塊V100 GPU。GPU之間採用NVLink連接。下面我將對DGX-1硬件設計做一個詳細的介紹。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

我們來看這張表,DGX-1配備了8塊最新的Tesla V100 GPU,為這臺服務器提供了目前業界最高的人工智能以及HPC(高性能計算)的計算能力,整個系統顯存達到了128GB,同時配備了4塊1.92TB的SSD RAID 0的方式提供給大家,主要是為了降低深度學習過程中讀取數據的延遲。同時配備了4張IB EDR網卡,目的在於降低多機多卡訓練過程中網絡之間的延遲。

DGX擁有了非常優秀的硬件設計,同時也提供了一套整體的解決方案。從這張圖可以看到,DGX是基於NVIDIA Docker解決方案,在Docker容器的基礎上,NVIDIA提供Caffe、TensorFlow、Theano等所有的主流深度學習框架,這些深度學習框架都是我們的研發人員針對底層的GPU硬件以及相關的SDK經過特殊優化之後的。

我們的用戶拿到這些學習框架Image之後,在短時間內,一天甚至半天時間,就可以開始深度學習的計算任務。

基於Docker解決方案,一臺DGX-1超級人工智能服務器可以運行多個深度學習框架,避免了之前可能存在的一些軟件版本上的衝突,進一步方便進行科研任務。從下面這張圖我們可以看到在DGX Station這樣一個桌面級的服務器,可以完成程序的編譯、網絡的測試等任務,等測試任務完成之後,可以把訓練好的模型直接部署到數據中心去進行大規模的訓練。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

下面我將對如何運用DGX-1來搭建一套高性能的AI集群進行介紹。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

這張圖片所顯示是使用NVIDIA的DGX-1所搭建起來的一臺124個節點組成的超級計算機,我們就以這個為出發點的來研究如何搭建DGX高性能超算集群。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

在集群中,DGX-1作為基本的計算節點,節點之間的連接是通過EDR IB Switch交換機,每個節點配備了四張IB EDR的網卡,以達到最佳的訓練性能。同時集群也採用了Docker解決方案,當訓練好自己的模型之後,可以直接使用Docker容器的方式,部署到我們的集群當中進行訓練。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

在集群搭建的過程當中,我們要考慮以下幾點:

1、如何獲得最高的計算能力,當然是要配備最新的高性能GPU。

2、網絡如何互聯,傳統的高性能集群,一般是每個節點單張EDR卡。而在DGX-1集群當中,單節點都配備了四張EDR卡,實驗也表明四張EDR卡,能夠顯著地提升訓練性能。

3、存儲,因為牽扯到大量數據的訓練,我們擁有了Tensor Core這樣一個最高的計算能力,就必須配備高性能低延遲的存儲,在單臺的DGX-1中我們也都配備了SSD的緩存。

4、基礎設施,目前DGX-1所搭建的集群在Green500是排名第一的,這點我就不多做介紹了。

英偉達高級系統架構師付慶平:如何搭建DGX-1高性能AI集群

這張圖主要介紹了在DGX-1 中8卡GPU、4張MLX0 EDR卡場景下,如何實現多節點之間的通信。也可以看到我們通過PCIe進行CPU到GPU到MLX0 EDR卡之間的綁定,進一步提高訓練時的通信效率。

最後我想說,DGX-1不僅僅只是一臺硬件的服務器,更重要的它集成了NVIDIA整體的解決方案,包括主流的深度學習框架以及NVIDIA所能提供的一些優秀的深度學習的SDK。


分享到:


相關文章: