英偉達公開課實錄 | Tesla V100深度講解:專爲深度學習設計的Tensor Core有多牛?

 2017-12-28

今年5月,在加州聖何塞舉辦的 2017 GPU技術大會(GTC 2017)上,英偉達 CEO 黃仁勳發佈了使用最新一代架構Volta的NVIDIA Tesla V100,被業界稱爲「宇宙最快」GPU加速器。

12月21日晚8點,我們策劃的英偉達公開課第二期開課,主講導師NVIDIA中國高級解決方案架構師吳磊就主題《如何爲深度學習和HPC提供更高算力—Telsa V100 深度講解》,對Volta架構的最新特性、GV100的V架構、專爲深度學習設計的Tensor Core以及Volta如何加入深度學習英語進行了深度講解。同時,NVIDIA中國首席解決方案架構師羅華平與吳磊一起參與了本期公開課的Q&A環節的交流。

課程提綱如下:

-Volta架構最新特性;
-Volta架構深度解析;
-Volta加速HPC應用;
-Volta加速Deep Learning應用;
-Volta家族產品;

如果你需要本期英偉達公開課的標準課件和完整音頻,可以通過這個地址下載:https://pan.baidu.com/s/1hslIP3Q(密碼: i6mu);如果你需要試用NVIDIA Tesla V100,可以通過這個地址免費申請:https://www.marketingneat.com/registration-form/v100cmpreg?s=zhidxgkk    (中國的)

http://www.honghutech.com/ (台灣)

我們摘選了講師吳磊在講課中的部分重要內容,供你快速瞭解和掌握:

-不同於基於上一代Pascal架構的產品多樣化(有P100,P40和P4),這一代基於Volta架構的Tesla產品只推出了Tesla V100這一款——我們稱爲universial(通用)的GPU,可以同時實現HPC、AI 訓練(Training)和推理(Inference)的加速、以及虛擬化功能。相比上一代,Volta產品在各個應用領域的加速性能都有所提升,尤其是在AI Training和AI Inference上的應用,得益於新增加的張量計算單元,平均的加速比可以達到3倍。

-Tensor Core是Volta架構最重磅特性,是專門針對Deep Learning應用而設計的專用ASIC單元,實際上是一種矩陣乘累加的計算單元。(矩陣乘累加計算在Deep Learning網絡層算法中,比如卷積層、全連接層等是最重要、最耗時的一部分。)Tensor Core可以在一個時鐘週期內實現兩個4×4矩陣乘法以及與另一個4×4矩陣加法。整個計算的個數,就是在一個時鐘週期內可以實現64次乘和64次加。

-利用Tensor Core實現矩陣乘法的加速的兩種方式:1、在CUDA編程裏實現Tensor Core的調用。新的CUDA 9.0裏增加了WMMA,可以調用其中的API實現輸入矩陣的Load,兩個矩陣做乘加,還有結構矩陣的Store;2、可以利用現成庫函數,最新版本的cuDNN 7.0、CUDA9.0中的cuBLAs,TensorRT 3.0都支持Tensor Core的調用。這個方式相對比較簡單。

-目前Tensor Core可以支持的深度學習框架有Caffe、Caffe2、MXNet、PyTorch、Theano、TensorFlow等,但不支持CNTK、Chainer、Torch;

-在底層實現上,NVIDIA提供了大量SDK去支持上層應用或者框架,來最簡化、最高效地幫助用戶實現GPU加速Deep Learning的訓練或推理的過程。這些SDK包括在Training(訓練)端的SDK,如標準線性代數庫cuBLAS、深度學習算法庫cuDNN(最新版本7.0)、多GPU的集合通信庫NCCL(最新版本2.0)、基於WEB UI交互式的深度學習訓練系統DIGITS(最新版本6.0),以及Inference(推理)端SDK,如推理加速引擎Tensor RT(最新版本3.0)、智能視頻分析工具DeepStream。

-全球3組現在或者今後會大規模部署Tesla V100 GPU的數據中心:1、美國橡樹嶺國家實驗室的Summit超級計算機,將在明年完成超過3400臺Tesla V100 GPU服務器的搭建;2、日本國家先進工業科學和技術研究所(AIST)將在其數據中心部署4352顆Tesla V100 GPU;3、NVIDIA超級計算器SARURNV。SARURNV將在原有的基礎上進行升級改造。去年,SARURNV由124臺DGX-1服務器搭建而成,每臺DGX-1的服務器搭載了8顆Tesla P100 GPU,這臺超級計算機曾經在世界Top500綠能計算機中排名第一。在升級之後,SARURNV將會由660臺DGX-1V服務器組成,每臺DGX-1V服務器會由8顆Tesla V100 GPU組成。

– Tesla V100有NVLink和PCIe兩個版本,但計算核心都是GV100,都有5120個CUDA Cores以及640個Tensor Cores,不同點在於主頻和功耗。NVLink版本主頻更高,雙精度浮點計算能力可以達到7.8個TFLOPS,單精度浮點計算能力可以達到15.7個TFLOPS,而混合精度計算能力可以達到125個TFLOPS。PCIe版本對應指標分別是7個TFLOPS、14個TFLOPS和112個TFLOPS。兩個版本在計算性能上並無差異,主要取決於用戶實際需求。如果需要在GPU之間頻繁進行數據交換,那麼PCIe的傳輸帶寬可能會成爲瓶頸;如果使用NVLink版本就能達到比較好的效果,否則PCIe版本的Tesla V100是更通用的選擇;

-全世界越來越多的超算中心開始使用GPU計算集羣代替原有的CPU計算集羣,主要是因爲GPU的核心價值是可以爲客戶大幅度的節省資金。相比CPU計算集羣,GPU計算集羣會把絕大部分的成本花費在購買計算力上,而CPU的集羣有很多的成本花費在建設基礎設施、網絡、機櫃等花銷上。

主講實錄

吳磊:大家好。我是NVIDIA高級解決方案架構師吳磊。今天我將爲大家帶來NVIDIA最新推出的Tesla V100 GPU的深度講解。今天的課程將首先介紹Volta的最新特性,然後會深度解析Volta架構,接着我會帶大家瞭解一下Volta 加速HPC和Deep Learning的應用,最後爲大家介紹Volta產品家族中的一些產品。

1

熟悉GPU發展歷程的朋友可能知道,從2006年NVIDIA發明CUDA到現在,我們推出了一系列支持加速計算的產品,每代產品都以著名物理學家的名字來命名,從Tesla到Fermi、Kepler、Maxwell、Pascal,再到今年最新推出的Volta。相比於上一代,每一代新產品在計算能力上都會有顯着提升。今年5月在美國舉辦的一年一度的GPU技術大會上,NVIDIA宣佈了新一代GPU——Volta的誕生。不同於基於上一代Pascal架構的產品的多樣化(有P100,P40和P4),這一代基於Volta架構的Tesla產品只推出了一款Tesla V100——我們稱爲universial(通用)的GPU,可以同時實現HPC、AI 訓練(Training)和推理(Inference)的加速,以及虛擬化的功能。

2

從上面的四幅圖片可以看出,相比於上一代,Volta的產品在各個應用領域的加速性能都有所提升,尤其是在AI Training和AI Inference上的應用,得益於新增加的張量計算單元,平均的加速比可以達到3倍。

3

Tesla V100目前有兩款產品供大家選擇,左側的爲NVLink版本,右側爲PCIe版本。但是實際上這兩款產品的計算核心是相同的,都叫做GV100,他們都有5120個CUDA Cores以及640個Tensor Cores。我們在後面會對Tensor Core進行詳細講解。二者的不同點在於主頻和功耗。主頻更高的Tesla V100 NVLink版本,雙精度浮點計算能力可以達到7.8個TFLOPS(每秒萬億次浮點運算),單精度的浮點計算能力可以達到15.7個TFLOPS,而混合精度計算能力可以達到125個TFLOPS。PCIe版本對應的指標分別是7個TFLOPS,14個TFLOPS和112個TFLOPS。

4

從這幅圖上可以看到,Tesla V100 GPU具有五大特性:

1、Tesla V100採用了最新的12nm工藝設計。這使得在原有芯片面積上能部署更多的晶體管單元,進而顯著增加GPU芯片內部計算單元的個數,進一步提升芯片的節能性。

2、改進了Tesla V100的IO性能。我們知道,異構計算中GPU的計算能力提升是很快的,尤其在近幾年的時間裏,而瓶頸往往會出現在存儲IO或者總線IO上。在這裏,我們採用了最新的NVLink2.0技術,有效地提升了CPU與GPU或者GPU與GPU之間傳輸帶寬,並採用了最新的HBM2技術,進一步提升了顯存的帶寬和利用率。

3、採用了新的MPS多進程技術。MPS技術可以允許多個CPU的進程,同時發射CUDA任務到GPU中去執行,這可以顯著提升GPU的利用率和吞吐能力。Tesla V100採用了新的基於硬件加速的MPS技術,進一步優化任務加載的延遲,同時容納更多的客戶數量。

4、我們採用了全新的SIMT編程模型,每個線程可以擁有獨立的存取計數和堆棧,使得線程間同步通信可以更加靈活,也可以去適應更復雜的算法邏輯。

5、我們針對深度學習中的Training(訓練)和Inference(推理)大量的矩陣運算,專門設計了Tensor Core單元,這一點是整個設計中最重磅的一點。

5

上面是Tesla V100的框圖。Tesla V100的芯片面積有815平方毫米,一共有210億顆晶體管,搭載了84個SM(流多處理器)單元,其中有效單元是80個。每個SM單元中有64個單精度的處理單元CUDA Core以及8個混合精度的矩陣運算單元Tensor Core,總共有5120個CUDA Core和640個Tensor Core。還有16GB的HBM 2的顯存,帶寬可以高達900GB/s,並且支持300GB/s雙向帶寬的NVLink2.0的主線協議。

6

接下來我們看一下Tesla V100與Tesla P100的性能比較。首先看第一行,Tesla P100有10個TFLOPS的單精度浮點計算能力和21個TFLOPS半精度浮點計算能力,而基於Tensor Core ,Tesla V100有125 個TFLOPS的混合精度計算能力。對比之下,V100分別提升了12倍和6倍;再看第三行,相比於Tesla P100,Tesla V100在雙精度和單精度浮點計算性能上都有了50%的性能提升;最後一行是L1 Caches,Tesla V100在容量上有了顯著的提升,對於全局存儲訪問比較密集,並且數據局部性比較好的程序,能夠顯著提升程序的執行速度。

7

實際上,HBM2技術在上一代的 GP100就已經開始使用了。它是一種堆棧式的存儲技術,共有4096位的主線位寬,這使得存儲器可以在較低的主頻下實現較高的帶寬。而Tesla V100採用的是更新的HBM2技術,在位寬不變的情況下,主要是提升了Memory Clock的時鐘以及DRAM的利用率。這使得Tesla V100的HBM2的實際顯存帶寬比Tesla P100提升50%左右,最高可以達到900GB/s。

8

Tesla V100的NVLink版本支持NVLink2.0高速互聯總線協議。Tesla P100是支持當時的NVLink1.0協議,每顆GPU可以連接4根總線,每根總線的單向傳輸帶寬可以達到20GB/s,四根總線可以實現單向80GB/s、雙向160GB/s的IO帶寬。而在Tesla V100中,我們支持最新的NVLink2.0協議,每顆GPU最多可以實現六根總線互聯,每根總線的單向傳輸帶寬可以達到25GB/s,六根總線可以實現單向150GB/s、雙向300GB/s的IO帶寬,相比NVLink1.0,帶寬幾乎提升了1倍。

9

下面我們一起來了解下Tesla V100在可編程性方面新增的一些特性。

10

首先講一下Unified Memory(統一內存尋址)。在編寫CUDA程序的時候,我們需要在CPU端和GPU端分別定義不同的內存空間,用於存儲輸入或輸出的數據。簡單來說,Unified Memory的概念就是定義一個內存指針,既可以從CPU端去訪問,也可以從GPU端去訪問。Unified Memory經歷了一個比較長的發展歷史,2010年CUDA4率先推出了統一虛擬地址——UV的概念,當時我們叫做零複製內存,GPU代碼可以通過PCIE總線訪問固定的CPU內存,無需進行Memory Copy。

11

在CUDA6中推出了統一內存池的概念。內存池可以在CPU與GPU之間進行共享,而CPU和GPU均可以利用單一的指針來訪問管理內存。但是,當時受限於Kepler和Maxwell架構,CPU涉及的所有管理內存必須是在Kernel函數啓動之前先要與GPU同步,CPU和GPU是無法同時訪問管理內存分配空間的,而且統一的地址空間也要受限於GPU物理內存的大小。

在Pascal架構之後,我們增加了大型地址空間的支持,可以支持49位的虛擬地址空間以及頁錯誤,這是我們在Pascal架構下新增的兩大特性。其中,頁錯誤指的是GPU上代碼所訪問的頁沒有常駐GPU內存,這頁就會出錯,支持頁錯誤可以讓該頁按需頁遷移GPU內存或者映射到GPU地址空間,以便通過PCIE或者NVLink互聯來進行訪問,實現按需進行頁遷移的操作。

12

新一代Volta架構是在Pascal的基礎上新增加了Access Counters(存取計數器)功能,它可以使得頁遷移控制更加精細、合理。

Pascal架構下的頁遷移就如前一張圖片所示。它會根據GPU或者CPU上被訪問地址所在頁的位置,比如logo的訪問或者remote的訪問,按需發起頁遷移操作,這時候CPU或者GPU訪問統一內存不是直接訪問方式,而是通過頁遷移來實現的。

13

在Volta架構下面,我們新增了Access Counters的存取計數器這一特性。我們會對內存訪問的頻繁程度進行計數,只會對訪問頻繁的內存進行遷移,從而進一步提升內存訪問的效率。另外,基於NVLink連接的統一內存管理,它支持對CPU與GPU的內存進行直接訪問和cache(高速緩衝存儲器),但是目前支持這項功能的CPU實際上指的就是IBM的Power。同時,它支持CPU與GPU之間的原子操作,以及地址轉換服務(ATS)功能,可以實現GPU訪問CPU的分頁表,爲GPU提供了對CPU內存的完整訪問權限。

接下來我們來了解一下多進程服務——MPS。從Kepler的GP10架構開始,我們就引入了MPS(基於軟件的多進程服務),這種技術在當時實際上是稱爲HyperQ ,允許多個 流(stream)或者CPU的進程同時向GPU發射Kernel函數,結合爲一個單一應用程序的上下文在GPU上運行,從而實現更好的GPU利用率。在單個進程的任務處理,對GPU利用率不高的情況下是非常有用的。實際上,在Pascal架構出現之後的MPS可以認爲是HyperQ的一種實現方式。

現在在Volta架構下面,我們又將MPS服務進行了基於硬件的優化。MPS有哪些好處呢?首先可以增加GPU的利用率;其次可以減少多個CUDA進程在GPU上的上下文空間。該空間主要是用於存儲和調度資源;最後可以減少GPU的上下文的切換。但MPS實際上也是有一些使用限制的,比方它現在僅支持Linux操作系統,還要求GPU的運算能力必須大於3.5。

下面用一個例子來比較使用MPS和不使用MPS有什麼不同。

14

假設在CPU端有A、B、C三個進程,每個進程都要發射CUDA Kernel的任務到GPU上去,並且假設它們每一個獨立的任務對GPU利用率都不高。

15

16

17

在不使用MPS服務的情況下,A、B、C三個進程實際上也可以同時把CUDA任務發射到GPU上去,但是默認採用時間片輪轉調度的方式。首先第一個時間片,A任務被執行,接着第二個時間片,執行B任務,第三個時間片, C任務將被執行。時間片是依次進行輪轉調度的,分別執行A、B、C中的任務。

18

此時我們可以直觀地看到, 在GPU中,每一個時刻只有一個任務在執行。這種情況下,CPU中的process(進程)發射的CUDA任務對GPU的利用率是很低的!

19

接下來看一下基於Pascal架構的MPS服務對任務的處理情況。從右側的框圖可以看到A、B、C三個進程分別提交各自的任務到MPS的服務端,並在服務端整合爲一個統一的上下文,並將三個任務同時發射到GPU中執行,這就有效地提升了GPU的利用率。在Pascal架構下,MPS是最多可以支持16個進程或者說16個用戶同時去提交任務的。

20

Volta架構對MPS的實現做了進一步的改進,主要是基於硬件加速的方式來實現。此時不同的進程是可以直接穿過MPS服務器,提交任務到GPU的硬件,並且每個進程客戶端有隔離的地址空間,這樣可以進一步減少Launch(發射進程)時帶來的延遲,也可以通過限制執行資源配置來提升服務質量。這裏所說提升服務質量是指怎麼樣平衡多個process(進程)發射任務對計算和存儲資源的佔用情況。比如我們現在可以去設定每一個process上下文,最多可以使用多少個資源。Volta下的MPS服務最多可以允許同時48個Client(客戶端)。

21

我們用一個benchmark(基準)來進行比較,進而瞭解MPS技術到底能帶來哪些好處。我們知道,對於單個任務佔用GPU資源比較少的情形,MPS服務是非常有用的,比如在深度學習中做Inference(推理)應用。相比Training(訓練),Inference對於計算和存儲資源的要求比較小,這個時候會出現我們之前看到的情況,單一的Kernel任務是沒法有效利用GPU的。從上面的benchmark可以看到圖中最左側灰色的柱狀圖,在不使用MPS的情況下,Inference的吞吐性能很小;而中間綠色的柱狀圖,使用MPS允許多個Client同時發射計算任務到GPU,此時GPU吞吐性能直接提升了七倍;最後一個柱狀圖表示,如果我們使用MPS,並結合Batching操作,吞吐性能還能繼續再提升60%左右。由此可見,對於像Deep Learning的Inference這樣的應用,MPS技術是可以有效地幫助我們優化GPU利用率以及程序的吞吐性能。

22

在上一節裏面,我們主要是講解了Tesla V100的最新特性,包含計算性能和IO性能的提升,還有可編程性中針對Unified Memory和MPS技術的改進。在第二節,我會帶着大家一起來深度解析Tesla V100計算核心,我們稱之爲GV100的V架構的特性。

23

首先我們看到在GV100中每個流多處理器SM的單精度浮點計算單元個數是64個,雙精度浮點計算單元格數是32個,這和上一代Pascal的GP100架構是完全相同的。但是,GV100中增加了INT32以及Tensor Core兩種計算單元。這在之前的GPU架構中是沒有的。在Volta之前,整型運算主要是由單精度浮點計算單元以及SFU單元來完成的。另外Tensor Core單元是專門爲混合精度矩陣乘法而設計的。在後面我們還會詳細講Tensor Core。另外,值得注意的是,L1 cache和 Shared Memory再次被整合到了一起,二者各自的最大分配是96KB。

24

通過兩張框圖比較一下Pascal架構與Volta架構的L1 cache和Shared Memory有什麼不同。首先,在Pascal架構下,L1 Cache值固定是24kb,Shared Memory固定是64kb,而且二者是獨立的。並且Shared Memory的帶寬比較高,延遲比較小。而在Volta裏,我們將二者整合在了一起,可以達到128kb,可以分別配製成32、48或者96三種模式,並且L1 cache和Shared Memory有着相同的帶寬和延遲的,這實際上等於極大地提升了L1 cache的大小以及性能。

25

通過這頁的benchmark來看一下這樣做到底有什麼好處。我們知道在CUDA程序裏Shared Memory是可以被程序員手動控制的,並且可以利用它對全局內存訪問進行優化。而相比之下,L1 cache是不能被直接控制的,也就是說它對程序員來講是透明的,但是有效地利用合併訪問機制仍然可以利用L1 cache,從而極大提升內存訪問性能。我們從右側的柱狀圖可以看出,在Volta架構下,L1 cache提升全體內存訪問的性能已經接近Shared Memory的90%,極大提升了可編程性,使得我們在一些場合可以不用手動地使用Shared Memory進行程序優化也能達到比較好的性能!

26

接下來我們瞭解一下在Volta架構下新增加的一個特性——獨立線程調度機制。

27

獨立線程調度機制可以這樣理解,主要是爲線程與線程之間的通信和同步提供更加靈活的方式。

28

GPU中的線程執行實際上是以WARP爲基本單元執行的,每個warp包含32個線程,這32個線程擁有共同的程序計數器,叫做Program Counter,還有Stack(堆棧)。無論程序是否出現分支,32個線程在同一個時刻都要執行相同的指令。

29

比如上圖這樣的一段代碼,用現成ID號來定義程序的分支。我想讓0到3號執行A、B指令,其他線程去執行X、Y指令。執行過程就像右圖中所示,首先0到3號線程會去執行A、B指令,但同時其他線程會處於空跑的狀態。接下來其他線程去執行X、Y指令,而0到3號線程處於空跑狀態。所以說整個指令執行完畢的時間,實際上是A、B、X、Y四個指令的執行時間之和。這就是我們通常講的,在WARP內出現分支時的執行時間軸。

30

如果我需要在A指令與X指令執行之後,進行一個線程之間的同步通信,例如線程從0到3執行指令B時需要利用指令X的執行結果,而這種算法在Pascal架構下是沒有辦法實現的。

31

在Volta架構下,我們改變了這種線程調度機制。每一個線程可以有自己獨立的程序計數器PC以及堆棧,這使得每個線程可以獨立進行線程的調度。

32

在我們所舉的例子裏,執行指令B之前需要新同步通信得到A和X的結果。我們可以在A指令和X指令執行之後,進行一個WARP內的同步。我們在CUDA9裏面新增加的一個函數——syncwarp,這樣就改變了指令的執行順序。可以看右邊的圖,此時變成了什麼呢?首先線程0到3去執行指令A,然後其他的線程去執行指令X,接下來0到3再去執行指令B,最後是其他線程再去執行指令Y。需要注意的是,此時在這個分支的外部,我們還需要再進行顯式的syncwarp的線程同步的聲明。

33

接下來的小節裏,我會向大家重點介紹Tensor Core,也是Volta架構裏面最重磅的特性。

34

Tensor Core實際上是一種矩陣乘累加的計算單元。矩陣乘累加計算在Deep Learning網絡層算法中,比如卷積層、全連接層等是最重要、最耗時的一部分。Tensor Core是專門針對Deep Learning的應用而設計的專用ASIC單元,可以在一個時鐘週期內實現兩個4×4矩陣的乘法以及與另一個4×4矩陣的加法。整個計算的個數就是我們在一個時鐘週期內可以實現64次乘和64次加。

35

Tensor Core的矩陣乘累加運算是一種混合精度運算。我們前面提到的一個V100可以實現125 TLOPS的混合精度運算,指的就是Tensor Core的混合精度。比如我們現在要計算D=A*B+C這樣的矩陣乘累加運算,實際上這裏面要求A、B兩個矩陣必須是半精度,即FP16的類型。而加法矩陣C還有結合矩陣D既可以是FP16類型,也可以是FP32類型。在Tensor Core中,這是需要大家注意的一個特性。

36

在具體實驗過程中,Tensor Core以WARP爲單元執行。一個WARP中執行的是一個16×16×16的矩陣乘累加運算。這裏就用到了剛纔我們提到syncwarp線程之間進行數據交換和同步的機制。

37

關於如何利用Tensor Core實現矩陣乘法的加速,我們提供兩種方式。第一種方式如右側圖中展示的代碼,在CUDA編程裏實現Tensor Core的調用。我們在新的CUDA 9.0裏增加了一個祕密空間——WMMA,可以調用其中的API去實現輸入矩陣的Load(加載),兩個矩陣做乘加,還有結構矩陣的Store(存儲)。而第二種方式相對比較簡單,可以利用現成的庫函數,最新版本的cuDNN7.0、CUDA9.0中的cuBLAs,TensorRT3.0都支持Tensor Core的調用。

Tensor Core的功能正在被集成到越來越多的深度學習框架裏去,目前Tensor Core可以支持的深度學習框架有Caffe、Caffe2、MXNet、PyTorch、Theano、TensorFlow等,但CNTK、Chainer、Torch目前還不支持Tensor Core的調用,這點需要大家特別注意一下。

38

第二幅圖是一個benchmark的測試結果,左側的灰色的柱狀表示的是Tesla P100+CUDA8調用cuBLAS庫,進行混合精度的矩陣乘法得到的性能,而右側綠色的柱狀表示Tesla V100+CUDA9調用cuBLAS庫,實現混合精度矩陣乘法的性能。可以看到,Tesla V100相比於Tesla P100提升了9.3倍。

39

我們進入第三節的內容。在第二節裏面我們剖析了Tesla V100的V架構特性,解釋了新的SIMT模型,獨立線程調度的概念,並重點說明了Tensor Core的工作原理以及調用的方式。在第三節裏面,我們會帶着大家瞭解Tesla V100在HPC中的一些應用。

40

實際上排名前15的HPC商用軟件都可以支持GPU的加速,比如我們比較熟悉的ANSYS、Gaussian、VASP、AMBER。它們在物理、化學、生物、流體電磁等領域的設計、仿真、驗證方面都起到至關重要的作用,可以極大提升工程師的工作效率,促進產品創新。很多產品在GPU上的加速效果,相比於CPU可以達到幾倍甚至十幾倍的加速比。在未來,Tesla V100 GPU將會爲這些HPC軟件提供更好的加速效果。

41

讓我們來看一下Tesla V100 GPU在一些HPC算法中的benchmark測試,比如矩陣乘,快速傅里葉變換,QUDA等等。從圖中可以看到,相比Tesla P100的GPU,Tesla V100的平均加速比是在1.5倍左右。由於這些算法都是使用雙精度浮點計算,所以這個結果與Tesla V100的雙精度浮點計算能力方面比Tesla P100有50%的性能提升是直接相關的。

來關注幾組現在或者在不遠的將來會大規模部署Tesla V100的GPU的數據中心。

42

第一個是美國的橡樹嶺國家實驗室,它將在明年完成超過3400臺Tesla V100 GPU服務器的搭建,這臺超級計算機稱爲Summit。相比於上一代超級計算機Titan(Titan,中文名泰坦,是在2012年建造的,今年的全球排名是第四名),Summit的浮點計算性能大概提升了10倍,也爲各種HPC的應用提供5到10倍的性能提升。

43

第二個是日本的國家先進工業科學和技術研究所(AIST)將在其數據中心部署4352顆Tesla V100 GPU,實現37PetaFLOPS的雙精度浮點計算性能,以及大約0.55ExaFLOPS的混合精度計算性能。該超算中心將會爲一些世界級的AI研發提供創新平臺,以使得AI的研發成果能夠更快地部署到商業和社會應用中。

44

第三個是NVIDIA超級計算器——SARURNV。SARURNV將在原有的基礎上進行升級改造。去年,SARURNV由124臺DGX-1服務器搭建而成,每臺DGX-1的服務器搭載了8顆Tesla P100 GPU,這臺超級計算機曾經在世界Top500綠能計算機中排名第一。在升級之後,SARURNV將會由660臺DGX-1V服務器組成,每臺DGX-1V服務器會由8顆Tesla V100 GPU組成。

45

全世界越來越多的超算中心開始使用GPU計算集羣代替原有的CPU計算集羣,主要是因爲GPU的核心價值是可以爲客戶大幅度的節省資金。從右邊的兩個餅圖可以看到,相比CPU計算集羣,GPU計算集羣會把絕大部分的成本花費在購買計算力上,而CPU的集羣有很多的成本花費在建設基礎設施、網絡、機櫃等花銷上。從左側的benchmark的對比看到,假設有18臺GPU服務器,每臺是由2顆CPU和4顆V100的GPU,同等計算力的情況下,對於不同的算法,需要多少CPU的計算集羣。

RTM算法需要360顆CPU放入五個機櫃,VASP的算法需要1152顆CPU放入14個機櫃。而對於ResNet-50深度學習訓練模型來說,需要有1764顆CPU去實現同等計算力。相比而言,從成本、功耗方面,GPU集羣擁有巨大的優勢!

46

在第四部分,我們再來看一下Tesla V100 GPU在加速深度學習應用方面會有哪些提升。在這一節裏面我也會簡單的跟大家介紹一下幾個Tesla V100 GPU在深度學習開發生態中比較重要的軟件SDK。

47

提到Deep Learning(深度學習),大家一定會想到GPU。我認爲GPU在Deep Learning方面如此受歡迎主要有兩方面原因,第一是GPU在硬件性能上擁有強大的浮點計算能力。無論是對於訓練端,還是推理端來講,GPU相比CPU都有巨大的性能優勢。並且,NVIDIA每年推出新的GPU產品在計算性能上也在不斷地提升。由於GPU產品多樣化的特徵,無論是針對雲端的數據中心,還是自動駕駛汽車或者嵌入式智能機器人,我們都有對應的GPU產品可以被用戶所選擇。因此從訓練端到推理端的解決方案方面,GPU有着天然優勢!

對於一個訓練好的神經網絡模型,我們當然希望在做推理時,可以最小化導入模型、修改模型、執行模型。如果在訓練端使用GPU處理器,並在推理端使用同樣架構的GPU處理器,並且實現比較高的吞吐和低延遲,當然是最好不過的選擇!

48

GPU在Deep Learning方面受歡迎的第二個原因,它擁有一套非常強大且完整的生態體系。無論是對計算機視覺、語音識別和翻譯,或者是自然語言處理方面的應用,我們都可以使用GPU進行加速。目前所有主流的深度學習框架,像Caffe、TensorFlow、MXNet、CNTK等都支持GPU的加速。對使用這些框架的用戶來講,這種加速是透明的,通常我們只需要在執行腳本里面加入類似於GPU enable的命令就可以了。

那麼,在底層實現上,NVIDIA提供了大量SDK去支持上層應用或者框架,來最簡化、最高效地幫助用戶實現GPU加速Deep Learning的訓練或推理的過程。這些SDK包含了像標準線性代數庫cuBLAS、深度學習算法庫cuDNN、多GPU的集合通信庫NCCL以及推理加速引擎Tensor RT等。我會一一地向大家介紹。

50

先來看一下在Training(訓練)端的SDK。第一個是cuBLAS庫,cuBLAS是標準線性代數庫在GPU上實現的一種封裝。大家可以看到這幅圖的兩個benchmark測試結果,我們分別比較了Tesla P100和Tesla V100在單精度浮點計算矩陣乘法和混合精度浮點計算矩陣乘法方面的性能。

左側的單精度浮點計算矩陣乘法,可以看到不同矩陣大小得到加速比實際上是不一樣的,最大加速比可以達到1.8倍左右,而平均的加速比是在1.5倍。這跟Tesla V100比Tesla P100在單精度的浮點計算性能上提升50%的結果是相吻合的。

右側的混合精度浮點計算,由於Tesla V100可以使用Tensor Core進行加速,所以最大的加速比達到了9.3倍。因此Tensor Core在矩陣乘法方面的性能優勢可見一般。

51

在Training方面第二個比較重要的庫是cuDNN。cuDNN是深度學習基礎模塊加速庫,可以支持所有主流的深度學習框架,比如Caffe、Tensorflow、CNTK、Theano、PyTorch等,這些基礎模塊指的是深度學習框架中常用的一些layer(神經網絡層)操作,比如卷積、LSTM、全連接、Pooling(池化層)等。那麼cuDNN的優勢有什麼呢?首先它將layer專門針對GPU進行了性能調優;第二是cuDNN以調用庫函數的方式進行神經網絡設計,能夠大大節省開發者的時間,讓大家可以將時間和精力集中在神經網絡的設計和實現,而不是去進行GPU代碼的開發和性能調優。

在這個benchmark中大家都可以看到,分別使用了八顆不同架構的GPU服務器對GoogLeNet網絡進行訓練的性能對比,大家可以只看最後兩個綠色的柱狀圖,分別代表的是八顆P100的DGX-1服務器以及八顆Tesla V100的DGX-1V服務器。大家可以看到二者的性能差異大概是在2.5倍左右,也就是我們在Tesla V100上進行Deep Learning 訓練時的性能提升水平。

52

接下來介紹的SDK是NCCL。NCCL表示的是NVIDIA集合通信庫的一個簡稱。它是多GPU之間常用的一些集合通信算法,比方說all-reduce、all-gather以及broadcast等等,它能夠自動檢測GPU之間的拓撲連接關係,再結合通信採用最佳的路徑實現數據IO。在最新的NCCL 2.0版本里面,增加了對多服務器節點的支持,在NCCL 1.0版本里面我們只是支持單節點內的多GPU,但目前NCCL 2.0可以支持多節點的,並且可以同時支持PCle和NVLink連接方式。大家從右側的benchmark可以看到,從單節點一顆GPU到單節點八顆GPU,再到兩個節點16顆GPU,以及四個節點32顆GPU,使用NCCL實現的Deep Learning 訓練的吞吐性能幾乎是線性增長的,其實這是非常難達到的一個性能。而目前NCCL 2.0最多可以支持八個服務器節點的並行。

53

接下來要給大家介紹一個工具,叫做DIGITS。DIGITS是一個基於WEB UI交互式的深度學習訓練系統。對於深度學習的初學者或數據科學家來說,這個工具能夠爲他們提供極大的便利性,主要有四個方面的功能。

1、進行數據的預處理。比如說我可以把一些原始的jpeg格式的圖片轉成lmdb或者leveldb這樣的數據庫導入到DIGITS。

2、我可以利用DIGITS去配置我的網絡模型,比如我去選某個Deep Learning的框架,某一個標準的模型,比如AlexNet、GoogLeNet等,或者自定義一個網絡模型,然後去設置模型訓練參數,以及要使用哪些GPU。

3、可以實時動態地監控整個訓練過程。當導入數據和配置網絡模型完成後,就可以點擊按鈕開始訓練,在訓練過程中可以實時動態地去監控loss和accuracy這樣的參數曲線以及GPU、 CPU的利用率,包括顯存和內存的使用情況都可以一目瞭然。

4、訓練完成之後,我們還可以使用保存的訓練好的model的參數進行一些測試,包括網絡層可視化這樣的工作。目前DIGITS支持的深度學習框架包括了Caffe、PyTorch和TensorFlow,支持的算法主要是包含了圖像分類、圖像分割、目標檢測。

54

55

56

57

58

59

下面我會給大家展示幾組Tesla V100在不同的Deep Learning的framework上,針對不同的網絡模型的一些benchmark測試結果,他們對比的都是八顆Tesla V100以及八顆P100的性能加速。左邊展示的是Tesla V100的PCIe卡的性能加速,右邊展示的是Tesla V100的NVLink卡的性能加速。大家可以挑選自己使用的framework測試結果來看,我就不一一介紹了。針對不同的framework,實際上Tesla V100的加速效果確實會略有不同,需要向大家說明的是,這些framework測試中包括Caffe、Caffe2、TensorFlow、MXNet以及PyTorch,他們都支持Tensor Core,但是目前CNTK還不支持Tensor Core。

60

61

接下來我們來看一下在Inference(推理)端的SDK的工具。首先是TensorRT,TensorRT是可編程的處理加速器,主要是用來部署神經網絡到Inference端之前,對於網絡進行優化加速,來提高程序的吞吐量以及降低延遲。TensorRT理論上可以支持所有主流的深度學習框架,目前最新的版本是3.0版,可以支持Caffe 模型的直接導入,還有就是TensorFlow模型轉換爲UFF格式後的導入。對於其他的framework,需要用戶手動的去調用一些API進行模型和參數的導入,而且在TensorRT 3.0裏面還加入了對Python接口的支持,原來我們是隻支持C++的,目前加入了Python,這樣使得導入網絡模型可以變得更加容易一些。

62

TensorRT 能夠幫助我們做哪些網絡模型優化呢?大家可以看到右邊這個圖裏面有五大優化方面,這裏面着重介紹兩個,第一個叫做權重係數和激活值的精度校準,我們知道在Training端,一般計算精度是FP32單精度的。但是在做Inference部署的時候,在整個網絡精度變化不大的情況下,我們更關心延遲和吞吐。實際上這也是降低計算精度的一個很常用的方法。比如我們可以將FP32的精度降爲FP16或者INT8,由於量化範圍縮小,我們只需要在量化過程中做一些動態的校準,TensorRT 就可以自動幫助我們完成校準過程,並且精度損失縮到最小化。

第二個叫做網絡層的合併,在網絡模型裏,通常一個layer(網絡層)就需要發射一次Kernel,而在layer比較小的情況下,這種發射的效率是比較低的,因爲每次Kernel發射是需要耗時的,並且對GPU的利用率也不會很高。這時TensorRT 就可以自動地去檢測一些可以合併的來源,把它們合併成一個比較大的Kernel發射,減少Kernel發射並且提升GPU的利用率。關於其他的一些優化方法,大家可以再參考TensorRT 用戶手冊進行詳細的瞭解。

63

TensorRT的部署流程可以分成兩部分。首先是向TensorRT 導入訓練好的網絡模型、參數,輸入一組測試集數據,這個數據集不用太大。在TensorRT 啓動之後,會根據我們剛纔所說的幾大優化方式依次對網絡模型進行優化,對於規模不大的網絡,這個過程可能需要耗費幾分鐘的時間。在執行完成之後,它會輸出一個優化策略,如上圖所示的Plan。這時我們可以選擇將這個優化策略以序列化的方式導出到磁盤文件進行存儲,這樣,這個策略文件就可以被複制以及移植到不同的設備端來使用。接下來我們就可以拿着這個優化策略文件連通TensorRT 的引擎,一起部署到線上服務端。

64

我們在上面這幅圖裏給出了兩組TensorRT 3.0 Performance的benchmark,左側的benchmark是對一個CNN網絡ResNet-50的測試結果,大家可以先看第二和第四個柱狀圖,這裏面是比較了使用V100 加TensorFlow,也就是不用TensorRT做優化 ,然後直接做Inference,此時的吞吐量是305,在使用TensorRT 加速以後,吞吐量提升到5707,大概是20倍的性能提升。另外,大家再看第三和第四個柱狀圖,可以看到同樣使用FP16的計算精度,Tesla V100比Tesla P100提升了大概3倍多的性能,這主要得益於Tensor Core的加速。

右邊的benchmark是對一個RNN網絡OpenNMT的測試結果。大家可以先來看二和四這兩個柱狀圖,使用Tesla V100+Torch直接做Inference,這時候吞吐量是26.16,我們用TensorRT 加速以後,吞吐量直接提升到了541,加速比可以達到20倍以上。我們再來看第三和第四,比較一下Tesla P100和Tesla V100的加速,可以看出Tesla V100大概比Tesla P100加速比在1.5倍左右,這主要是因爲我們在該網絡模型裏使用FP32進行Inference,無法使用Tensor Core進行加速,實際上TensorRT 目前對RNN網絡只能支持FP32的精度,還不能支持到FP16。

65

在Inference端的最後一個SDK的軟件我們叫做DeepStream,DeepStream主要是針對於智能視頻分析的一個工具,智能視頻分析我們稱之爲IV。實際上IV的工作流程主要是包含三個部分,首先是做視頻解碼,然後進行圖片的預處理,比如Reset(重置)或顏色空間的轉換等,最後是基於神經網絡的推理操作。GPU有獨立的編解碼單元,並且可以支持多種編解碼格式。我們在調用DeepStream SDK的時候是可以將視頻的解碼以及Inference(推理)的功能集中在一起,直接利用GPU上的NVdata單元做解碼,利用Cuda core做Inference,方便開發者使用,同時提升處理的效率。

從右邊的benchmark中,大家可以看到在測試環境爲720P的視頻解碼裏面採用GoogLeNet做神經網絡的分類預測,這個時候我們可以用DeepStream SDK搭載一張P4的GPU服務器,而它的視頻流的處理能力大概相當於13臺E5 CPU雙路服務器,因此整個的性能提升還是非常可觀的。

66

67

前面四個部分主要是給大家介紹了關於Volta架構的解析以及在HPC和Deep Learning中的一些應用。最後一部分給大家介紹Volta產品家族。首先針對Deep Learning的應用,如果只做Training或者既需要做Training,又需要做Inference這樣的場景,Tesla V100肯定是最好的選擇,因爲我們搭載了最新的Tensor Core,可以支持Training和Inference的加速。對於NVLink的應用,比如Transcoding + Inference,實際上我們的Tesla P4這款GPU是最合適的,它的功耗很低,有50瓦和75瓦兩款產品,同時也能夠提供最佳的計算性能和功耗比。

對於中間的兩款Tesla V100的GPU ,NVLink版本以及PCIe版本,其實沒有非常嚴格的界限,要根據客戶的實際應用進行選擇。一般來說如果算法裏需要在GPU之間頻繁進行數據交換,那麼PCIe的傳輸帶寬可能會成爲瓶頸,如果這個時候使用NVLink版本的GPU就能達到比較好的效果,否則PCIe版本的V100是更通用的選擇,畢竟二者在計算性能上的差異並不大,而且支持PCIe版本的GPU 服務器是比較多的!

另外NVIDIA在去年推出了深度學習一體機——DGX系列產品。目前DGX有兩款產品可供選擇,分別叫做DGX Station和DGX-1 Server,它們爲需要快速部署深度學習研發環境的客戶提供了一種最佳的選擇。下面我們分別來看一下這兩款產品的技術細節。

68

70

69

DGX-1的第一代產品是NVIDIA在去年推出的。上一代產品裏面搭載了八顆Tesla P100的GPU。在今年美國GTC大會上,我們陸續推出了DGX的升級版,也叫做DGX-1V的服務器,它搭載了八顆Tesla V100GPU,它的混合精度計算能力可以達到1PFLOPS,這是由每一個V100由125個TFLOPS乘以八顆Tesla V100計算得到的。而它的NVLink帶寬最高可以達到300GB每秒。這相比上一代產品有顯著提高,剛纔我們在這部分也給大家做了詳細的介紹。另外,在其他特性上,比如搭載了兩顆Xeon CPU,8TB RAID 0磁盤陣列,4路IB,2路萬兆網接口,這些技術跟上一代的產品都是一樣的。

今年我們又推出了DGX家族的一個新成員,叫做DGX Station,也就是DGX工作站,搭載了四顆Tesla V100的GPU,GPU之間採用的是NVLink互聯,它的混合計算精度可以達到500TFLOPS,DGX Station最大的亮點是採用了靜音水冷設計,它的噪音水平小於35db,非常適合研發人員將它放在辦公室桌面端進行使用,不需要放在機房裏面。

DGX產品家族的亮點不止於剛纔我們提到它具有非常強大的硬件配置性能,同時它還向客戶提供了非常豐富的軟件棧產品。這些軟件棧主要指一些基於Docker 鏡像的封裝,比如針對深度學習主流的學習框架Caffe、TensorFlow、MXNet等,我們都會向客戶提供一些Docker 的鏡像,而且這些鏡像是NVIDIA的工程師專門針對DGX硬件做了優化,可以實現比普通的GPU服務器環境更快的性能,同時購買DGX的用戶,它的鏡像可以在NVIDIA的官方網站上進行更新,可以免費下載使用。

今天整個公開課的內容就是這些,也歡迎大家來使用我們目前宇宙最快的加速器V100。謝謝大家。

Q&A實錄

問題一
胡遠武-城市生活(北京)資訊有限公司-架構師

1、OpenGL和OpenCL能否集成,如果能集成,他的主要優勢是什麼?
2、GPU取代CPU的前景如何?
3、提升GPU利用率的關鍵點是哪些?

羅華平(英偉達中國首席解決方案架構師):1、關於第一個問題,在很多年之前Open CL可以去調用Open GL的API,就是說Open CL可以直接使用Open GL的庫函數來對OpenGL圖形信息進行處理計算,這個技術在Cuda裏也早已實現。那麼它到底有哪些優勢呢?我覺得現在用Open CL的人並不太多,雖然說Open CL是一個跨平臺的軟件,但是Open CL目前面臨的最大問題就是它雖然是跨平臺的,但是針對不同的平臺,可能需要進行不同的性能優化,所以OpenCL目前並沒有得到一個很好的推廣!另外一個方面就是Open CL是由一個聯盟組織來規範能夠加入哪些新的功能,因此OpenCL的發展就會受制於各個廠家對性能的一些要求等,因而發展比較慢。現在在異構計算裏Cuda已經是使用最普遍的一個並行編程平臺,也可以說Cuda已經是業界的一個事實標準。使用Cuda,特別是在NVIDIA GPU上,可以獲得一個最高的性能。雖然Open CL可以跨平臺,但是目前確實沒有Cuda使用的那麼快,因此它有什麼優勢,我現在確實也說不上來。在並行計算領域,我們還是推薦Cuda或者加OpenGL,來處理計算和圖形的任務。

2、可以說GPU的出現不是取代CPU的,GPU是對CPU的一個補充。GPU離開CPU是不能單獨工作的,所以GPU需要一個x86的CPU或者是IBM的Power CPU來做運行操作系統,運行整個程序只是把需要並行計算的部分我放到GPU上來加速進行,所以GPU不會取代CPU,同時GPU離開CPU也是不能工作的。

吳磊:3、實際上對於GPU利用率的提升,我們可以分兩方面來講:第一個方面,我們剛纔在介紹MPS的時候也介紹到了,如果我們現在發射的Kernel的計算量不大,那麼這時候我們可以採用多Kernel並行發射的方式,比如利用MPS技術,使得多個Kernel同時發射到GPU中去,提升GPU的利用率;另一方面,如果單一的Kernel計算量就很大,可以把GPU的資源幾乎佔滿,對於這種情況下我們就需要去考慮基於GPU以及基於Cuda的一些優化方法。比如我們知道常用的一些優化方法有:基於存儲的優化、基於指令的優化以及基於延遲的優化。具體的要去利用一些工具,比如Visual Profiler 以及其它的工具進行性能的剖析,然後在我們知道性能受限的因素之後,再進行一個具體的優化。

問題二
管偉-千丁互聯-自然語言處理工程師

做深度學習的最低配置方面,最小能出效果的數據量是多少?

羅華平:這個問題說實話不是特別好的回答,現在做深度學習主要是讓訓練速度快,訓練時間越短越好。從我們訓練的GPU平臺上來講,現在已經從標準的四卡服務器發展到八卡服務器,且八卡服務器目前也受到了大家普遍的接受,可以說在明年將成爲訓練平臺的一個主要配置。至於多少數據量才能出效果,要根據用戶的神經網絡模型來決定的,說實話,我們現在也不好確切回答,可以看到,做圖像和做語言處理需要的數據量也是不一樣的,還是需要根據具體的神經網絡的模型來看待,這是我的一點點看法!

問題三
董瑞賓-北京瑞遠機器人-視覺工程師

NVIDIA有沒有較低功耗的嵌入式平臺,可以快速部署本地化處理深度學習的成熟的解決方案?

羅華平:NVIDIA專門有一條產品線叫Tegra,這是NVIDIA嵌入式的一個解決方案。目前我們NVIDIA的嵌入式平臺有Jetson TX1和TX2兩個產品,這兩個產品的功耗非常低,大概是10W左右的功耗,但是計算力非常強,它實際上是一個SoC,是ARM + GPU這樣一個架構,能夠自己獨立運行操作系統,獨立做很多計算。目前如果你在大的GPU上訓練好的神經網絡,可以直接部署在我們的TX1和TX2去做線上的推理,像無人機、機器人甚至一些自動駕駛的方案都在採用我們TX1和TX2的解決方案。

問題四
王武峯-七彩虹科技-技術經理

目前DL各種框架(framework)比較繁多,NV是否會認爲這種情況會持續下去?

吳磊:我們都知道現在做Deep Learning有非常多的framework和非常多的方法。不同的framework實際上是針對一些不同的應用場景,比如caffe,它主要是針對CNN網絡做圖像方面的一些應用。對於「這種情況是否會持續下去」的問題,我覺得從NVIDIA角度來說,沒有辦法去回答這個問題。但是我們知道現在GPU是支持所有主流的framework的加速,而且還在進一步擴大這個名單,同時NVIDIA的工程師會和這些framework的工程師一起去優化這些規模,去實現更好的加速效果。

問題五
snow-AMD-高級軟件工程師

對於DL 的各種frameworks caffe/tensorflow/mxNet/torch, cuda 版本,cudnn, cublas,是否只有採用一個版本就能做到所有framework 都適用,可以達到兼容性。

羅華平:確實是這樣,NVIDIA的目的是通過同一個版本的cuDNN、cuBLAS和Cuda來支持所有的framework框架,這是NVIDIA的目標。可能每個框架的適配時間會略微有點差別。比如說我們現在最新的cuDNN版本是7.1,再過上一段時間,所有的框架都會引入7.1,這是我們的目標,當然時間上確實還會有點差異,比如TensorFlow會快一點,Caffe會慢一點等這些情況也會出現。但是總體來講,我們一個版本的這些庫都會支持所有的框架。

問題六
劉博-北京思普科股份有限公司-AI工程師

深度學習平臺的模型部署一般具體如何實施,還有就是都需要注意哪些?

羅華平:這個問題可以這麼來看,NVIDIA剛纔也介紹了,可以提供一個端到端的解決方案,從訓練到線上的推理,特別是在訓練平臺上,我們有自己的一體機。DGX系列有DGX-1的服務器以及DGX Station工作站系列,這個系列最大好處就是已經預裝了操作系統,預裝了針對GPU優化好的各種框架,Caffe、TensorFlow等等。這樣用戶部署起來就會非常簡單,只需要簡單的開啓設施就可以選擇你使用的深度學習框架,比如Caffe、TensorFlow等等,通過DOC的方式,只需把這個框架拉下來,就可以進行深度學習。

在訓練的時候選擇什麼樣的網絡模型,要根據自己的實際情況來看,可以選擇Google Net、AlexNet等網絡模型上進行一些修改來適應你的深度學習目標。同時需要準備相應的數據才能夠去進行訓練。

除此之外,我們還提供一個叫做DIGITS,基於web UI的圖形訓練平臺,它也可以在DGX服務器上運行。它可以通過圖形界面的方式來選擇你的神經網絡模型,選擇你的數據,你可以採用幾個GPU來做訓練,非常方便,訓練的過程也可以通過圖形化的方式顯示出來。對於在訓練這一端,如果用戶對於這些框架的部署不是特別熟悉,建議你採用DGX一體機來做深度學習的訓練。對於訓練好的模型,可以用我們的TensorRT來進行優化以及部署到不同的GPU平臺上去,我們可以支持嵌入式的平臺DIGITS、TSPACTS2,也可以支持低功耗的GPU P4或者是其他的大功耗GPU等等。

文章來源:智東西