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