從2013年推出首顆Nitro1芯片至今,,這家最先涉足自研芯片的云廠商,,已坐擁網(wǎng)絡(luò)芯片、服務(wù)器芯片,、人工智能機(jī)器學(xué)習(xí)自研芯片三條產(chǎn)品線,。
4代網(wǎng)絡(luò)芯片Nitro、3代服務(wù)器芯片Graviton,、1代AI推理芯片,、1代AI訓(xùn)練芯片,這是AWS迄今公布的云計(jì)算底座自研芯片版圖,。
值得注意的是,,AWS絕非“PPT造芯”,而是通過云實(shí)例將芯片的價(jià)值快速導(dǎo)向客戶,。今年,,AWS發(fā)布了C7g、Trn1等一系列新實(shí)例,,并推出Nitro的SSD硬盤,。
“自研芯片是需要經(jīng)驗(yàn)積累的,并不是你花錢就能買來的,,也并不是你著急很快就能實(shí)現(xiàn),?!痹?021 re:Invent全球大會(huì)媒體溝通會(huì)上,亞馬遜云科技大中華區(qū)產(chǎn)品部總經(jīng)理顧凡談到AWS在重構(gòu)自研芯片中的最大優(yōu)勢(shì)——深刻理解云上所有客戶的工作負(fù)載,,去逆向工作,,設(shè)計(jì)芯片。
對(duì)于AWS的造芯歷程以及背后邏輯,,亞馬遜云科技大中華區(qū)產(chǎn)品部計(jì)算與存儲(chǔ)總監(jiān)周舸進(jìn)行了詳細(xì)地解讀,。
01.
自研CPU:以客戶需求為起點(diǎn),
兩大技術(shù)思路提升性能
AWS從自研芯片出發(fā)做云計(jì)算的創(chuàng)新,,要從2006年發(fā)布第一個(gè)Amazon EC2 Instance說起,,這是一段由十人團(tuán)隊(duì)開始的Amazon EC2旅程。
隨著客戶對(duì)Amazon EC2提出更多要求,,AWS持續(xù)地增加了很多機(jī)型,,包括給SAP用的超過24TB最大內(nèi)存的實(shí)例、專為轉(zhuǎn)碼業(yè)務(wù)提供的VT1,、基于Arm的蘋果最新M1芯片提供的新實(shí)例等。
這些實(shí)例多樣化創(chuàng)新的不斷深入,,令A(yù)WS團(tuán)隊(duì)意識(shí)到,,必須專注到芯片研發(fā)的本身,從芯片的創(chuàng)新開始,。于是從2013年至今,,AWS不斷基于自研芯片推出新的實(shí)例,以提供更高性價(jià)比,。
2019年,,AWS發(fā)布第二代服務(wù)器芯片Graviton,其實(shí)例上市后,,客戶把更多不同的應(yīng)用方式部署到Graviton上,,跨越的范圍也進(jìn)一步擴(kuò)展,從當(dāng)初的Cache到Web一直延伸到數(shù)據(jù)分析,,乃至機(jī)器學(xué)習(xí)和高性能計(jì)算的工作負(fù)載,。
為了幫客戶更好地使用新實(shí)例,AWS將更多的管理服務(wù)和Graviton做深入集成,,使得客戶能快速用起來,。結(jié)果,很多客戶只用一兩天時(shí)間,,就能完成從x86到Arm的轉(zhuǎn)移,。
在今年的re:Invent大會(huì)上,AWS發(fā)布了4個(gè)基于Graviton2的新實(shí)例,,包括1TB內(nèi)存的X2gd,、由Graviton2和英偉達(dá)GPU提供支持的G5g等,。Is第四代的實(shí)例中有Is4gen和Im4gn,也采用的是Graviton2處理器,。
Graviton2有300億個(gè)晶體管,,新一代Graviton3又增加了200億,共擁有500億個(gè)晶體管,。
C7g是第一個(gè)針對(duì)Graviton3的實(shí)例,,其突破有多處重點(diǎn),包括性能較上一代提升超25%,,浮點(diǎn)運(yùn)算能力提升超過兩倍,。在內(nèi)存上,C7g也是云上第一個(gè)支持DDR5的新的計(jì)算實(shí)例,。
亞馬遜云科技大中華區(qū)產(chǎn)品部計(jì)算與存儲(chǔ)總監(jiān)周舸也分享了Graviton的技術(shù)創(chuàng)新,,相同Arm微架構(gòu)不代表能做出相同的CPU,芯片設(shè)計(jì)時(shí)必須有自己的思考,,AWS的原則是,,從工作負(fù)載去看,從客戶真正實(shí)際使用情況,,去找到設(shè)計(jì)的起點(diǎn),。
在過去的20年里面,提升CPU性能最容易的兩個(gè)方向,,一是提高頻率,,二是增加內(nèi)核數(shù)量。
大多數(shù)時(shí)候,,提高頻率很容易讓性能得到提升,,但問題是,以現(xiàn)有半導(dǎo)體的功率和能力,,提高頻率意味著會(huì)提高很多頻率,、熱量,需要搭配很大的電源及散熱配置,。
在像云這樣的超大規(guī)模數(shù)據(jù)中心,,這將帶來大量的耗電、能耗,,降低了云的效率,,并對(duì)散熱效率提出更高要求,最終致使客戶的使用成本上升,?!八赃@是我們非常謹(jǐn)慎的在選擇頻率提升的時(shí)候的一個(gè)主要原因?!敝荇凑f,。
如果不做頻率的提升,,那還有別的什么選項(xiàng)呢?
AWS的答案是,,希望讓內(nèi)核的寬度得以增加,,即使用指令并行的方式,希望其內(nèi)核在同一個(gè)時(shí)鐘周期中能夠執(zhí)行更多的指令,、完成更多的任務(wù),。
比如從一個(gè)時(shí)間周期執(zhí)行5個(gè)指令提升到執(zhí)行8個(gè)指令,所以同一個(gè)時(shí)間里面能做更多事,,這也能給最后的性能帶來很大變化,。
使用指令并行時(shí),如果應(yīng)用程序的編譯能夠發(fā)揮出指令并行的優(yōu)勢(shì),,效果會(huì)非常明顯,。Nginx和Groovy差不多提升了60%,甚至Redshift也可以提升超過25%,。
在同一個(gè)周期里面,,AWS讓它有機(jī)會(huì)執(zhí)行更多的指令,也讓同一個(gè)指令執(zhí)行時(shí)能夠執(zhí)行更多的數(shù)據(jù),,它就會(huì)更快地完成視頻,、圖像等處理、轉(zhuǎn)碼以及一些機(jī)器學(xué)習(xí)和高性能計(jì)算的過程,。
結(jié)果可見,x264,、x265視頻編碼性能提升50%左右,,AES-256加密性能提升了61%。這都是通過指令并行和同一個(gè)指令里面加載更多的數(shù)據(jù)量的處理能力來實(shí)現(xiàn)的,,而沒有靠頻率提升,。
增加核數(shù)是提升性能的另一個(gè)快而有效的方法。
從第一代Graviton到第二代,,AWS增加了不少核數(shù),,效果還不錯(cuò)。到第三代時(shí),,AWS團(tuán)隊(duì)研究了真正在Graviton2上運(yùn)行的客戶工作負(fù)載,,發(fā)現(xiàn)其中大量的工作負(fù)載里是大數(shù)據(jù)的、微服務(wù)架構(gòu)的等等,,還有些高性能計(jì)算服務(wù),,這些服務(wù)對(duì)于內(nèi)存帶寬和延時(shí)敏感度非常高。
因此,,AWS團(tuán)隊(duì)做出判斷:在內(nèi)存下功夫,,會(huì)比增加核數(shù)的效果更快,。
新的選擇題出現(xiàn):用余下晶體管去增加更多核,還是去增加CPU的內(nèi)存帶寬和降低延遲,?
最終,,AWS團(tuán)隊(duì)選擇了內(nèi)存。相對(duì)于Graviton2以及英特爾的Tool平臺(tái),,其內(nèi)存帶寬提升了50%,,這在很多應(yīng)用上的效果非常直接。
一些早期用過的客戶分享了Graviton3給他們帶來的幫助,。如Twitter表示其性能提升20%~80%,,甚至在降低尾延遲方面可以降低至少35%,這對(duì)內(nèi)存延遲非常敏感,;F1方程式在做流體仿真時(shí)用的是Graviton2,,已經(jīng)比英特爾的平臺(tái)快很多,這次它用C7g又可以提升40%,;Epic《堡壘之夜》的游戲性能體驗(yàn)也大幅提升,。
還有一個(gè)重要指標(biāo)是讓功耗降低60%。這將維持更高能效比,,且客戶不會(huì)付出很高的成本代價(jià),。
Graviton的大量使用,已經(jīng)衍生到了非常多的工作負(fù)載中,。如SAP HANA Cloud使用Graviton,,去幫助企業(yè)級(jí)的客戶提升運(yùn)營效率、提高性能,。
同時(shí),,今年AWS在re:Invent上面也宣布了其連續(xù)第四年獲得了HPC最佳云平臺(tái)的大獎(jiǎng),Graviton還在11月底獲得中國計(jì)算機(jī)學(xué)會(huì)高性能計(jì)算委員會(huì)頒發(fā)的產(chǎn)品創(chuàng)新獎(jiǎng),。
C7g實(shí)例通過支持BFloat16,,使得Graviton3的機(jī)器學(xué)習(xí)推理性能幾乎比上一代提升快4倍。
02.
自研AI芯片:優(yōu)化內(nèi)存和網(wǎng)絡(luò),,
加速適配機(jī)器學(xué)習(xí)需求
在提升服務(wù)器芯片AI算力的同時(shí),,AWS正持續(xù)優(yōu)化其AI芯片及相關(guān)實(shí)例的性能。
面對(duì)AI訓(xùn)練和推理,,AWS有不同的實(shí)例,。除了其P4d、inf1實(shí)例用在推理,,通用CPU的推理使用也越來越多,,包括C6i和C6g;在訓(xùn)練方面,,AWS推出了具備EC2超級(jí)集群能力的P4d和基于英特爾AI芯片Habana驅(qū)動(dòng)的DL1,。
2019年,,AWS發(fā)布基于其自研云端AI推理芯片Inferentia的Amazon EC2 Inf1實(shí)例,如今該實(shí)例已經(jīng)被很多中國客戶用于做推理,。
今年剛剛推出的Trn1,,是基于AWS自研云端訓(xùn)練芯片Trainium的實(shí)例。近年機(jī)器學(xué)習(xí)發(fā)展飛速,,其配套的各種專業(yè)加速芯片隨之發(fā)展迅猛,。每年機(jī)器學(xué)習(xí)專用芯片的演進(jìn)提升速度都超翻倍,比通用CPU快得多,。
可是挑戰(zhàn)是,,機(jī)器學(xué)習(xí)這個(gè)模型的復(fù)雜度是呈10倍地成長,光靠GPU,、加速芯片本身的加速,,已經(jīng)不足以跟得上這個(gè)速度。
因此要讓機(jī)器學(xué)習(xí)訓(xùn)練能力大幅提升,,關(guān)鍵是并行訓(xùn)練,。這意味著不僅要提升專用芯片本身的性能,還要解決內(nèi)存和網(wǎng)絡(luò)兩大難點(diǎn),,構(gòu)建更適合這些芯片發(fā)揮的網(wǎng)絡(luò)環(huán)境和它配套的所有服務(wù),。
內(nèi)存方面,從P3dn開始,,AWS的內(nèi)存一直在增加,。到今年Trn1內(nèi)存已是512G。
網(wǎng)絡(luò)方面,,AWS幾年前就推出了100G的網(wǎng)絡(luò),,到p4d時(shí)去年做了400G的網(wǎng)絡(luò),全新發(fā)布的Trn1首次將帶寬增至800G,,Trn1n更是可以到1600G,,基于其EFA,,AWS可以讓機(jī)器學(xué)習(xí)的設(shè)備組在一個(gè)架構(gòu)中,,提高分布式高性能計(jì)算和機(jī)器學(xué)習(xí)工作負(fù)載的吞吐量和可擴(kuò)展性。
從效果上來看,,一個(gè)典型大模型GPT-3需要兩周的訓(xùn)練周期,,用P3dn需要600個(gè)實(shí)例,P4d已經(jīng)降至128個(gè)實(shí)例,,Trn1n繼續(xù)下降到96個(gè)實(shí)例,。實(shí)例數(shù)大幅減少后,成本會(huì)明顯節(jié)約,。
值得注意的是,,P3dn跑訓(xùn)練時(shí),,49%的開銷花在了實(shí)例之間的通信。P4d把網(wǎng)絡(luò)性能提升后,,還剩14%的開銷,。到Trn1n,只有7%的開銷會(huì)用到網(wǎng)絡(luò)通信上面,。
這帶來的好處是,,AWS可用更大的集群、更多的卡同時(shí)去訓(xùn)練,,真正明顯縮短訓(xùn)練時(shí)間,。P4d最多可用4000個(gè)卡同時(shí)訓(xùn)練,Trn1n則將這個(gè)指標(biāo)提升到了1萬張,,這也是一個(gè)巨大的進(jìn)步,。
如今,每天有超過6000萬個(gè)全新實(shí)例在Amazon EC2實(shí)上運(yùn)轉(zhuǎn),,這是2019年的兩倍,,而這一切都來自于網(wǎng)絡(luò)本身的創(chuàng)新。
03.
自研SSD:統(tǒng)一監(jiān)控運(yùn)行指標(biāo),,
降低bug風(fēng)險(xiǎn)
Nitro芯片是AWS網(wǎng)絡(luò)創(chuàng)新的起點(diǎn),,前文談及的從100G、400G,、800G到1600G都離不開Nitro,。
這個(gè)已經(jīng)推出四代的網(wǎng)絡(luò)芯片幫助AWS解決了很多問題,包括提供了統(tǒng)一的安全性平臺(tái),,無論使用什么樣的CPU計(jì)算平臺(tái),,都可以獲得一致的安全性、一致的VPC接入能力,、一致的API的統(tǒng)一性等等,。
Nitro也可以幫助提高存儲(chǔ)的性能。
第一塊硬盤在1956年時(shí)相當(dāng)巨大,,后來逐漸發(fā)展成像一個(gè)唱機(jī)大小的磁盤,,數(shù)據(jù)中心中很多大數(shù)據(jù)都存儲(chǔ)在這樣的磁盤里面。隨著應(yīng)用的發(fā)展,,數(shù)據(jù)中心對(duì)IO吞吐的需求越來越高,,擅長于此的SSD被越來越多地采用到存儲(chǔ)設(shè)備中。
SSD用半導(dǎo)體存數(shù)據(jù),,其閃存轉(zhuǎn)換層(FTL)會(huì)控制將數(shù)據(jù)從邏輯地址到物理地址的轉(zhuǎn)換,。這里特別容易發(fā)生兩件事:一是垃圾回收,擦寫時(shí)要將相應(yīng)空間釋放出來;二是磨損平衡,,控制每個(gè)數(shù)據(jù)塊使用頻率差不多,,能被較均衡地磨損掉。
過去,,AWS使用的大量SSD硬盤來自很多供應(yīng)商,,各家FTL控制機(jī)制不同,甚至每種盤的FTL都可能不一樣,。如果FTL中有bug要修復(fù),,只能等到原廠來做這個(gè)事,時(shí)間就會(huì)很不可控,,連帶著AWS對(duì)客戶提供服務(wù)保障會(huì)變得更困難,。
此外,不同F(xiàn)TL的有些功能實(shí)現(xiàn)邏輯不一致,,可能會(huì)在不同的時(shí)間啟動(dòng)垃圾回收,、碎片回收、磨損均衡等功能,,一旦突然啟動(dòng)了這個(gè)功能,,客戶正在使用這個(gè)盤時(shí),去請(qǐng)求的工作就會(huì)被中斷掉,,這對(duì)客戶的使用會(huì)造成非常大的干擾,。
同一個(gè)應(yīng)用,當(dāng)使用不同盤時(shí),,性能是不一樣的,。因此AWS用Nitro SSD,通過統(tǒng)一的FTL來解決這些問題,,自己解決bug,,避免客戶被干擾。
AWS第一代Nitro SSD在2017年就做出來了,,目前其整個(gè)云體系部署了超過50萬個(gè)Nitro SSD,,第二代Nitro SSD在今年的re:Invent大會(huì)上剛剛發(fā)布?;谟⑻貭柶脚_(tái)的I4i以及基于Graviton2的Im4gn/Is4gen機(jī)型都用到新的Nitro SSD,。
Nitro SSD帶來直觀的性能提升,相比上一代I3實(shí)例,,新實(shí)例I/O延遲降低了60%,,延遲可變性降低了75%,。
EBS存儲(chǔ)服務(wù)也使用Nitro SSD來提升性能,。比如今年正式投入市場(chǎng)的io2 Block Express就使用了Nitro SSD,最終獲得256k IOPS及非常穩(wěn)定的毫秒級(jí)延時(shí)。
從上圖可見,,其跑PostgreSQL時(shí)性能可提升2.4倍以上,,甚至在SQL上性能更好。據(jù)其客戶分享,,如果用R5B的Instance加上io2,,是在云上面跑SQLServer最合適的選擇,性能提升了5倍,。
2006年,,AWS發(fā)布第一個(gè)云服務(wù)Amazon S3對(duì)象存儲(chǔ),這也是AWS存儲(chǔ)的起點(diǎn),。
如今越來越多的工作負(fù)載開始移到云上,,需要Amazon S3支持。今年AWS又推了兩個(gè)新的存儲(chǔ)層:一是把用于歸檔數(shù)據(jù)的Glacier做了一個(gè)可及時(shí)索引的分層,,既能像熱數(shù)據(jù)般快速索引調(diào)用,,又能像歸檔存儲(chǔ)一樣長期保持超低成本。
AWS S3智能分層也覆蓋到新的層,,當(dāng)前提供8個(gè)存儲(chǔ)層,,可滿足各種存儲(chǔ)需求。S3中裝有10^14個(gè)對(duì)象,,相當(dāng)于全球每個(gè)人可攤1.3萬個(gè)對(duì)象,,宇宙中有2萬億星星,每個(gè)星星可攤5個(gè)對(duì)象,。
在如此大的規(guī)模中,,如何讓客戶保持那么高的可用性和一致的性能?將如此多的對(duì)象完全分布在數(shù)百萬的硬盤上,,正是Amazon S3的機(jī)制,,使其從第一天開始就能提供非常高的穩(wěn)定性、可靠性和性能,。
04.
結(jié)語:一切從芯片創(chuàng)新開始
從CPU到加速芯片再到存儲(chǔ),,這些AWS基礎(chǔ)底層技術(shù)的進(jìn)化都是從芯片創(chuàng)新開始的?;谶@樣的創(chuàng)新底座,,AWS發(fā)展到如今的規(guī)模,仍能做到高效,、安全,、持續(xù)的創(chuàng)新。
在這些計(jì)算,、存儲(chǔ),、數(shù)據(jù)相關(guān)的服務(wù)打破各種創(chuàng)新邊界的同時(shí),,新的約束正亟待突破。這些約束在于很多的物理地域,、法規(guī)中,,比如數(shù)據(jù)要存在本地的法規(guī)要求,以及各種距離產(chǎn)生延時(shí),、網(wǎng)絡(luò)帶寬,、連接穩(wěn)定性等等。
AWS也在通過一系列產(chǎn)品布局解決這些問題,。比如與AWS WaveLength可服務(wù)超低延時(shí)的5G邊緣應(yīng)用,,Outposts將AWS的能力擴(kuò)展至客戶自己的數(shù)據(jù)中心;Cloud WAN使客戶通過中央控制面板更輕松地將地面復(fù)雜網(wǎng)絡(luò)連接到云,;Snowball設(shè)備可實(shí)現(xiàn)一周遷移數(shù)TB數(shù)據(jù),;Ground Station衛(wèi)星通信運(yùn)營服務(wù)更是沖出地球,覆蓋到衛(wèi)星通信與數(shù)據(jù)處理……
今天,,AWS在有25個(gè)區(qū)域,,覆蓋全球六大洲,提供了81個(gè)可用區(qū),,接下來還會(huì)在提供9個(gè)新的服務(wù)區(qū),,同時(shí)提供有30個(gè)Local Zones本地區(qū)域?;谛酒瑒?chuàng)新的基石,,AWS正通過在云基礎(chǔ)設(shè)施上持續(xù)推陳出新,幫助云上用戶探索更遠(yuǎn)的邊界,。