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