揭秘英偉達(dá)GPU在深度學(xué)習(xí)取得突破背后的技術(shù)細(xì)節(jié)

時(shí)間:2018-05-21

來源:網(wǎng)絡(luò)轉(zhuǎn)載

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

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

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

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

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

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

以下是我們的結(jié)果:

在訓(xùn)練ResNet-50時(shí),一個(gè)V100TensorCoreGPU的處理速度能達(dá)到1075張圖像/秒,與上一代PascalGPU相比,它的性能提高了4倍。

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

一個(gè)由8個(gè)TensorCoreV100驅(qū)動(dòng)的AWSP3云實(shí)例可以在不到3小時(shí)內(nèi)完成ResNet-50的訓(xùn)練,比TPU實(shí)例快3倍。

圖1:VoltaTensorCoreGPU在訓(xùn)練ResNet-50時(shí)所取得的速度突破

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

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

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

英偉達(dá)VoltaGPU中引入了TensorCoreGPU架構(gòu),這是英偉達(dá)深度學(xué)習(xí)平臺的巨大進(jìn)步。這種新硬件能加速矩陣乘法和卷積計(jì)算,這些計(jì)算在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)占總計(jì)算的很大一部分。

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

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

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

圖2:VoltaTensorCore矩陣乘法計(jì)算

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

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

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

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

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

如圖4所示,數(shù)據(jù)會(huì)移動(dòng)到DRAM或從DRAM中移出,因此許多非卷積層的性能會(huì)受到限制。可以利用片上存儲器將連續(xù)的層融合在一起,避免DRAMtraffic。例如,我們在MXNet中創(chuàng)建一個(gè)圖優(yōu)化傳遞功能,以檢測連續(xù)的ADD和ReLu層,只要有可能就將這些層替換成融合層。在MXNet中可以非常簡單地使用NNVM(神經(jīng)網(wǎng)絡(luò)虛擬機(jī),NeuralNetworkVirtualMachine)來實(shí)現(xiàn)這些類型的優(yōu)化。

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

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

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

創(chuàng)紀(jì)錄的最高單節(jié)點(diǎn)速度

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

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

數(shù)據(jù)管道從磁盤中讀取編碼的JPEG樣例,然后再執(zhí)行解碼、調(diào)整圖像大小、圖像增強(qiáng)(如圖5所示)操作。這些操作提高了神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,從而提高了訓(xùn)練模型的預(yù)測準(zhǔn)確性。而因?yàn)樵谟?xùn)練時(shí),有8個(gè)GPU在進(jìn)行運(yùn)算操作,這會(huì)限制框架的整體性能。

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

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

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

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

創(chuàng)紀(jì)錄的單個(gè)云實(shí)例處理速度

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

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

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

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

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

圖7:在ImageNet上訓(xùn)練AlexNet所需要的時(shí)間

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

圖8:訓(xùn)練Fairseq所需要的時(shí)間

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

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

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

總結(jié)

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

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

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

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

中傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:

凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

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

如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

關(guān)注伺服與運(yùn)動(dòng)控制公眾號獲取更多資訊

關(guān)注直驅(qū)與傳動(dòng)公眾號獲取更多資訊

關(guān)注中國傳動(dòng)網(wǎng)公眾號獲取更多資訊

最新新聞
查看更多資訊

娓娓工業(yè)

廣州金升陽科技有限公司

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