基于深度學習的人工智能如今能夠解決一度認為不可能解決的問題,例如計算機理解自然語言并以自然語言對話、自動駕駛等。深度學習在解決諸多挑戰(zhàn)時都頗有成效。受此激發(fā),算法的復雜性也呈指數(shù)級增長,進而也引發(fā)了對更快計算速度的需求。NVIDIA設計的Volta Tensor Core架構(gòu)即可滿足這些需求。
NVIDIA以及許多其他公司和研究人員一直致力于開發(fā)計算硬件和軟件平臺,以滿足這一需求。例如,谷歌創(chuàng)建了TPU(tensor processing unit)加速器,該加速器目前支持運行有限數(shù)量的神經(jīng)網(wǎng)絡,并表現(xiàn)出了良好的性能。
我們將為大家分享近期的一些進展,這些進展為GPU社群帶來了巨大的性能提升。我們已經(jīng)實現(xiàn)了單芯片和單服務器ResNet-50性能的新紀錄。近期,fast.ai公司還宣布在單一云實例上實現(xiàn)了創(chuàng)紀錄的性能。
我們的結(jié)果表明:
在訓練ResNet-50時,單一V100 Tensor Core GPU可達到1075張圖像/秒,與前一代Pascal GPU相比,性能提升了4倍。
基于8個Tensor Core V100的單臺DGX-1服務器在同樣的系統(tǒng)上實現(xiàn)了7850張圖像/秒,幾乎是一年前(4200張圖像/秒)的兩倍。
基于8個Tensor Core V100的單一AWS P3云實例可在不到三個小時的時間內(nèi)訓練ResNet-50,比TPU實例快3倍。
圖1. Volta Tensor Core GPU在ResNet-50中實現(xiàn)創(chuàng)紀錄的速度(AWS P3.16xlarge實例包含8個Tesla V100 GPU)。
NVIDIA GPU基于多樣化算法的大規(guī)模并行處理性能使其自然而然成為了深度學習的理想之選。但我們并沒有停滯于此。利用我們多年的經(jīng)驗以及與全球各地AI研究人員的密切合作,我們創(chuàng)建了針對多種深度學習模式進行了優(yōu)化的新架構(gòu)——NVIDIA Tensor Core GPU。
將NVLink高速互聯(lián)與所有當前框架內(nèi)的深度優(yōu)化相結(jié)合,我們實現(xiàn)了領先的性能。NVIDIA CUDA GPU的可編程性可確保多樣化的現(xiàn)代網(wǎng)絡性能,同時提供了一個平臺以助力新興框架和未來深度網(wǎng)絡領域的創(chuàng)新。
創(chuàng)下單一處理器速度紀錄
NVIDIA Volta GPU中內(nèi)置的Tensor Core GPU架構(gòu)是NVIDIA深度學習平臺的巨大進步。這一新硬件加速了矩陣乘法與卷積的計算,這也是訓練神經(jīng)網(wǎng)絡時的計算操作的重頭。
NVIDIA Tensor Core GPU架構(gòu)使我們能夠同時提供比單一功能的ASIC更高的性能,但可針對不同的工作負載進行編程。例如,每個Tesla V100 Tensor Core GPU可為深度學習提供125 teraflops的性能,而谷歌的TPU芯片為45 teraflops?!癈loud TPU”中的四個TPU芯片可達到180 teraflops的性能;相比之下,四個V100芯片能實現(xiàn)500 teraflops的性能。
NVIDIA的CUDA平臺使每個深度學習框架都能充分利用Tensor Core GPU,加速擴展神經(jīng)網(wǎng)絡類型,如CNN、RNN、GAN、RL,以及每年涌現(xiàn)的數(shù)千種變體。
讓我們深入研究一下Tensor Core架構(gòu),以了解其獨特功能。圖2顯示了Tensor Core在精度較低的FP16中存儲張量,而使用更高精度FP32進行計算,在保持必要精度的同時實現(xiàn)吞吐量最大化。
圖2: Volta Tensor Core矩陣乘法與堆積
通過最近的軟件改進,在獨立測試中,如今ResNet-50訓練可在單一V100上做到1360張圖像/秒。我們現(xiàn)在正努力將這一訓練軟件集成到廣泛采用的框架中,如下所述。
Tensor Core所運行的張量應位于存儲器的channel-interleaved型數(shù)據(jù)布局(數(shù)量-高度-寬度-通道數(shù),通常稱為NHWC),以實現(xiàn)最佳性能。訓練框架預期的內(nèi)存布局是通道主序的數(shù)據(jù)布局(數(shù)量-通道數(shù)-寬度-高度,通常稱為NCHW)。因此,cuDNN庫執(zhí)行NCHW和NHWC之間的張量轉(zhuǎn)置操作,如圖3所示。如前所述,由于如今卷積本身如此之快,因此這些轉(zhuǎn)置顯然會占運行時間的一部分。
為避免此類轉(zhuǎn)置,我們通過直接在NHWC格式中代替RN-50模型圖中的每個張量來消除轉(zhuǎn)置,這是MXNet框架可支持的特性。此外,我們?yōu)镸XNet添加了優(yōu)化的NHWC實施,為所有其它非卷積層添加了cuDNN,從而消除了訓練期間對任何張量轉(zhuǎn)置的需求。
圖3.優(yōu)化的NHWC格式消除了張量轉(zhuǎn)置
Amdahl定律也給了我們另一種優(yōu)化的機會,該定律預測了并行處理的理論加速。由于Tensor Core顯著加快了矩陣乘法和卷積層,因此訓練負載中的其它層在運行時間中的占比就更高了。所以我們確定了這些新的性能瓶頸,并對其進行了優(yōu)化。
如圖4所示,向DRAM以及從DRAM轉(zhuǎn)移數(shù)據(jù)導致許多非卷積層的性能受限。將連續(xù)層融合在一起的做法可利用片上存儲器并避免DRAM流量。例如,我們在MXNet中創(chuàng)建了一個圖形優(yōu)化許可來檢測連續(xù)的ADD和ReLu圖層,并盡可能通過融合實施將其替換。使用NNVM(神經(jīng)網(wǎng)絡虛擬機)在MXNet中實施此類優(yōu)化非常簡單。
圖4.融合層消除數(shù)據(jù)讀/寫
最后,我們通過為常見卷積類型創(chuàng)建額外的專用內(nèi)核來繼續(xù)優(yōu)化單一卷積。
當前,我們針對多種深度學習框架進行了此類優(yōu)化,包括TensorFlow、PyTorch和MXNet?;卺槍XNet的優(yōu)化,利用標準的90次迭代訓練進度,我們在一臺Tensor Core V100上實現(xiàn)了1075張圖像/秒,同時達到了與單精度訓練相同的Top-1分類精度(超過75%)。這為我們留下了進一步提升的巨大空間,因為我們可在獨立測試中做到1360張圖像/秒。這些性能提升在NGC(NVIDIA GPU Cloud)的NVIDIA優(yōu)化深度學習框架容器中即可獲得。
最快的單節(jié)點速度紀錄
多個GPU可作為單一節(jié)點運行,以實現(xiàn)更高的吞吐量。但是,擴展至可在單一服務器節(jié)點中協(xié)同工作的多個GPU,需要GPU之間具有高帶寬/低延遲通信路徑。我們的NVLink高速互聯(lián)結(jié)構(gòu)使我們能夠?qū)⑿阅軘U展至單一服務器中的8個GPU。如此大規(guī)模加速的服務器提供了全面的petaflop級的深度學習性能,且可廣泛用于云端和本地部署。
但是,擴展至8個GPU可大大提高訓練性能,以至于框架中主機CPU執(zhí)行的其它工作成為了限制性能的因素。具體而言,為框架中的GPU提供數(shù)據(jù)的管線需要大幅提升性能。
數(shù)據(jù)管線從磁盤讀取編碼的JPEG樣本,對其進行解碼,調(diào)整大小并增強圖像(見圖5)。這些增強操作提高了神經(jīng)網(wǎng)絡的學習能力,從而實現(xiàn)對訓練模型更高精度的預測。鑒于8個GPU在處理框架的訓練部分,這些重要的操作會限制整體性能。
圖5:圖像解碼和增強的數(shù)據(jù)管線
為解決這一問題,我們開發(fā)了DALI(Data Augmentation Library),這是一個獨立于框架的庫,用于將工作從CPU分載至GPU上。如圖6所示,DALI將部分JPEG解碼工作、調(diào)整大小、以及所有其它增強功能一起轉(zhuǎn)移到了GPU中。在GPU上進行這些操作要比CPU的執(zhí)行速度快得多,因此可將工作負載從CPU分載出去。DALI使得CUDA通用并行性能更加突出。消除CPU瓶頸讓我們能夠在單一節(jié)點上保持7850張圖像/秒的性能。
圖6:使用DALI的GPU優(yōu)化工作負載
NVIDIA正在助力將DALI整合到所有主要的AI框架中。該解決方案還使我們能夠擴展至8個以上GPU的性能,例如最近推出的配備16個Tesla V100 GPU的NVIDIADGX-2系統(tǒng)。
最快的單一云實例速度紀錄
對于我們的單GPU和單節(jié)點運行,我們采用90次迭代的事實標準來訓練ResNet-50,使其單GPU和單節(jié)點運行的準確度超過75%。然而,通過算法創(chuàng)新和超參數(shù)調(diào)優(yōu),訓練時間可進一步減少,從而僅需較少次數(shù)的迭代就能實現(xiàn)準確性。GPU為AI研究人員提供了可編程性并支持所有深度學習框架,使其能夠探索新的算法方法并充分利用現(xiàn)有方法。
fast.ai團隊最近分享了他們的優(yōu)秀成果。他們使用PyTorch,不到90次迭代就實現(xiàn)了高精度。Jeremy Howard和fast.ai的研究人員將關(guān)鍵算法創(chuàng)新和調(diào)優(yōu)技術(shù)整合到了AWS P3實例,三小時內(nèi)在ImageNet上完成了對ResNet-50的訓練,該實例由8個V100 Tensor Core GPU提供支持。ResNet-50的運行速度比基于TPU的云實例快三倍(后者需花費近9小時才能完成ResNet-50的訓練)。
我們還期望本文中描述的提高吞吐量的方法也能夠應用于像fast.ai等的其它研究方式,且能夠幫助他們更快地進行聚集。
提供指數(shù)級的性能提升
自Alex Krizhevsky首次采用2個GTX 580 GPU在Imagenet競賽中取勝以來,我們在加速深度學習方面所取得的進展非常顯著。Krizhevsky花了六天的時間訓練出了強大的神經(jīng)網(wǎng)絡,名為AlexNet,這在當時勝過了所有其他圖像識別方法,開啟了深度學習革命。現(xiàn)在用我們最近發(fā)布的DGX-2,在18分鐘內(nèi)就能完成對AlexNet的訓練。圖7顯示了性能在短短5年內(nèi)500倍的提升。
圖7.在Imagnet數(shù)據(jù)集上訓練AlexNet所需的時間
Facebook AI Research(FAIR)分享了他們的語言翻譯模型Fairseq。我們在不到一年的時間內(nèi),通過最近發(fā)布的DGX-2,再加之我們眾多的軟件堆棧改進(見圖8),在Fairseq上展現(xiàn)了10倍的性能提升。
圖8. 訓練Facebook Fairseq所需的時間。
圖像識別和語言翻譯僅代表研究人員借助AI的力量解決的無數(shù)用例中的一小部分。超過6萬個使用GPU加速框架的神經(jīng)網(wǎng)絡項目已發(fā)布至Github。我們GPU的可編程性可為AI社群正在構(gòu)建的各種神經(jīng)網(wǎng)絡提供加速??焖俚母倪M確保了AI研究人員能夠就更為復雜的神經(jīng)網(wǎng)絡展開大膽設想,以借助AI應對巨大挑戰(zhàn)。
這些優(yōu)異的表現(xiàn)來自我們GPU加速計算的全堆棧優(yōu)化方法。從構(gòu)建最先進的深度學習加速器到復雜系統(tǒng)(HBM、COWOS、SXM、NVSwitch、DGX),從先進的數(shù)值庫和深度軟件堆棧(cuDNN、NCCL、NGC)、到加速所有深度學習框架,NVIDIA對于AI的承諾為AI開發(fā)者提供了無與倫比的靈活性。
我們將持續(xù)優(yōu)化整個系列,并持續(xù)提供指數(shù)級的性能提升,為AI社群提供能夠推動深度學習創(chuàng)新的工具。
總結(jié)
AI持續(xù)改變著每個行業(yè),推動了無數(shù)用例。理想的AI計算平臺需要提供出色的性能,以支持巨大且不斷增長的模型規(guī)模,還需具有可編程性以應對日益多樣化的模型架構(gòu)。
NVIDIA的Volta Tensor Core GPU是世界上最快的AI處理器,只需一顆芯片即可提供125 teraflops的深度學習性能。我們很快將把16塊Tesla V100整合成一個服務器節(jié)點,以創(chuàng)建全球速度最快的計算服務器,其可提供2 petaflops的性能。
除了優(yōu)異的性能,GPU 的可編程性以及它在云、服務器制造商和整個AI社群中的廣泛使用,將推動下一場AI變革。
我們能夠加速以下所有您常用的框架:Caffe2、Chainer、CognitiveToolkit、Kaldi、Keras、Matlab、MXNET、PaddlePaddle、Pytorch和TensorFlow。此外,NVIDIA GPU與迅速擴展的CNN、RNN、GAN、RL和混合網(wǎng)絡架構(gòu)、以及每年新登場的數(shù)千種變體配合運行。AI社群已經(jīng)出現(xiàn)了眾多令人驚嘆的應用,我們期待繼續(xù)賦力AI的未來。
-
gpu
+關(guān)注
關(guān)注
28文章
4678瀏覽量
128612 -
人工智能
+關(guān)注
關(guān)注
1791文章
46691瀏覽量
237179 -
深度學習
+關(guān)注
關(guān)注
73文章
5471瀏覽量
120903
原文標題:又創(chuàng)紀錄!Volta Tensor Core GPU實現(xiàn)新的AI性能突破
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論