從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ù)推陳出新,幫助云上用戶探索更遠的邊界。