NVIDIA安培架構(gòu)深入分析:顯著增加云端AI芯片門(mén)檻
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在近日的GTC上,NVIDIA發(fā)布了最新的安培架構(gòu),以及基于安培架構(gòu)的A100 GPU。A100 GPU使用臺(tái)積電7nm工藝實(shí)現(xiàn),包含了542億個(gè)晶體管,據(jù)官方消息可以實(shí)現(xiàn)比起上一代V100高7倍的性能。除了算力提升之外,NVIDIA還加入了GPU虛擬多實(shí)例(multi-Instance GPU,MIG)特性,可以讓一塊GPU虛擬化稱為7個(gè)獨(dú)立的GPU。
與安培架構(gòu)同時(shí)公布的還有NVIDIA DGX A100超級(jí)計(jì)算機(jī),該超算平臺(tái)包含了8塊A100 GPU,峰值算力可達(dá)10 PetaOPS。
在發(fā)布會(huì)上,NVIDIA對(duì)于算力做了非常多的渲染。然而,在我們看來(lái),NVIDIA在算力之外的特性擴(kuò)展將成為更重要的門(mén)檻,中國(guó)半導(dǎo)體業(yè)界想要研發(fā)自主的GPU也需要考慮這些算力之外的重要特性。
計(jì)算架構(gòu):改良式更新,前進(jìn)步伐與預(yù)期相符
NVIDIA A100 GPU相比于前一代V100 GPU,其算力提升主要來(lái)源于以下幾方面:
加入稀疏運(yùn)算支持。這可能是A100 GPU運(yùn)算架構(gòu)上最大的革新了。具體來(lái)說(shuō),A100支持2:4的結(jié)構(gòu)化稀疏,即在使用稀疏計(jì)算時(shí),在矩陣中每四個(gè)元素就必須有兩個(gè)或以上是0。通過(guò)稀疏運(yùn)算,可以把性能提升兩倍。
事實(shí)上,深度學(xué)習(xí)中使用稀疏運(yùn)算的概念從提出至今已經(jīng)有差不多5年了,到了今天NVIDIA終于把這個(gè)概念落地到了產(chǎn)品中,而且使用的是的2:4結(jié)構(gòu)化稀疏,其兩倍的加速可以說(shuō)是比較保守的(與此相對(duì),2018年寒武紀(jì)的AI加速器IP中就支持四倍稀疏加速)。
引入TF32數(shù)制。這主要針對(duì)訓(xùn)練計(jì)算?;仡櫲斯ぶ悄苡?xùn)練計(jì)算的歷程,最早普遍使用的是32位浮點(diǎn)數(shù)數(shù)制(FP32)。為了加速訓(xùn)練計(jì)算,從幾年前開(kāi)始NVIDIA開(kāi)始支持16位的FP16數(shù)制,該數(shù)制的優(yōu)點(diǎn)是速度較快,但是動(dòng)態(tài)范圍方面在一些應(yīng)用中存在一些問(wèn)題。
在A100中,NVIDIA為了解決FP16的問(wèn)題,引入了TF32數(shù)制。TF32事實(shí)上不是32位數(shù)制,而是19位數(shù)制,其動(dòng)態(tài)范圍(exponent)與FP32相同都是8位,但其精度(mantissa)與FP16相同都是10位,相當(dāng)于是FP32和FP16的融合。相比FP32,TF32可以實(shí)現(xiàn)8倍的吞吐量提升。
更強(qiáng)更多的流處理器(SM)。在A100中,每個(gè)流處理器的張量矩陣計(jì)算能力是V100的2倍,而在GPU中流處理器的數(shù)量相比V100則增加了30%。
更大的片上存儲(chǔ)和更快的內(nèi)存接口。A100的設(shè)計(jì)中,每個(gè)流處理器的L1緩存容量從V100的128KB增加到了192KB,L2 緩存則增加到了40MB,相比前一代增加了6.7倍。內(nèi)存接口方面,A100的HBM2就惡口總貸款高達(dá)1555GB/s,相比前一代增加了1.7X。
總體來(lái)說(shuō),在計(jì)算架構(gòu)方面,除了支持稀疏計(jì)算和引入TF32之外,其他的提升都屬于可預(yù)計(jì)的常規(guī)提升,而稀疏計(jì)算和TF32在人工智能計(jì)算中也并非新概念。我們認(rèn)為,這一代NVIDIA A100的算力性能提升屬于漸進(jìn)式改良,而非革命式提升。
GPU虛擬實(shí)例和互聯(lián):進(jìn)一步加高競(jìng)爭(zhēng)壁壘
我們認(rèn)為,A100除了算力之外,其更重要的競(jìng)爭(zhēng)壁壘提升來(lái)源于針對(duì)數(shù)據(jù)中心的GPU虛擬實(shí)例支持和互聯(lián)方案。
在安培架構(gòu)中,一個(gè)重要的新特性就是GPU虛擬實(shí)例MIG。隨著云端數(shù)據(jù)中心GPU部署比例的提升,如何實(shí)現(xiàn)GPU虛擬化是一個(gè)重要任務(wù),而這一點(diǎn)如果解決不好將會(huì)降低總體GPU利用率。
目前,在云服務(wù)中,用戶申請(qǐng)的CPU和內(nèi)存實(shí)例大多數(shù)情況下都是虛擬化的,當(dāng)你申請(qǐng)到n個(gè)CPU核的時(shí)候,并不是說(shuō)你包下了這塊CPU芯片,而是很有可能在同一塊CPU芯片上不同的核會(huì)分配給不同用戶,而用戶并不用去擔(dān)心說(shuō)他的CPU核都位于哪一塊芯片上,主要用就行了。
粗略地說(shuō),這就是CPU虛擬化。GPU之前也有虛擬化,即同一個(gè)GPU可以給不同的程序同時(shí)使用,但是其內(nèi)存訪問(wèn)模型并不如CPU虛擬化那么完善,因此在多用戶的情況下,通常不會(huì)采用多個(gè)用戶同時(shí)共享一塊GPU的方法,而是把一塊GPU分配給一個(gè)用戶。
這樣就帶來(lái)了效率問(wèn)題,例如用戶A只需要用到一塊GPU中一半的計(jì)算資源,而用戶B的計(jì)算需要用到1.5塊GPU,那么使用傳統(tǒng)粗顆粒度解決方案就會(huì)造成用戶A和B都占用了一塊GPU,那么用戶A事實(shí)上是浪費(fèi)了GPU資源,而用戶B的計(jì)算資源需求則沒(méi)有很好地得到滿足。
隨著GPU應(yīng)用到越來(lái)越多的場(chǎng)景中,不同場(chǎng)景算法對(duì)于GPU的利用率和需求都有不同,這樣的話沿用之前的粗顆粒度方案一定會(huì)造成總體數(shù)據(jù)中心GPU利用率的問(wèn)題。
為了解決這個(gè)問(wèn)題,MIG應(yīng)運(yùn)而生。A100中的MIG支持把同一塊GPU劃分成7個(gè)獨(dú)立實(shí)例,每個(gè)實(shí)例之間的內(nèi)存空間訪問(wèn)互不干擾,這樣就可以實(shí)現(xiàn)細(xì)顆粒度的GPU計(jì)算資源分配,從而在計(jì)算需求非常異質(zhì)化的云計(jì)算場(chǎng)景增加資源利用效率。
誠(chéng)然,目前MIG中支持的7個(gè)GPU虛擬實(shí)例劃分或許還不算特別細(xì)顆粒度,但是卻可以看作是走向虛擬化的重要里程碑。除了MIG之外,A100還在多芯片互聯(lián)上做了改善。
首先,A100上包含了第三代NVLINK,主要用于同主機(jī)上GPU之間的互相通信,通信帶寬相比V100增加了一倍到600GB/s。在GPU和CPU通信上,A100支持PCIe Gen4,相比上一代PCIe Gen3帶寬也增加了一倍。此外,A100的互聯(lián)還與Mellanox的解決方案做了深度集成,可以很好地支持基于以太網(wǎng)和InfiniBand的RDMA。
云端AI芯片進(jìn)入門(mén)檻大大提升
我們認(rèn)為,NVIDIA A100的發(fā)布再次拉開(kāi)了與其他在人工智能云端領(lǐng)域芯片競(jìng)爭(zhēng)對(duì)手的差距。從算力上來(lái)看,NVIDIA A100在BERT benchmark上的性能是T4的11倍,而初創(chuàng)公司中最成功的Habana(現(xiàn)已被Intel高價(jià)收購(gòu))在去年推出的新款Goya芯片在同一benchmark上的性能僅僅是T4的兩倍左右,因此A100一舉又占據(jù)了算力的高地。我們認(rèn)為,NVIDIA在算力提升上面的主要優(yōu)勢(shì)在于其系統(tǒng)工程能力較強(qiáng)。
我們之前分析過(guò),NVIDIA在A100中使用的計(jì)算單元架構(gòu)創(chuàng)新實(shí)際上并不新鮮,在人工智能硬件領(lǐng)域已經(jīng)存在了多年,而且之前也有不少初創(chuàng)公司嘗試過(guò)類似的實(shí)現(xiàn)。然而,當(dāng)芯片的規(guī)模上升了之后,其設(shè)計(jì)流程就不僅僅是邏輯設(shè)計(jì)問(wèn)題,還需要考慮良率、散熱等多方面因素,而這些看似底層的因素其實(shí)在最頂層的架構(gòu)設(shè)計(jì)過(guò)程中就要考慮到—;—;換句話說(shuō),雖然其他人也能想到要用這些架構(gòu)創(chuàng)新,但是因?yàn)楦鞣N問(wèn)題就是沒(méi)有辦法實(shí)現(xiàn)A100這樣能量產(chǎn)的巨型芯片,這其實(shí)也是NVIDIA多年積累的一個(gè)壁壘。
事實(shí)上,我們認(rèn)為算力只是NVIDIA A100硬件競(jìng)爭(zhēng)壁壘的一小部分,其更重要的壁壘還來(lái)自于互聯(lián)、虛擬化等特性?;ヂ?lián)和虛擬化特性都是云端數(shù)據(jù)中心場(chǎng)景中需要的重要需求,而這些需求的實(shí)現(xiàn)需要扎扎實(shí)實(shí),一步一步的設(shè)計(jì)和積累。
如果說(shuō)之前NVIDIA還沒(méi)有引入虛擬化特性,云端AI加速芯片還是算力的比拼因此初創(chuàng)企業(yè)還有彎道超車(chē)機(jī)會(huì)的話,那么在A100之后我們認(rèn)為其他和NVIDIA針對(duì)相同市場(chǎng)的云端AI加速芯片初創(chuàng)公司已經(jīng)失去了這個(gè)機(jī)會(huì),而必須要一步一步把虛擬化、RDMA等分布式計(jì)算必須的特性老老實(shí)實(shí)地實(shí)現(xiàn)在自己的芯片上,才有資格去和NVIDIA去正面交鋒。
對(duì)于云端計(jì)算市場(chǎng),其他芯片廠商另外一種可能的策略就是針對(duì)NVIDIA還無(wú)法顧及且GPU的SIMT架構(gòu)無(wú)法很好覆蓋的領(lǐng)域,例如FinTech的一些計(jì)算等等。我們預(yù)計(jì)在未來(lái)的幾年內(nèi)或許會(huì)出現(xiàn)更多這樣的初創(chuàng)公司。
對(duì)于GPU國(guó)產(chǎn)化的啟示:算力并非一切,對(duì)于分布式計(jì)算和虛擬化的支持也很重要
這次NVIDIA發(fā)布的A100 GPU對(duì)于用于云端數(shù)據(jù)中心的GPU國(guó)產(chǎn)化也有重要啟示,即算力并非一切,對(duì)于分布式計(jì)算的支持和多用戶虛擬化的支持可能更加重要。
在目前的云端高性能計(jì)算中,一大部分的任務(wù)會(huì)使用分布式計(jì)算。在分布式計(jì)算中,單卡GPU的算力只是基礎(chǔ),除了算力之外的IO也會(huì)成為決定性能的重要因素。這里的IO包括單機(jī)多卡之間的通信,GPU和CPU之間的通信,以及多臺(tái)主機(jī)之間的通信等。
在NVIDIA的技術(shù)棧中,單機(jī)多卡通信有NvLink,多機(jī)通信有來(lái)自于新近收購(gòu)的Mellanox的RDMA和Smart NIC技術(shù),可以說(shuō)在IO領(lǐng)域NVIDIA也是做到了全球最領(lǐng)先,這樣才保證了云端GPU方案獨(dú)步天下。與分布式計(jì)算息息相關(guān)的則是虛擬化支持。如前所述,GPU虛擬化將能帶來(lái)云計(jì)算領(lǐng)域的GPU資源利用率大幅提升。
然而,除了利用率提升之外,虛擬化的訪問(wèn)模型還為分布式計(jì)算的軟件棧提供了一個(gè)干凈的接口,這樣分布式系統(tǒng)的工程師可以不用關(guān)心GPU底層的實(shí)現(xiàn)細(xì)節(jié),憑借虛擬化的概念就可以構(gòu)建靈活的多用戶使用模型和界面,從而在系統(tǒng)層面上為高效分布式系統(tǒng)提供了有力的支持和賦能。
我們認(rèn)為,目前GPU虛擬化還處于早期階段,未來(lái)我們將會(huì)看到NVIDIA以及其他的歐美廠商在這個(gè)方向的投入。對(duì)于國(guó)產(chǎn)GPU來(lái)說(shuō),我們一直在強(qiáng)調(diào)要構(gòu)建一個(gè)好的生態(tài),才能讓國(guó)產(chǎn)GPU真正具有競(jìng)爭(zhēng)力。這樣的生態(tài)首先包括一個(gè)可擴(kuò)展性良好的架構(gòu)—;—;這就指向了IO這樣的數(shù)據(jù)通信互聯(lián)的支持;此外還需要有一個(gè)較友好容易上手的開(kāi)發(fā)環(huán)境,能允許開(kāi)發(fā)者在硬件基礎(chǔ)上開(kāi)發(fā)各種支持多用戶的云端應(yīng)用,虛擬化就是對(duì)多用戶支持的核心組件。
我們認(rèn)為,一個(gè)算力強(qiáng)大,但是對(duì)于分布式計(jì)算和虛擬化支持有限的GPU,對(duì)于國(guó)產(chǎn)生態(tài)而言還不如一個(gè)雖然算力較弱(例如只有NVIDIA一半甚至三分之一),但是在分布式和多用戶場(chǎng)景有合理完整支持的GPU。而這兩者恰恰需要一步一步扎實(shí)的積累,不能指望彎道超車(chē)。