傳動網 > 新聞頻道 > 技術前沿 > 資訊詳情

揭秘英偉達GPU在深度學習取得突破背后的技術細節(jié)

時間:2018-05-21

來源:網絡轉載

導語:近年來,英偉達在高速計算之路上越走越快。日前,英偉達DeveloperBlog上一篇博文詳細陳述了英偉達VoltaTensorCoreGPU在深度學習社群取得的巨大突破,以及種種突破背后的技術細節(jié)。

【揭秘英偉達GPU在深度學習取得突破背后的技術細節(jié)】2017年5月,在GTC2017上,英偉達CEO黃仁勛發(fā)布Volta架構TeslaV100,它被稱為史上最快GPU加速器。2018年3月,同樣也是在GTC上,黃仁勛發(fā)布「全球最大的GPU」——DGX-2,搭載16塊V100GPU,速度達到2petaflops。

近年來,英偉達在高速計算之路上越走越快。日前,英偉達DeveloperBlog上一篇博文詳細陳述了英偉達VoltaTensorCoreGPU在深度學習社群取得的巨大突破,以及種種突破背后的技術細節(jié)。正文如下:

由深度學習驅動的人工智能現(xiàn)在解決了曾一度被認為不可能的挑戰(zhàn),比如讓計算機理解自然語言、進行對話以及自動駕駛。既然深度學習能如此有效地解決一系列挑戰(zhàn),隨著算法復雜度呈現(xiàn)指數(shù)級增長,我們是否能將計算變得更快呢?基于此,英偉達設計了VoltaTensorCore架構。

為了更快地計算,英偉達與許多公司以及研究人員一樣,一直在開發(fā)計算的軟件和硬件平臺。Google是個典型的例子——他們的研究團隊創(chuàng)建了TPU(張量處理單元)加速器,當利用TPU進行加速時,在訓練神經網絡時可以達到優(yōu)異的性能。

這篇文章中,我們分享了英偉達實現(xiàn)GPU巨大的性能提升后,在AI社群中取得的一些進步:我們已經在單芯片和單服務器上創(chuàng)造了ResNet-50的訓練速度記錄。最近,fast.ai也宣布了他們利用英偉達VoltaTensorCoreGPU在單個云實例上的創(chuàng)紀錄表現(xiàn)。

以下是我們的結果:

在訓練ResNet-50時,一個V100TensorCoreGPU的處理速度能達到1075張圖像/秒,與上一代PascalGPU相比,它的性能提高了4倍。

一個由8個TensorCoreV100驅動的DGX-1服務器的處理速度能達到7850張圖像/秒,幾乎是去年在同一系統(tǒng)上處理速度(4200張圖像/秒)的兩倍。

一個由8個TensorCoreV100驅動的AWSP3云實例可以在不到3小時內完成ResNet-50的訓練,比TPU實例快3倍。

圖1:VoltaTensorCoreGPU在訓練ResNet-50時所取得的速度突破

英偉達GPU在對算法進行大規(guī)模并行處理時效果極好,因此它極其適合用于深度學習。我們一直都沒有停止探索的腳步,TensorCoreGPU是我們利用多年的經驗和與世界各地的人工智能研究人員的密切合作,為深度學習模型創(chuàng)造的一種新的架構。

結合高速NVLink互連以及在當前所有框架內的深度優(yōu)化,我們獲得了最先進的性能。英偉達CUDAGPU的可編程性在這里也非常重要。

V100TensorCore打破了單處理器的最快處理速度記錄

英偉達VoltaGPU中引入了TensorCoreGPU架構,這是英偉達深度學習平臺的巨大進步。這種新硬件能加速矩陣乘法和卷積計算,這些計算在訓練神經網絡時占總計算的很大一部分。

英偉達TensorCoreGPU架構能夠提供比功能單一的ASIC更高的性能,在不同工作負載下仍然具備可編程性。例如,每一個TeslaV100TensorCoreGPU用于深度學習可以達到125teraflop的運算速度,而GoogleTPU芯片只能達到45teraflop。包含4個TPU芯片的「CloudTPU」可以達到125teraflop,相比之下,4個V100芯片可以達到500teraflop。

我們的CUDA平臺使每一個深度學習框架都能充分利用TensorCoreGPU的全部能力,加速諸如CNN、RNN、GAN、RL等各類神經網絡,以及基于這些網絡每年出現(xiàn)的成千上萬個變種。

接下來是對TensorCore架構的更深入講解,大家可以在這里看到它獨特的功能。圖2顯示了TensorCore計算張量的過程,雖然存儲是在低精度的FP16中,但是用精度更高的FP32來進行計算,可以在維持精度時最大化吞吐量。

圖2:VoltaTensorCore矩陣乘法計算

隨著最近的軟件改進,目前在單個V100上訓練ResNet-50的速度達到了1360張圖像/秒。我們現(xiàn)在正努力將這一訓練軟件集成到流行的框架中,詳情如下。

為了讓性能最佳,基于TensorCore進行張量操作的存儲器布局應該為channel-interleaved型數(shù)據布局(Number-Height-Width-Channel,常被稱為NHWC),但往往默認是channel-major型數(shù)據布局(Number-Channel-Width-Height,通常稱為NCHW)。因此,cuDNN庫會在NCHW和NHWC之間執(zhí)行張量轉置操作,如圖3所示。正如前面所提到的,由于卷積運算現(xiàn)在的速度非???,所以這些轉置操作占了總運行時間中相當大的一部分。

為了消除這些轉置操作,我們直接用NHWC格式表示RN-50模型圖中的每個張量,MXNet框架支持這一功能。此外,對所有其他非卷積層,我們還將優(yōu)化的NHWC實現(xiàn)添加到MXNet和cuDNN中,從而消除了訓練過程中對張量轉置的需求。

圖3:優(yōu)化NHWC格式,以消除張量轉置

另一個優(yōu)化是基于阿爾達姆定律(并行計算中的加速比是用并行前的執(zhí)行速度和并行后的執(zhí)行速度之比來表示的,它表示了在并行化之后的效率提升情況),這一法則能預測并行處理的理論加速。由于TensorCore顯著地加速了矩陣乘法和卷積層的計算,因此在訓練時對其他層的計算占據了總運行時間很大的一部分。我們可以確定這些新的性能瓶頸并進行優(yōu)化。

如圖4所示,數(shù)據會移動到DRAM或從DRAM中移出,因此許多非卷積層的性能會受到限制??梢岳闷洗鎯ζ鲗⑦B續(xù)的層融合在一起,避免DRAMtraffic。例如,我們在MXNet中創(chuàng)建一個圖優(yōu)化傳遞功能,以檢測連續(xù)的ADD和ReLu層,只要有可能就將這些層替換成融合層。在MXNet中可以非常簡單地使用NNVM(神經網絡虛擬機,NeuralNetworkVirtualMachine)來實現(xiàn)這些類型的優(yōu)化。

圖4:進行層融合操作,消除反復數(shù)據讀/寫

最后,我們繼續(xù)為常見的各類卷積創(chuàng)建額外的專用kernel,以進行優(yōu)化。

我們目前正在將許多這種優(yōu)化應用于多個深度學習框架之中,包括TensorFlow、PyTorch和MXNet。我們利用單個TensorCoreV100GPU進行標準的90-epoch訓練,基于在MXNet上做的改進,處理速度達到1075張圖像/秒,與此同時,我們的訓練與單精度訓練一樣達到了相同的Top-1分類精度(超過75%)。我們在單機測試中的處理速度可以達到1360張圖像/秒,這意味著性能還有很大的提升空間??梢栽贜GC(NVIDIAGPUCLOUD)上利用NVIDIA-optimizeddeeplearningframeworkcontainers實現(xiàn)性能的提升。

創(chuàng)紀錄的最高單節(jié)點速度

多個GPU可以作為單節(jié)點運行,以實現(xiàn)更高的吞吐量。然而,在將多個GPU縮到單服務節(jié)點中工作時,需要GPU之間存在高帶寬/低延遲通信路徑。英偉達NVLink高速互連結構允許我們將8個GPU作為單服務器運行,實現(xiàn)性能擴展。這些大規(guī)模的加速服務器可以讓深度學習的計算達到petaflop量級的速度,并且在云端和本地部署中都可以被廣泛使用。

然而,雖然將GPU擴展到8個可以顯著提高訓練性能,但在這種框架下,主CPU執(zhí)行其他工作時性能會受到限制。而且,在這種框架下,對連接GPU的數(shù)據管道性能要求極高。

數(shù)據管道從磁盤中讀取編碼的JPEG樣例,然后再執(zhí)行解碼、調整圖像大小、圖像增強(如圖5所示)操作。這些操作提高了神經網絡的學習能力,從而提高了訓練模型的預測準確性。而因為在訓練時,有8個GPU在進行運算操作,這會限制框架的整體性能。

圖5:圖像解碼和增強數(shù)據管道

為了解決這個問題,我們開發(fā)了DALI(DataAugmentationLibrary,數(shù)據擴充庫),這是一個與框架無關的庫,可以將計算從CPU轉移到GPU上。如圖6所示,DALI將JPEG解碼的一部分、調整圖像大小以及其他所有增強操作移動到GPU上。這些操作在GPU上的執(zhí)行速度要比在CPU上快得多,這緩解了CPU的負荷。DALI使得CUDA的并行處理能力更加突出。消除CPU瓶頸之后,在單節(jié)點上的計算速度可以達到7850張圖像/秒。

圖6:利用DALI優(yōu)化工作負荷

英偉達正在幫助將DALI融入到所有主流人工智能框架中。這一解決方案有助于提升具備8個以上GPU的系統(tǒng)的性能,比如英偉達最近發(fā)布的帶有16個TeslaV100GPU的DGX-2。

創(chuàng)紀錄的單個云實例處理速度

我們使用單GPU和單節(jié)點運行來訓練ResNet-50(90epoch),使預測準確率超過75%。通過算法的創(chuàng)新和超參數(shù)調節(jié),可以進一步減少訓練時間,在更少的epoch下達到更高精度。GPU具備可編程的特性,并支持所有深度學習框架,這使得AI研究者能夠探索新的算法,并利用現(xiàn)有的算法進行研究。

fast.ai團隊最近分享了基于英偉達硬件的優(yōu)秀成果,他們使用PyTorch在遠小于90epoch的訓練下達到了很高的精確度。JeremyHoward和fast.ai的研究人員利用8個V100TensorCoreGPU,在一個AWSP3實例上用ImageNet訓練ResNet-50。他們對算法進行創(chuàng)新,調節(jié)了一系列超參數(shù),不到3個小時就將模型訓練好了,這比基于云實例的TPU計算(需要將近9個小時來訓練ResNet-50)快三倍。

我們進一步期望這一博客中描述的提高吞吐量的方法同樣也適用于其他訓練,例如前面提到的fast.ai的例子。

效果呈現(xiàn)指數(shù)級增長

自從AlexKrizhevsky利用兩塊GTX580GPU贏得了ImageNet比賽,我們在深度學習加速方面所取得的進步令人難以置信。Krizhevsky當時花了6天時間來訓練他的神經網絡——AlexNet,這一網絡在當時的表現(xiàn)優(yōu)于所有其他的圖像識別方法,引發(fā)了一場深度學習革命。我們最近發(fā)布的DGX-2可以在18分鐘內訓練好AlexNet。從圖7可以看到,在這5年多的時間里,隨著硬件性能的提升,處理速度加快了500倍。

圖7:在ImageNet上訓練AlexNet所需要的時間

Facebook人工智能研究院(FAIR)開源了他們的語言翻譯模型Fairseq,在不到一年的時間里,我們基于DGX-2和軟件棧的改進(見圖8),在訓練Fairseq時實現(xiàn)了10倍的加速。

圖8:訓練Fairseq所需要的時間

圖像識別和語言翻譯僅僅是研究人員用AI力量解決無數(shù)難題的用例之一。Github上共有超過6萬個使用GPU加速框架的神經網絡項目,GPU的可編程性為AI社群正在構建的所有類型的神經網絡提供加速。我們的快速改進使得AI研究人員能夠想象出更復雜的神經網絡,以解決更困難的挑戰(zhàn)。

這些長久的進步得益于我們對GPU加速計算的全堆棧優(yōu)化算法。從構建最先進的深度學習加速器到復雜的系統(tǒng)(HBM、COWOS、SXM、NVSwitch、DGX),從先進的數(shù)字計算庫和深度軟件棧(cuDNN,NCCL,NGC)到加速所有的DL框架,英偉達對AI的承諾為AI開發(fā)者提供了無與倫比的靈活性。

我們將繼續(xù)優(yōu)化整個堆棧,并持續(xù)實現(xiàn)性能的指數(shù)級提升,為AI社群提供推動深度學習創(chuàng)新研究的有力工具。

總結

AI繼續(xù)改變著各行各業(yè),驅動出無數(shù)用例。理想的AI計算平臺需要提供出色的性能,能支持龐大且不斷增長的模型,并具備可編程性,以應對模型的多樣性需求。

英偉達的VoltaTensorCoreGPU是世界上最快的AI處理器,只用一塊芯片就能讓深度學習的訓練速度達到125teraflop。我們很快會將16塊TeslaV100整合到一個單服務器節(jié)點中,以創(chuàng)建世界上最快的計算服務器,提供2petaflops的計算性能。

除了在加速上的優(yōu)異性能,GPU的可編程性以及它在云、服務器制造商和整個AI社群中的廣泛使用,將帶來下一場AI變革。

無論你選擇什么深度學習框架(Caffe2,Chainer,CognitiveToolkit,Kaldi,Keras,Matlab,MXNET,PaddlePaddle,Pytorch,TensorFlow),都可以用英偉達硬件進行加速。此外,英偉達GPU還用于訓練CNN、RNN、GAN、RL、混合網絡架構以及每年基于這些網絡的成千上萬個變體。AI社群中目前存在很多驚人的應用,我們期待著為AI的下一步發(fā)展提供動力。

中傳動網版權與免責聲明:

凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(m.y3602.cn)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯(lián)網或業(yè)內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網聯(lián)系,否則視為放棄相關權利。

關注伺服與運動控制公眾號獲取更多資訊

關注直驅與傳動公眾號獲取更多資訊

關注中國傳動網公眾號獲取更多資訊

最新新聞
查看更多資訊

熱搜詞
  • 運動控制
  • 伺服系統(tǒng)
  • 機器視覺
  • 機械傳動
  • 編碼器
  • 直驅系統(tǒng)
  • 工業(yè)電源
  • 電力電子
  • 工業(yè)互聯(lián)
  • 高壓變頻器
  • 中低壓變頻器
  • 傳感器
  • 人機界面
  • PLC
  • 電氣聯(lián)接
  • 工業(yè)機器人
  • 低壓電器
  • 機柜
回頂部
點贊 0
取消 0