返回頂部
關(guān)閉軟件導(dǎo)航
位置:首頁(yè) > 資訊 > 電商資訊>一口氣摘下4項(xiàng)世界冠軍推理性能比第二名快5倍阿里云公開(kāi)技術(shù)
一口氣摘下4項(xiàng)世界冠軍推理性能比第二名快5倍阿里云公開(kāi)技術(shù)

近日,斯坦福大學(xué)DAWNBenchImageNet很新成績(jī)公布,阿里超過(guò)Google、Facebook等,摘下四個(gè)榜單的世界第一。

128卡V100上,練習(xí)ResNet50,只需要158秒就能獲得top593%的精度。

在10000張圖片的驗(yàn)證集進(jìn)行圖片分類,top5精度不低于93%,推理性能比第二名快5倍以上。

可以說(shuō),不論是練習(xí)的性能和成本,還是推理的性能和成本,都體現(xiàn)出阿里在異構(gòu)計(jì)算領(lǐng)域具有很高級(jí)AI軟硬件一體化極致性能優(yōu)化能力。

阿里是如何做到的?四項(xiàng)冠軍得主——阿里云異構(gòu)計(jì)算團(tuán)隊(duì)分享了背后的技術(shù)秘密。

斯坦福的DAWNBench,是一個(gè)端到端的深度學(xué)習(xí)模型練習(xí)和推理性能的基準(zhǔn)測(cè)試平臺(tái),由斯坦福大學(xué)在2021的NIPS會(huì)議上發(fā)布,之后得到業(yè)界廣泛支持。

Google、Facebook和VMWARE等世界知名公司先后加入。DAWNBench已成為人工智能領(lǐng)域很具影響力、很權(quán)威的排行榜單之一。

對(duì)于AI計(jì)算而言,很重要的兩個(gè)指標(biāo)是性能和成本。很新的成績(jī)公布后,顯示了阿里云在練習(xí)和推理領(lǐng)域軟硬件一體化很高級(jí)性能優(yōu)化能力。

阿里云異構(gòu)計(jì)算AI加速團(tuán)隊(duì)透露,很重要的武器是阿里云自研的飛天AI加速引擎AIACC、阿里云自研芯片含光800(簡(jiǎn)稱AliNPU)以及阿里云異構(gòu)計(jì)算云服務(wù)。

AIACC是阿里云自研的AI加速引擎,是業(yè)界首次統(tǒng)一加速Tensorflow、PyTorch、MxNet、Caffe、Kaldi等AI主流計(jì)算框架的加速引擎,其中包括練習(xí)加速引擎AIACC-Training和推理加速引擎AIACC-Inference。

練習(xí)加速引擎針對(duì)分布式的網(wǎng)絡(luò)做了性能優(yōu)化,能夠充分發(fā)揮分布式網(wǎng)絡(luò)的通信能力,推理加速引擎針對(duì)阿里云異構(gòu)計(jì)算云服務(wù)(包括GPU云服務(wù)和NPU云服務(wù))做了針對(duì)性深度的性能優(yōu)化,能夠發(fā)揮異構(gòu)加速設(shè)備的計(jì)算能力。

以NVidiaGPU為例,目前業(yè)界很快的推理引擎是TensorRT,而AIACC-Inference的計(jì)算性能比TensorRT還能獲得1.5~2.5倍的性能加速比。

含光800是阿里巴巴第一顆自研AI芯片,也是全球性能很強(qiáng)的AI推理芯片,主要用于云端視覺(jué)處理場(chǎng)景,性能打破了現(xiàn)有AI芯片記錄,性能及能效比全球第一。

在業(yè)界標(biāo)準(zhǔn)的ResNet-50測(cè)試中,含光800推理性能達(dá)到78563IPS,比目前業(yè)界很好的AI芯片性能高4倍;能效比500IPS/W,是第二名的3.3倍,而AIACC-Inference也能夠充分揮發(fā)含光800超高的計(jì)算能力,這是阿里云軟硬件一體化極致性能優(yōu)化的典范。

阿里云異構(gòu)計(jì)算云服務(wù)將GPU、FPGA、NPU等異構(gòu)計(jì)算設(shè)備整合,通過(guò)云計(jì)算服務(wù)的方式對(duì)客戶提供異構(gòu)計(jì)算服務(wù)。

隨著人工智能浪潮的興起,越來(lái)越多的AI計(jì)算都采用異構(gòu)計(jì)算來(lái)實(shí)現(xiàn)性能加速,而阿里云異構(gòu)計(jì)算服務(wù),構(gòu)建于云上很豐富的加速實(shí)例基礎(chǔ)之上,通過(guò)AIACC的算力提升,為AI計(jì)算提供普惠、彈性和觸手可得的加速計(jì)算云服務(wù)。

一口氣摘下4項(xiàng)世界冠軍推理性能比第二名快5倍阿里云公開(kāi)技術(shù)1

在圖像識(shí)別領(lǐng)域,很具代表性的場(chǎng)景是ResNet50在ImageNet上的練習(xí)。

很新公布的榜單上,AIACC-Training成為此場(chǎng)景下的性能與成本的世界雙項(xiàng)第一,展示了在分布式練習(xí)領(lǐng)域AIACC處于國(guó)際領(lǐng)先水平,能夠幫助用戶提升練習(xí)性能的同時(shí)降低所需的計(jì)算成本。

練習(xí)性能榜單新的世界紀(jì)錄,運(yùn)行在128張V100(16臺(tái)異構(gòu)計(jì)算云服務(wù)實(shí)例ecs.gn6e-c12g1.24xlarge)的集群之上,網(wǎng)絡(luò)通信為32GVPC,練習(xí)ResNet50至top5精度達(dá)到93%時(shí)間為2分38秒。

此前的世界紀(jì)錄所采用的集群規(guī)模也是128張V100,網(wǎng)絡(luò)通信則為100GInfiniBand網(wǎng)絡(luò),是本次打破世界紀(jì)錄的32GVPC的3倍的帶寬。異構(gòu)計(jì)算云服務(wù)的典型網(wǎng)絡(luò)配置為32Gbps帶寬的VPC網(wǎng)絡(luò),為了更貼近很終用戶的場(chǎng)景,阿里選擇的是VPC網(wǎng)絡(luò)。

32GVPC網(wǎng)絡(luò)與前世界紀(jì)錄的網(wǎng)絡(luò)物理帶寬上的巨大差距是團(tuán)隊(duì)面臨的重大挑戰(zhàn),我們從兩個(gè)大的方向作了深入的優(yōu)化:

第一個(gè)方向是從模型本身的優(yōu)化上,進(jìn)行超參的調(diào)整以及optimizer的改進(jìn),減少達(dá)到93%精度情況下所需要進(jìn)行的迭代數(shù),同時(shí)也要盡力提升單機(jī)的性能。

第二個(gè)方向是分布式性能優(yōu)化,我們采用團(tuán)隊(duì)自研的飛天AI加速引擎AIACC-Training(原Ali-Perseus-Training)作為分布式的通信庫(kù),充分挖掘32GVPC的所有潛力。

很終兩個(gè)方向的極致優(yōu)化相疊加,超越了一個(gè)看似不可能達(dá)到的性能屏障,以較低的網(wǎng)絡(luò)帶寬,創(chuàng)造了新的世界紀(jì)錄。

同時(shí),因?yàn)榉植际骄毩?xí)部署本身的復(fù)雜性,為了提高效率,也為了方便外部用戶重現(xiàn)結(jié)果,阿里團(tuán)隊(duì)使用了之前開(kāi)發(fā)的即刻構(gòu)建的工具FastGPU,將集群的創(chuàng)建和分布式練習(xí)的調(diào)度全部以腳本的方式完成,可以一鍵啟動(dòng),大大加快了優(yōu)化工作的效率。

未來(lái),我們會(huì)開(kāi)源基于AIACC的benchmark代碼,方便外部用戶一鍵復(fù)現(xiàn)結(jié)果。

分布式練習(xí)領(lǐng)域近年來(lái)發(fā)展迅猛,有多種可供選擇的解決方案,對(duì)于Tensorflow而言,框架本身支持PS模式以及Ringallreduce風(fēng)格的分布式通信,第三方的支持有Horovod。

對(duì)于ResNet50的分布式練習(xí),開(kāi)源方案中Horovod依然是相對(duì)很優(yōu)的解決方案,因此,阿里以Horovod作為對(duì)比的baseline。

分布式練習(xí)的邏輯框圖如下圖所示:

很小計(jì)算節(jié)點(diǎn)為單張GPU卡,每個(gè)計(jì)算節(jié)點(diǎn)都會(huì)從總的數(shù)據(jù)集中劃分一份數(shù)據(jù)作為本節(jié)點(diǎn)的練習(xí)數(shù)據(jù),然后開(kāi)始前向和后向的計(jì)算,在后向計(jì)算結(jié)束后會(huì)得到當(dāng)前batch所產(chǎn)生的梯度。

然后在更新參數(shù)之前,需要在整個(gè)集群上進(jìn)行梯度通信。HorovodAPI就是在梯度更新之前,在optimizer這個(gè)環(huán)節(jié)插入了一段多節(jié)點(diǎn)間的通信的流程。

AIACC-Training是阿里云自研的深度學(xué)習(xí)分布式練習(xí)通信引擎,統(tǒng)一支持Tensorflow、PyTorch、MxNet和Caffe,從IaaS層面提供可被集成且兼容開(kāi)源的加速庫(kù)。

現(xiàn)在已經(jīng)有多家AI和互聯(lián)網(wǎng)客戶在生產(chǎn)環(huán)境中大量部署使用,顯著提升異構(gòu)計(jì)算產(chǎn)品的性價(jià)比,從軟件層面為客戶提供差異化的計(jì)算服務(wù),架構(gòu)如下圖所示。

AIACC-Training作為此次Dawnbench記錄的分布式后端,發(fā)揮了至關(guān)重要的作用。以下是我們對(duì)AIACC-Training背后的分布式優(yōu)化作具體的解析。

分布式性能的 關(guān)鍵就是如何優(yōu)化這個(gè)通信環(huán)節(jié)的效率,對(duì)于ResNet50而言,我們需要通信的梯度數(shù)據(jù)大約是170個(gè),而通信的總量大約是50MB。

這些梯度的產(chǎn)生時(shí)機(jī)依靠于它們各安閑計(jì)算圖中的位置,計(jì)算圖中存在依靠關(guān)系的部分梯度決定了這一部分梯度被計(jì)算出來(lái)的時(shí)間先后順序。

而在計(jì)算圖中處于相互之間完全無(wú)依靠的算子的,它們?cè)诿看斡?jì)算發(fā)生的時(shí)機(jī)具有一定的隨機(jī)性。在多節(jié)點(diǎn)間通信要解決的第一個(gè)問(wèn)題就是需要協(xié)商梯度的同步順序。

Horovod中所采用的的方法是以0號(hào)節(jié)點(diǎn)為中心,與所有其它節(jié)點(diǎn)進(jìn)行點(diǎn)對(duì)點(diǎn)的通信確定當(dāng)前所有節(jié)點(diǎn)上都已經(jīng)就緒的梯度,然后再0號(hào)節(jié)點(diǎn)上確定這些就緒梯度上如何去通信,很后將通信策略點(diǎn)對(duì)點(diǎn)的發(fā)送到每一個(gè)其它節(jié)點(diǎn),之后根據(jù)通信策略開(kāi)始進(jìn)行多機(jī)通信。

這一點(diǎn)對(duì)點(diǎn)的協(xié)商策略,在128節(jié)點(diǎn)下,對(duì)0號(hào)節(jié)點(diǎn),造成了一個(gè)局部的熱點(diǎn),需要通信256次。AIACC-Training放棄了這種中心節(jié)點(diǎn)的協(xié)商模式,轉(zhuǎn)而采用了去中心化的方式在128個(gè)節(jié)點(diǎn)間進(jìn)行協(xié)商,因?yàn)?28個(gè)節(jié)點(diǎn)實(shí)際分布在16臺(tái)實(shí)例中,我們的優(yōu)化可以輕易的識(shí)別這種拓?fù)浣Y(jié)構(gòu),不再會(huì)在任何單個(gè)GPU卡上產(chǎn)生256次通信熱點(diǎn)。

考慮到大部分時(shí)候ready的不止一個(gè)梯度,這種優(yōu)化還能夠同時(shí)對(duì)多個(gè)梯度進(jìn)行協(xié)商,因此實(shí)際降低協(xié)商的通信量大約一個(gè)數(shù)量級(jí)。

梯度協(xié)商之后,所有節(jié)點(diǎn)都知道了當(dāng)前這個(gè)時(shí)刻可以進(jìn)行通信的梯度,接下來(lái)面臨的一個(gè)優(yōu)化問(wèn)題是,我們是要在收集到任意數(shù)量的梯度之后馬上對(duì)所有的梯度進(jìn)行通信,還是選擇某個(gè)更優(yōu)化的組合方式來(lái)通信。

這里一個(gè)確定性結(jié)論是,對(duì)單個(gè)梯度進(jìn)行單次通信,通信效率總是非常低下的,我們需要進(jìn)行多個(gè)梯度的融合,然后再對(duì)融合后的更大的粒度上進(jìn)行通信。

AIACC-Training引入了細(xì)粒度的融合策略,我們會(huì)在通信環(huán)節(jié)去動(dòng)態(tài)分析當(dāng)前的通信狀況進(jìn)而選擇一種更平衡的融合策略,避免出現(xiàn)過(guò)大的差異。

這樣會(huì)使得每次通信的粒度盡量均勻,減小出現(xiàn)大幅波動(dòng)的可能。因?yàn)檫@種融合策略對(duì)不同的網(wǎng)絡(luò)模型而言存在不同的很優(yōu)值,因此們實(shí)現(xiàn)了自動(dòng)優(yōu)化的功能,會(huì)動(dòng)態(tài)的調(diào)整此參數(shù),尋找很優(yōu)的融合粒度。

底層的通信庫(kù)還是采用NCCL來(lái)進(jìn)行GPU間的數(shù)據(jù)通信,NCCL的編程模型僅支持單一的通信流進(jìn)行通信,而單一的通信流的效率很低,單流的轉(zhuǎn)發(fā)能力往往只能達(dá)到10Gbps左右。

AIACC-Training從更高的通信引擎層面支持了多流,會(huì)分配不止一個(gè)通信流來(lái)進(jìn)行梯度通信,每個(gè)流服務(wù)于切分出來(lái)的某個(gè)融合梯度,而后續(xù)切分的融合粒度并不依靠于當(dāng)前切分的融合梯度。

因此即使多流之間的通信是完全異步運(yùn)行,即使多流之間的速度不均衡,也不會(huì)嚴(yán)重影響整體的效率,在規(guī)模擴(kuò)大的時(shí)候,能更好的維持很佳的網(wǎng)絡(luò)帶寬利用率。

和融合粒度一樣,切分的流數(shù),也會(huì)和練習(xí)模型,以及當(dāng)前的實(shí)際網(wǎng)絡(luò)帶寬有很強(qiáng)的相關(guān)性,因此無(wú)法離線的給出一個(gè)很優(yōu)設(shè)定。

我們?cè)O(shè)計(jì)了自動(dòng)tuning機(jī)制,將通信流數(shù)目加入了自動(dòng)tuning環(huán)節(jié),融合粒度以及切分的流數(shù),會(huì)聯(lián)合自動(dòng)tuning出很佳的參數(shù)組合。

算法層面的優(yōu)化主要可以分為數(shù)據(jù)、模型、超參和優(yōu)化器四個(gè)方面。

數(shù)據(jù)上,我們采用了多分辨率圖像漸進(jìn)練習(xí)。這種方式不僅可以在前期利用小分辨率圖像大大提升前后向計(jì)算速度、又可以弱化練習(xí)和推理時(shí)采用不同尺寸帶來(lái)的正確率損失。

模型上,我們吸收了近期一些網(wǎng)絡(luò)變體的優(yōu)勢(shì),也根據(jù)很新的一些研究對(duì)BatchNorm做了微弱的調(diào)整。

超參方面我們做了很多探索,如在學(xué)習(xí)率衰減的方式上,我們沒(méi)有用很流行的stepdecay或是cosinedecay,而是采用了更直接的lineardecay,另外我們也發(fā)現(xiàn)warmup的步數(shù)非常重要。

優(yōu)化器上,我們重新設(shè)計(jì)了優(yōu)化器方案,同時(shí)吸收了SGD的泛化性優(yōu)勢(shì)和自適應(yīng)優(yōu)化器快速收斂,使得改進(jìn)后的優(yōu)化器練習(xí)速度更快且正確率更高。

一口氣摘下4項(xiàng)世界冠軍推理性能比第二名快5倍阿里云公開(kāi)技術(shù)2

基于上述優(yōu)化工作,我們?cè)?8個(gè)epoch共1159次迭代下完成練習(xí)并達(dá)到top593%的精度要求,而原來(lái)練習(xí)則需要90個(gè)epoch才能達(dá)到相同的精度。

結(jié)合以上所有性能優(yōu)化,我們?cè)?28卡V100上,達(dá)到了158秒就能獲得top593%的精度,創(chuàng)造了新的世界紀(jì)錄。

在推理項(xiàng)目中,DawnBench競(jìng)賽要求推理框架針對(duì)ImageNet的10000張圖片的驗(yàn)證集進(jìn)行圖片分類,分類模型的top5精度不低于93%。

在batchsize=1的配置下,計(jì)算推理每一張圖片的平均時(shí)間和平均成本。在上一個(gè)性能紀(jì)錄中,平均推理時(shí)間只有不到1ms,已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)了人類視覺(jué)的反應(yīng)速度。

在很新公布的榜單上,我們基于異構(gòu)計(jì)算AliNPU云服務(wù)實(shí)例(ecs.ebman1.26xlarge)奪得了推理性能項(xiàng)目的第一名,比第二名快5倍以上。

同時(shí),之前提交的推理成本第一的成績(jī)(基于異構(gòu)計(jì)算GPU云服務(wù)實(shí)例ecs.gn6i-c8g1.2xlarge)目前還沒(méi)有人超越,因此在性能和成本兩個(gè)項(xiàng)目上均排名第一。

AIACC-Inference

在服務(wù)客戶和不斷沖擊DawnBench第一的過(guò)程中,我們也在不斷打磨異構(gòu)計(jì)算服務(wù)場(chǎng)景下的推理優(yōu)化技術(shù),并根據(jù)客戶的實(shí)際需求研發(fā)了AIACC-Inference模型加速引擎,幫助客戶解決主流AI框架TensorFlow、PyTorch、MXNet、Kaldi等框架下的模型優(yōu)化問(wèn)題。

優(yōu)化方法包括對(duì)模型的計(jì)算圖進(jìn)行分析,將其中計(jì)算節(jié)點(diǎn)進(jìn)行融合,減少模型中計(jì)算節(jié)點(diǎn)的個(gè)數(shù),提升計(jì)算圖的執(zhí)行效率。

同時(shí)提供了FP32和FP16及Int8精度的模型優(yōu)化選項(xiàng),可以生成多種精度下的優(yōu)化模型,其中FP16和Int8精度模型可以利用NVIDIAVolta和Turing架構(gòu)下的Tensorcore硬件支持,進(jìn)一步提升模型推理在V100,T4GPU卡上的性能。

目前AIACC-Inference既支持常用的圖像分類和目標(biāo)檢測(cè)模型,也支持Bert,StyleGAN這樣的NLP模型和GAN網(wǎng)絡(luò)模型。

此外,我們還深度優(yōu)化了1x1、3x3、7x7卷積kernel,在AIACC-Inference中增加了新op的融合機(jī)制,比目前業(yè)界很快的TensorRT還能獲得1.5-2.5倍的性能加速比。

在上一次提交的版本中,我們將base模型換為更為精簡(jiǎn)的ResNet26d,引領(lǐng)了一波風(fēng)潮。

這一次為了進(jìn)一步提高模型的精度并精簡(jiǎn)模型,我們對(duì)超參數(shù)進(jìn)行了調(diào)整,引入了更多的數(shù)據(jù)增強(qiáng)方式。通過(guò)使用了AugMix和JSDloss疊加RandAugment的組合方式,將ResNet26d模型的精度提升至93.3%,收獲0.13+%的精度收益。

我們針對(duì)AliNPU的架構(gòu)特點(diǎn),對(duì)推理引擎進(jìn)行了相應(yīng)的優(yōu)化。由于AliNPU使用uint8作為存儲(chǔ)格式用于上傳和下載數(shù)據(jù)。

因此需要在進(jìn)入engine前后插入量化和反量化操作用于恢復(fù)數(shù)據(jù),但是Quant和Dequant這些操作在CPU上,無(wú)法使用AliNPU加速,占據(jù)了一大部分的推理時(shí)間,通過(guò)在預(yù)處理和后處理中執(zhí)行這些操作將推理延遲降低至0.117ms的水平。

考慮到我們使用的推理模型較小,依照GPU的經(jīng)驗(yàn)帶寬4GB/s,輸入一張圖片需要將147KB的數(shù)據(jù)上傳至AliNPU中需要花費(fèi)0.03ms。因此我們?cè)诳蚣苤幸肓藀reload機(jī)制,將數(shù)據(jù)預(yù)取入AliNPU中,將平均推理延遲進(jìn)一步降低至0.0739ms。

如果您覺(jué)得 一口氣摘下4項(xiàng)世界冠軍推理性能比第二名快5倍阿里云公開(kāi)技術(shù) 這篇文章對(duì)您有用,請(qǐng)分享給您的好友,謝謝
文章地址:http://m.meyanliao.com/article/online/12132.html
解放雙手無(wú)盡可能,有問(wèn)題添加天線貓微信
主站蜘蛛池模板: 西西4444www大胆无码| 成年无码av片在线| 亚洲成AV人片在线观看无码| 人妻无码久久精品人妻| 色欲香天天综合网无码| 国产亚洲AV无码AV男人的天堂| 国产成人无码AV麻豆| 台湾无码AV一区二区三区| 亚洲av极品无码专区在线观看| 亚洲人成影院在线无码按摩店| 国产成人精品无码片区在线观看| 亚洲日韩精品无码专区加勒比 | 国产精品无码一区二区三区电影| 久久精品无码专区免费青青| 成人无码区免费A∨直播| 毛片一区二区三区无码| 久久久无码一区二区三区| 亚洲中文字幕无码一久久区| 西西4444www大胆无码| 精品多人p群无码| 最新亚洲人成无码网www电影| 内射人妻无套中出无码| 99无码精品二区在线视频| 狠狠噜天天噜日日噜无码| 免费无码又爽又黄又刺激网站| 精品欧洲av无码一区二区| 无码国产精品一区二区免费16| 精品人妻少妇嫩草AV无码专区| 亚洲中文字幕无码中文字| 亚洲中文无码卡通动漫野外| 精品无码人妻夜人多侵犯18| 无码国产69精品久久久久网站| 亚洲精品无码不卡在线播放HE| 国产精品无码素人福利免费| 本道久久综合无码中文字幕| 性色av无码免费一区二区三区| 67194成是人免费无码| av无码精品一区二区三区四区 | 精品少妇人妻AV无码专区不卡 | 中文有码无码人妻在线| 亚洲精品无码不卡|