去年的AWS re:Invent 2021有很多跟芯片相關(guān)的內(nèi)容值得展開來說的事情。但網(wǎng)上已經(jīng)有很多專業(yè)的文章了,我就不再班門弄斧一一介紹了。
只好另辟蹊徑,嘗試從整體和發(fā)展的角度,和一些“可能存在”的“向左(定制)還是向右(通用)”的權(quán)衡,來分析一下AWS為什么過去和現(xiàn)在要做芯片和硬件自研這些事情,以及未來要往何處去。
再次強調(diào)一下,芯片定制分為兩個方面:芯片功能的定制還是通用,是個技術(shù)路徑的問題;巨頭通過定制芯片,滿足自身需求,這是一個商業(yè)選擇的問題。這兩者不能混淆。
1 硬件定制
硬件定制可以簡單地分為兩種模式:
由外而內(nèi)。從通用的服務(wù)器等硬件出發(fā),進一步優(yōu)化(裁剪和增強)數(shù)據(jù)中心各種硬件產(chǎn)品,落地成標(biāo)準(zhǔn)化的硬件和系統(tǒng)設(shè)計,再通過規(guī)模化的部署,來達到降低成本的目的。例如,OCP倡導(dǎo)的各種OCP兼容的服務(wù)器、交換機及其他硬件設(shè)計。
由內(nèi)而外。從內(nèi)在的業(yè)務(wù)場景需求出發(fā),通過軟硬件深層次的協(xié)同優(yōu)化設(shè)計,落地到個性化的硬件定制。各家互聯(lián)網(wǎng)云計算公司,如AWS、微軟和阿里云等,主要用于自身業(yè)務(wù)的各種硬件定制產(chǎn)品。
對于互聯(lián)網(wǎng)巨頭來說,設(shè)計并制造自己的硬件,以此來提高效率并建立競爭優(yōu)勢已經(jīng)是顯而易見的事情。亞馬遜AWS不僅設(shè)計自己的計算服務(wù)器、存儲服務(wù)器、路由器以及相關(guān)的核心芯片,還設(shè)計自己的連接全球以及數(shù)據(jù)中心內(nèi)的高速網(wǎng)絡(luò)。
(a) AWS定制交換機
(b) AWS定制SDN網(wǎng)卡
圖1 AWS定制網(wǎng)絡(luò)設(shè)備
如果采用標(biāo)準(zhǔn)的商用路由器,出現(xiàn)問題,供應(yīng)商最快需要花費六個月時間來修復(fù)問題。如圖1(a),AWS根據(jù)自己的軟硬件規(guī)格定義定制路由器,并且擁有自己的協(xié)議開發(fā)團隊。雖然一開始的訴求主要是降低成本,但實際上最終的結(jié)果是,定制的網(wǎng)絡(luò)設(shè)備不僅僅降低了成本,最大的收獲是網(wǎng)絡(luò)可靠性。AWS路由器采用的是AWS和博通(Broadcom)聯(lián)合定制的具有70億晶體管規(guī)模的ASIC芯片,總的處理帶寬為3.2Tbit/s(數(shù)據(jù)來自AWS Re:Invent 2016)。AWS網(wǎng)絡(luò)策略的另一個關(guān)鍵部分是SDN,AWS將SDN的其中一部分工作從軟件卸載到硬件。如圖1(b),通過硬件卸載網(wǎng)絡(luò)功能,降低了CPU的資源消耗,并且降低了網(wǎng)絡(luò)延遲以及網(wǎng)絡(luò)的性能抖動。
(a) AWS定制芯片
(b) AWS定制計算服務(wù)器
(c) AWS定制存儲服務(wù)器
圖2 AWS定制芯片及服務(wù)器
如圖2(a),2015年AWS收購了Annapurna labs公司,之后Annapurna labs設(shè)計并生產(chǎn)了AWS定制芯片,可用于AWS各類定制服務(wù)器。AWS不僅僅定制硬件(板卡及服務(wù)器),也定制自己的芯片。通過芯片定制,可以更好地實現(xiàn)AWS對數(shù)據(jù)中心的各種創(chuàng)新。如圖2(b),AWS定制1U的服務(wù)器,因此其在機架上會占滿1U的槽位。沒有采用更密集的在1U的槽位集成更多的服務(wù)器節(jié)點的做法,這樣做是為了提高熱效率和功率效率。如圖2(c),AWS自定義的存儲服務(wù)器在一個42U標(biāo)準(zhǔn)的機架上部署880塊磁盤,升級后的存儲服務(wù)器可以容納1110塊磁盤,存儲容量為11 PB(數(shù)據(jù)來自AWS的Re:Invent 2016)。
2 虛擬化卸載和Nitro DPU芯片
2.1 AWS EC2虛擬化技術(shù)的演進
在介紹虛擬化演進之前,我們先介紹下虛擬化的三種方式:
完全軟件虛擬化(Virt. in Software, VS):支持不需要修改的客戶機OS,所有的操作都被軟件模擬,但性能消耗高達50%-90%。
類虛擬化(Para-Virt., PV):客戶機OS通過修改內(nèi)核和驅(qū)動,調(diào)用Hypervisor提供的hypercall,客戶機和Hypervisor共同合作,讓模擬更高效。類虛擬化性能消耗大概為10%-50%。
完全硬件虛擬化(Virt. in Hardware, VH):硬件支持虛擬化,性能接近裸機,只有0.1%-1.5%的虛擬化消耗。
圖3 AWS EC2虛擬化技術(shù)演進
圖3是AWS“教科書”般的虛擬化迭代優(yōu)化的演進示意圖。我們只關(guān)注與性能最相關(guān)的CPU/Mem、網(wǎng)絡(luò)I/O、本地存儲I/O、遠程存儲I/O四類計算機資源。大致的演進介紹如下:
最開始,所有的計算機資源都是純軟件模擬的。
Xen PV 3.0引入了PV,部分提升了性能。
Xen HVM 3.0引入了CPU和內(nèi)存的硬件虛擬化(基于Intel VT-x和AMD-v技術(shù)),大幅度提升了性能;這一時期,網(wǎng)絡(luò)和存儲I/O對處理帶寬的要求還不高,PV的I/O虛擬化還是滿足要求的。
Xen HVM 4.0.1,沒有優(yōu)化四個主要的資源,性能提升不算明顯。
Xen AWS 2013,通過PCIe SR-IOV技術(shù),正式引入了網(wǎng)絡(luò)I/O硬件虛擬化。
Xen AWS 2017,通過PCIe SR-IOV技術(shù),正式引入了本地存儲I/O硬件虛擬化。
2017年,AWS Nitro 2017。Nitro項目正式登場。站在I/O虛擬化的角度,NITRO項目的創(chuàng)新有限。NITRO最有價值的創(chuàng)新在于把Backend的網(wǎng)絡(luò)和遠程存儲的Workload卸載到了NITRO卡上。從Nitro開始,云計算架構(gòu)就走上了業(yè)務(wù)和基礎(chǔ)設(shè)施在物理上完全隔離的路子。
AWS Bare Metal 2017。裸金屬機器和用于EC2虛擬機的Nitro 2017最大的區(qū)別在于有沒有一層Lite Hypervisor。
2.2 Nitro DPU芯片的演進
嚴(yán)格來說,2017年底AWS宣布的Nitro系統(tǒng)是全球第一家真正商業(yè)落地的DPU芯片。AWS引領(lǐng)了DPU的潮流,隨后DPU這個方向才逐漸火熱了起來。
圖4 AWS Nitro系統(tǒng)
如圖4所示,不同的EC2服務(wù)器實例類型包括不同的Nitro系統(tǒng)特性,一些服務(wù)器類型有許多Nitro系統(tǒng)卡,實現(xiàn)AWS Nitro系統(tǒng)的五大主要特性:
Nitro VPC(虛擬私有云)卡;
Nitro EBS(彈性塊存儲)卡;
Nitro本地存儲卡;
Nitro控制器卡;
Nitro安全芯片。
為什么需要這么多張卡?原因很簡單,因為最開始的Nitro芯片其實是一張CPU卡:
CPU性能弱,一張不夠,就多張卡整合到一起完成想要的功能;
CPU完全可編程,同樣的芯片,同樣的板卡,只需要后期運行不同的軟件,就可以非常方便的實現(xiàn)不同的功能。
雖然,Nitro計算的主要載體是CPU,導(dǎo)致許多工作任務(wù)從Host CPU卸載到Nitro的嵌入式CPU上之后,性能并沒有得到提升,有點“多此一舉”。但實際上已經(jīng)提供了很多價值:
做到了把VM的業(yè)務(wù)和宿主機側(cè)的管理任務(wù)完全隔離,這樣提供了很多安全方面的好處,并且可以打平虛擬機和物理機環(huán)境。業(yè)務(wù)和管理分離,還有很多其他好處,這里不一一展開了。
因為是嵌入式的CPU,所以,可以快速地開發(fā)新功能。例如基于Nitro嵌入式CPU,開發(fā)了SRD和EFA,為高性能的HPC提供解決方案??焖俚貫闃I(yè)務(wù)提供更強大的功能和服務(wù)價值,給客戶提供更加快速而積極的功能支持,是云計算的核心競爭力。雖然消耗Nitro卡的資源多一些,但這些可以留待后續(xù)持續(xù)優(yōu)化。
隨著時間的推移,Nitro芯片勢必會逐步的增加了各種加速引擎,整體性能也會得到增強。最新版的Nitro系統(tǒng),則完全整合成了單芯片板卡。相比前面幾代Nitro,功能更加的強大,而成本卻得到了大大地降低。
2.3 AWS Nitro與NVIDIA DPU的本質(zhì)區(qū)別
看2.2節(jié)的內(nèi)容,很多人可能會認(rèn)為,Nitro采用CPU設(shè)計,AWS的設(shè)計水平有限。為什么不像NVIDIA一樣,集成各種ASIC的加速引擎呢?還有一個類似的問題,在手機端,集成各種專用硬件加速引擎的手機SOC芯片已經(jīng)非常成熟,但為什么數(shù)據(jù)中心的計算平臺依然是以CPU為主?原因只有一個:數(shù)據(jù)中心場景,對軟件靈活性的要求,遠高于對性能的要求。如果不能提供靈活性(或者說易用性、可編程性),提供再多的性能都是“無本之木”。
圖4 Nitro和NVIDIA DPU的演進對比
互聯(lián)網(wǎng)云計算廠家的上層軟件業(yè)務(wù)邏輯各不相同并且快速迭代,這幾乎無法采用定制的ASIC設(shè)計。簡而言之:定制的ASIC很難適合靈活多變的云場景。
如圖4所示,芯片公司(NVIDIA)根據(jù)自身對業(yè)務(wù)的理解,做定制ASIC。但這些ASIC實現(xiàn)的加速功能是芯片公司對業(yè)務(wù)場景的理解,并把業(yè)務(wù)邏輯固化到定制的設(shè)計中,使得云廠家很難基于此硬件平臺開發(fā)出差異化的創(chuàng)新功能。并且,定制的設(shè)計,限制了云廠家的創(chuàng)新能力,并且使得云場景不得不跟硬件平臺廠家深度綁定,這些對云廠家來說,并不是一件好事。
如圖4所示,AWS Nitro和NVIDIA DPU是兩種不同方向的演進:
NVIDIA DPU演進:從硬到軟,NIC -> SNIC -> DPU(DPU = SNIC+嵌入式CPU);定制設(shè)計,客戶無法差異化,與云系統(tǒng)發(fā)展規(guī)律相悖。
AWS Nitro演進:從軟到硬,CPU基礎(chǔ)上,逐步增加足夠彈性的加速引擎;通用的設(shè)計,符合云系統(tǒng)發(fā)展規(guī)律。
NVIDIA,一開始就是完全ASIC的設(shè)計。雖然性能足夠好,但卻很難覆蓋客戶五花八門的各種差異化場景以及各種場景未來2-3年的中長期迭代。即使非常熟悉自身的場景需求,AWS所做的硬件優(yōu)化,依然是非常審慎的。AWS并沒有貿(mào)然的做ASIC,而是做足夠靈活彈性的硬件加速。這使得,整個Nitro芯片,具有非常強大的靈活可編程能力。
3 Graviton CPU,跟Nitro走向不同的方向
3.1 Graviton CPU的演進
圖5 Winnie Shao博士總結(jié)的Graviton CPU的3代演進
在AWS re:Invent 2021大會上,AWS發(fā)布了最新一代的ARM CPU芯片Graviton 3。相比2018年發(fā)布的Graviton 1和2019年發(fā)布Graviton 2,有了很大的改進。
話不多說,直接上圖。如圖5所示,Winnie Shao博士是CPU領(lǐng)域的專家,她總結(jié)的這個表格已經(jīng)非常完善了,我就不再班門弄斧了。
3.2 Graviton CPU和Nitro DPU的淵源
第一代Nitro是在AWS re:Invent 2017上發(fā)布的,初代Nitro本質(zhì)是一款CPU芯片。隨后一年,re:Invent 2018發(fā)布了Nitro 2代以及Graviton 1代ARM CPU芯片。我們大約可以推斷,Nitro 2主要升級了CPU的性能,Nitro 2代和Graviton CPU 1代是比較接近同一款芯片的設(shè)計。
圖6 推測的AWS ARM服務(wù)器架構(gòu)示意圖
由于ARM CPU核的單核性能相比x86 CPU核仍有差距,要想更好地實現(xiàn)降成本的目標(biāo),勢必需要在ARM服務(wù)器的高計算密度方面做文章。如圖6所示,這是我們推測的ARM服務(wù)器內(nèi)部架構(gòu),也只有這樣,Nitro System組成一個平臺化的系統(tǒng),提供Multi-Host的機制給到CPU,可以支持4-8塊CPU計算節(jié)點。這樣,可以在單臺服務(wù)器規(guī)模,最多容納16顆ARM CPU。更極端的推測,如果Graviton和Nitro是同一顆芯片的話,AWS ARM服務(wù)器相當(dāng)于包含了21顆CPU芯片。
圖7 Graviton和Nitro的演進區(qū)別
如圖7所示,Graviton和Nitro可以說“同宗同源,師出同門”,但卻因為分工和定位的不同,逐漸走向了兩個不同的方向:
Graviton的Scale Out模式。Graviton定位為主CPU。勢必需要提供更加強大的單核性能以及提供更高的水平擴展性,也就是說單芯片要集成更多的CPU核,以及要支持多CPU的跨芯片緩沖一致性互聯(lián)。
Nitro的Scale Up模式。Nitro的主要工作是卸載、隔離和加速。只隔離和卸載,不解決本質(zhì)問題,只有通過硬件加速才真正實現(xiàn)性能提升和成本降低。所以,Nitro的演進,勢必走向通過硬件加速,瘋狂地提升單芯片的處理性能的路子上。
4 應(yīng)用加速芯片
4.1 CPU、DPU和GPU/FPGA/DSA
圖8 CPU、GPU/FPGA/DSA以及DPU的關(guān)系
如圖CPU、GPU/FPGA/DSA和DPU,三者的關(guān)系就像《三體》描述的那樣,既相互協(xié)作,又相互競爭,最終達到一個相對穩(wěn)定的狀態(tài):
DPU主要定位基礎(chǔ)設(shè)施層的加速和處理;
GPU/FPGA/DSA主要負(fù)責(zé)應(yīng)用層的加速;
CPU負(fù)責(zé)應(yīng)用層的常規(guī)處理。
當(dāng)然,DPU有個優(yōu)勢是DPU是所有數(shù)據(jù)的入口/出口。按照互聯(lián)網(wǎng)“得入口者得天下”的說法,DPU會成為云計算各類服務(wù)承載的核心。
GPU/FPGA/DSA主要用于應(yīng)用加速。顧名思義,應(yīng)用加速是提供給用戶業(yè)務(wù)應(yīng)用的服務(wù),針對用戶性能敏感的業(yè)務(wù)場景,針對特定應(yīng)用提供硬件加速平臺。應(yīng)用加速所使用的加速平臺則是暴露給用戶使用的,用戶可以感知到并且用戶根據(jù)自己的想法來使用硬件加速平臺。與之對應(yīng)的,VPC、EBS等基礎(chǔ)服務(wù),即使云計算廠家通過專有的硬件加速,這些加速用戶也是無法感知的。
應(yīng)用加速平臺常見有三種類型:
GPU加速的云主機。例如,AWS EC2 P3實例可以提供高性能的計算,可支持高達8個 NVIDIA V100 GPU,可為機器學(xué)習(xí)、HPC等應(yīng)用提供高達100Gbps的網(wǎng)絡(luò)吞吐量。
FPGA加速的云主機。例如,AWS EC2 F1實例使用FPGA實現(xiàn)自定義硬件加速交付。
DSA/ASIC加速的云主機。例如,AWS EC2 Inf1實例可在云端提供高性能和最低成本的機器學(xué)習(xí)推理。這些實例具有多達16個AWS Inferentia芯片,這是由AWS設(shè)計和打造的高性能機器學(xué)習(xí)推理芯片。
4.2 為什么要為特定場景定制芯片
AWS發(fā)布了Inferentia定制芯片,它不像Graviton這樣的通用CPU處理器什么都能干,而是專注于機器學(xué)習(xí)推理。通用CPU處理器可以支持足夠廣泛的各種工作負(fù)載類別,當(dāng)然也包括機器學(xué)習(xí)推理,為什么還要開發(fā)特定工作負(fù)載的專用處理器?
的確,通用CPU處理器多年來一直承擔(dān)著絕大部分的工作負(fù)載,CPU數(shù)量非常龐大,因此單位的成本可以做到比較低。低成本的優(yōu)勢可以抵消為特定工作負(fù)載芯片定制的優(yōu)勢。當(dāng)只有少量服務(wù)器運行特定工作負(fù)載時,很難從經(jīng)濟上證明芯片定制優(yōu)化是合算的。
在計算領(lǐng)域之外,芯片定制在網(wǎng)絡(luò)領(lǐng)域大放異彩。網(wǎng)絡(luò)數(shù)據(jù)包處理是高度專業(yè)化的,網(wǎng)絡(luò)協(xié)議很少更改。數(shù)量足夠大,定制就非常的經(jīng)濟。因此,大多數(shù)網(wǎng)絡(luò)數(shù)據(jù)包處理是使用ASIC芯片完成的。大多數(shù)路由器,無論來源如何,基本都是建立在專門的ASIC之上的。
雖然,定制ASIC硬件可以將延遲、性能價格比以及性能功耗比提高高達十倍。但是,這么多年以來,大多數(shù)的計算工作負(fù)載仍“頑強”地停留在通用CPU處理器上。通常,每個客戶服務(wù)器數(shù)量不多,芯片定制通常意義不大。但是,云計算改變了這一切。在成功且廣泛使用的云中,即使是“稀有”工作負(fù)載,其數(shù)量也可能達到數(shù)千甚至數(shù)萬。
過去,作為企業(yè),幾乎不可能證明芯片定制,針對特定工作負(fù)載的加速處理,是足夠經(jīng)濟的。但在云中,有成千上萬足夠罕見的工作負(fù)載。突然之間,不僅可以針對特定工作負(fù)載類型進行硬件的優(yōu)化,而且如果不這樣做,反而顯得有點“不夠積極”。在很多情況下,芯片定制不僅僅可以把成本降低一個數(shù)量級,電量消耗減少到1/10,并且這些定制化的方案可以給客戶以更低的延遲提供更好的服務(wù)。
定制的芯片將成為未來服務(wù)器端計算的重要組成部分,亞馬遜自2015年初以來就有一個專注于AWS的芯片定制團隊,在此之前,AWS與合作伙伴合作構(gòu)建專業(yè)化解決方案。在re:Invent 2016大會上,AWS發(fā)布了一款安裝在所有服務(wù)器中的定制芯片(James Hamilton的星期二夜現(xiàn)場,Nitro的前身)。盡管這是一個非常專業(yè)的定制芯片,但AWS每年安裝的此類定制芯片超過一百萬,而且這個數(shù)字還在繼續(xù)增加。在服務(wù)器領(lǐng)域,它實際上是一個銷量非常大的芯片了。
機器學(xué)習(xí)工作負(fù)載需要的服務(wù)器資源將比當(dāng)前所有形式的服務(wù)器計算的總和還要多。機器學(xué)習(xí)的客戶價值幾乎適用于每個領(lǐng)域,潛在收益非常巨大。機器學(xué)習(xí)幾乎可以立即適用于所有業(yè)務(wù),包括客戶服務(wù)、保險、金融、供暖/制冷以及制造。一項技術(shù)很少有像機器學(xué)習(xí)一樣如此廣泛的應(yīng)用,當(dāng)收益如此之大時,這對大多數(shù)企業(yè)來說就是一種賽跑。那些最先深入應(yīng)用機器學(xué)習(xí)的人或組織可以更有效、更經(jīng)濟地為客戶服務(wù)。AWS專注于讓機器學(xué)習(xí)的快速部署變得更加容易,同時降低成本,讓更多的工作負(fù)載可以更經(jīng)濟地使用機器學(xué)習(xí)。
規(guī)模和針對特定場景的優(yōu)化,是Inferentia等工作負(fù)載專用加速芯片發(fā)展的最本質(zhì)的驅(qū)動力量。未來,在大型數(shù)據(jù)中心,除了AI訓(xùn)練和推理芯片,也會出現(xiàn)很多面向其他工作負(fù)載,如視頻圖像處理、大數(shù)據(jù)分析、基因組學(xué)、電子設(shè)計自動化 (EDA)等,的特定加速芯片。
4.3 AI-DSA推理芯片Inferentia
Inferentia是AWS第一款A(yù)I推理芯片,而基于Inferentia的Inf1實例針對ML推理進行了優(yōu)化,與基于GPU的同類EC2實例相比,Inferentia的推理成本下降80%,吞吐量提高2.3倍。使用Inf1實例,客戶可以在云端低成本運行大規(guī)模ML推理應(yīng)用程序,例如圖像識別、語音識別、自然語言處理、個性化和欺詐檢測。
圖9 AWS inferentia AI推理芯片
Inferentia的高性能。每個芯片具有4個神經(jīng)元核心,可以執(zhí)行高達128 TOPS(每秒數(shù)萬億次操作)。它支持BF16、INT8和FP16數(shù)據(jù)類型。并且,Inferentia可以采用32位訓(xùn)練模型,并使用BF16的16位模型的速度運行它。
亞馬遜推理,低延遲的實時輸出。隨著ML變得越來越復(fù)雜,模型不斷增長,將模型傳入和傳出內(nèi)存成為最關(guān)鍵的任務(wù),這帶來了高延遲并放大了計算問題。Inferentia芯片具有在更大程度上解決延遲問題的能力。多芯片互聯(lián):首先可以將模型跨多個內(nèi)核進行分區(qū),并使用100%的片內(nèi)內(nèi)存——通過內(nèi)核流水線全速傳輸數(shù)據(jù),防止片外內(nèi)存訪問引起的延遲。
支持所有框架。機器學(xué)習(xí)愛好者可以輕松地將幾乎所有可用的框架上運行在Inferentia。要運行Inferentia,需要將模型編譯為硬件優(yōu)化表示??梢酝ㄟ^AWS Neuron SDK中提供的命令行工具或通過框架API執(zhí)行操作。
4.4 AI-DSA訓(xùn)練芯片Trainium
圖10 AWS Trainium AI訓(xùn)練芯片
如圖10所示,在AWS re:Invent 2020開發(fā)者大會上,AWS發(fā)布了其設(shè)計的主要用于機器學(xué)習(xí)訓(xùn)練的第二款定制的AI芯片--AWS Trainium。它提供比云端任何競爭對手更高的性能,同時支持TensorFlow、PyTorch和MXNet等。
這款定制芯片的主要優(yōu)勢是速度和成本,AWS承諾與標(biāo)準(zhǔn)AWS GPU實例相比,吞吐量提高30%,每次推斷的成本降低45%。
Trainium芯片還專門針對深度學(xué)習(xí)訓(xùn)練工作負(fù)載進行了優(yōu)化,包括圖像分類、語義搜索、翻譯、語音識別、自然語言處理和推薦引擎等。它將以EC2(亞馬遜彈性計算云)實例的形式出現(xiàn)在亞馬遜的機器學(xué)習(xí)平臺SageMaker中。
Trainium與Inferentia有著相同的AWS Neuron SDK,這使得使用Inferentia的開發(fā)者可以很容易地開始使用Trainium。因為Neuron SDK集成了流行的機器學(xué)習(xí)框架,包括TensorFlow、PyTorch和MXNet,開發(fā)人員可以輕松地從基于GPU的實例遷移到Trainium,代碼更改很少。
5 Nitro SSD
圖11 Nitro SSD的位置
Nitro SSD是一張獨立的SSD盤,使用了專用的SSD控制器芯片,我們姑且稱之為Nitro SSD Controller。為什么叫“Nitro” SSD?我理解是因為這個SSD是掛在Nitro卡之下,并且為了整個系統(tǒng)極致的優(yōu)化,內(nèi)部的一些協(xié)議或算法跟Nitro卡內(nèi)部有一定的協(xié)同,不管是用于本地存儲或者是EBS遠程存儲。
AWS Nitro SSD,使AWS能夠為客戶提供具有大量IOPS、大量吞吐量和 64 TiB 的最大卷大小的EBS卷。Im4gn和Is4gen實例使用第二代AWS Nitro SSD,未來許多新的EC2實例也將使用Nitro SSD。
AWS Nitro SSD每個設(shè)備內(nèi)部的固件負(fù)責(zé)實現(xiàn)許多較低級別的功能。當(dāng)客戶將設(shè)備推向極限運行時,客戶希望我們能夠診斷并解決他們觀察到的任何性能不一致問題。構(gòu)建AWS自己的設(shè)備使AWS能夠設(shè)計操作遙測和診斷,以及使AWS能夠以云規(guī)模和云速度安裝固件更新的機制。更進一步的,AWS開發(fā)了自己的代碼來管理實例級存儲,以進一步提高可靠性和調(diào)試能力。
在性能方面,對云工作負(fù)載的深入了解促使AWS對設(shè)備進行設(shè)計,以便它們能夠在持續(xù)的負(fù)載下提供最高性能。SSD由快速、密集的閃存構(gòu)成。由于這種半導(dǎo)體存儲器的特性,每個單元只能被寫入、擦除和重寫有限的次數(shù)。為了使設(shè)備的使用壽命盡可能長,固件負(fù)責(zé)一個稱為磨損均衡的過程。這個過程涉及一些內(nèi)務(wù)管理(一種垃圾收集形式),在處理大量寫入時,各種類型的SSD可能會在不可預(yù)測的時間變慢(產(chǎn)生延遲峰值)。AWS還利用數(shù)據(jù)庫的專業(yè)知識,在SSD固件中構(gòu)建了一個非常復(fù)雜、斷電安全的基于日志的數(shù)據(jù)庫。
第二代AWS Nitro SSD旨在避免延遲峰值并在實際工作負(fù)載上提供出色的I/O性能?;鶞?zhǔn)測試顯示,使用AWS Nitro SSD的實例(例如新的 Im4gn 和 Is4gen)的延遲可變性比I3實例低75%,從而為客戶提供更加一致的SSD性能。
6 綜合分析
從定制硬件整機開始,再逐步深入到定制芯片,然后慢慢地把上層的軟件、芯片以及硬件整機全方位協(xié)同并整合到一起,亞馬遜AWS逐漸構(gòu)筑起自己特有的、最強大的競爭優(yōu)勢。
圖12 以AWS為例的數(shù)據(jù)中心核心芯片示意圖
聚焦到芯片,簡單總結(jié)一下。如圖12所示,整個數(shù)據(jù)中心核心的芯片有如下類型:CPU、GPU/FPGA/各種DSA加速芯片、DPU、SSD等高性能存儲控制芯片以及交換機芯片。未來AWS應(yīng)該要做的是:數(shù)據(jù)中心關(guān)鍵芯片還沒有的會逐漸補齊,已有的芯片類型后續(xù)會持續(xù)增強。
詳細的綜合分析如表1所示。
表1 AWS芯片自研綜合分析
位置 | 類型 | 子類型 | 代號 | 分析&推測 |
服務(wù)器側(cè) | CPU | CPU | Graviton | 重要性:★★★★★CPU是數(shù)據(jù)中心算力的最核心器件,ARM服務(wù)器CPU反響不錯,AWS應(yīng)該會持續(xù)重金投入,加大ARM服務(wù)器CPU的使用量,提升ARM服務(wù)器的整體占比。 |
應(yīng)用加速 | GPU | 無 | 重要性:★★★★★在AI的算法模型還沒有穩(wěn)定之前,GPU都是AI算力的重要承擔(dān)者,NVIDIA如日中天。AWS因為其上層軟件生態(tài)的優(yōu)勢,以及云計算的運營模式,有能力抵消其在GPU生態(tài)上的劣勢。預(yù)計未來AWS會自研GPGPU芯片,并加入EC2家族對外提供服務(wù)。 | |
FPGA | 無 | 重要性:★★☆☆☆FPGA作為FaaS平臺,對云計算上層服務(wù)來說,沒有那么直接,需要客戶或第三方ISV開發(fā)加速硬件和配套的軟件。FaaS不是主流的云服務(wù),并且Xilinx和Intel的FPGA都相對成熟穩(wěn)定,F(xiàn)PGA應(yīng)該不是AWS發(fā)展的重心。 | ||
DSA-AI-推理 | Inferentia | 重要性:★★★★☆A(yù)I推理和訓(xùn)練我們放到一起。AI是應(yīng)用的王者,并且是算力的吞金獸,必須要做各種定制加速DSA。并且,云計算的模式也可以先天抵消DSA-AI的許多使用門檻。通過云的封裝,可以提供各種框架服務(wù)甚至SaaS層AI服務(wù),使得AI-DSA芯片能大范圍地用起來。對AWS來說,AI相關(guān)的定制芯片,是必須要持續(xù)投入,持續(xù)優(yōu)化和增強的。 | ||
DSA-AI-訓(xùn)練 | Trainium | |||
DSA-其他 | 無 | 重要性:★★★☆☆除了AI,也有很多其他算力需求高的工作任務(wù)。隨著發(fā)展,也會出現(xiàn)新的需要高算力的工作任務(wù),比如元宇宙,就對圖形圖形處理、網(wǎng)絡(luò)等提出了更高的要求。GPGPU的效率有所欠缺,并且可見的未來也會像CPU一樣達到性能瓶頸。專用的圖形GPU或者VPU可能會成為AWS下一個定制的DSA芯片。 | ||
DPU | DPU | Nitro | 重要性:★★★★★(★)因為軟件生態(tài)的強大,CPU是數(shù)據(jù)中心最核心的芯片。但CPU芯片的功能定義已經(jīng)足夠成熟,只需要持續(xù)優(yōu)化升級改進即可。而DPU的挑戰(zhàn)在于,DPU是整個云計算服務(wù)承載的核心,不僅僅是要提供足夠的性能,更是要把現(xiàn)有的許多服務(wù),不僅僅是IaaS層服務(wù),也包括PaaS甚至SaaS的服務(wù),要融入DPU中??梢哉f,DPU是云計算最戰(zhàn)略級的芯片,沒有之一。給六顆星,不為過。 | |
CPU、GPU、DPU的整合 | 無 | 重要性:★★★★★NVIDIA有CPU+GPU的處理器,也有CPU+GPU+DPU的Atlan,未來CPU、GPU、DPU兩兩整合,或者三者整合成獨立的單芯片加速平臺是一個越來越明顯的趨勢。集成大芯片,會在性能和成本方面帶來很多的好處。隨著數(shù)據(jù)中心規(guī)模的增大,以及一些場景逐漸穩(wěn)定成熟,把CPU、GPU、GPU重新整合重構(gòu),是一個必然的趨勢。 | ||
存儲盤 | SSD | Nitro SSD | 重要性:★★★☆☆存儲控制器廠家,很容易“只見樹木,不見森林”,導(dǎo)致無法站在數(shù)據(jù)中心超大規(guī)模的全局去思考問題,這也會導(dǎo)致存儲卡會成為性能穩(wěn)定性和數(shù)據(jù)安全的潛在風(fēng)險。類似ZNS技術(shù),AWS通過自研Nitro SSD跟Nitro DPU芯片更好地協(xié)同,給客戶提供更穩(wěn)定更安全的存儲服務(wù)。只是,與整個數(shù)據(jù)中心計算相比,這塊相對來說屬于“枝葉”,一旦穩(wěn)定,后期應(yīng)該不需要投入太多。 | |
交換機側(cè) | Switch | Switch | 無 | 重要性:★★★★★更簡單的網(wǎng)絡(luò),還是更復(fù)雜的網(wǎng)絡(luò)?網(wǎng)絡(luò)到底要不要分擔(dān)計算的壓力,足夠Smart來處理一些計算的任務(wù)?還是提供極致簡單且極致性能的網(wǎng)絡(luò),把可能的計算都交給用戶,讓用戶掌控一切?上面說的這些話,如何選擇都沒關(guān)系。重要的是,交換機是網(wǎng)絡(luò)的核心,網(wǎng)絡(luò)又是云計算的前提。沒有網(wǎng)絡(luò),計算和存儲什么都不是。這一條就夠了!交換機側(cè),AWS這種體量的云計算公司一定不會放過。期待AWS在交換機側(cè)的創(chuàng)新! |
參考文獻
- AWS Innovation Scale, James Hamilton, Re: Invent 2016, https://mvdirona.com/jrh/talksandpapers/ReInvent2016_James%20Hamilton.pdf
- AWS EC2 Virtualization 2017: Introducing Nitro, https://www.brendangregg.com/blog/2017-11-29/aws-ec2-virtualization-2017.html
- AWS Nitro System, James Hamilton, https://perspectives.mvdirona.com/2019/02/aws-nitro-system/
- AWS Graviton3:遵循摩爾定律又有自己節(jié)奏,Winnie shao,“企業(yè)存儲技術(shù)”公眾號,https://mp.weixin.qq.com/s/IFIIJ5sF4yvyGkrcsTPnLw
- AWS Inferentia Machine Learning Processor, James Hamilton, https://perspectives.mvdirona.com/2018/11/aws-inferentia-machine-learning-processor/
- Deep dive into Amazon Inferentia: A custom-built chip to enhance ML and AI, https://www.cloudmanagementinsider.com/amazon-inferentia-for-machine-learning-and-artificial-intelligence/
- MacOS上云了!AWS還推出機器學(xué)習(xí)Trainium芯片:萬億次浮點運算,推理成本再降45%,新智元,https://mp.weixin.qq.com/s/4xkLq4S1ZaZLuqQSNHI0_Q
- AWS Nitro SSD – High Performance Storage for your I/O-Intensive Applications, https://aws.amazon.com/cn/blogs/aws/aws-nitro-ssd-high-performance-storage-for-your-i-o-intensive-applications/
(正文完)