1. 程式人生 > 其它 >亞馬遜自研晶片-異構晶片-NVIDIA分析

亞馬遜自研晶片-異構晶片-NVIDIA分析

亞馬遜自研晶片-異構晶片-NVIDIA分析

參考文獻連結

https://mp.weixin.qq.com/s/frLCeSpu7v_BnlJ6BcCRMQ

https://mp.weixin.qq.com/s/duHY4NbXSBIk6nc572V8ww

https://m.mydrivers.com/newsview/877024.html?fr=kkj

亞馬遜AWS自研晶片深度分析

去年的AWS re:Invent 2021有很多跟晶片相關的內容值得展開來說的事情。但網上已經有很多專業的文章了,我就不再班門弄斧一一介紹了。只好另闢蹊徑,嘗試從整體和發展的角度,和一些“可能存在”的“向左(定製)還是向右(通用)”的權衡,來分析一下AWS為什麼過去和現在要做晶片和硬體自研這些事情,以及未來要往何處去。再次強調一下,晶片定製分為兩個方面:晶片功能的定製還是通用,是個技術路徑的問題;巨頭通過定製晶片,滿足自身需求,這是一個商業選擇的問題。這兩者不能混淆。

1
硬體定製

硬體定製可以簡單地分為兩種模式:

  • 由外而內。從通用的伺服器等硬體出發,進一步優化(裁剪和增強)資料中心各種硬體產品,落地成標準化的硬體和系統設計,再通過規模化的部署,來達到降低成本的目的。例如,OCP倡導的各種OCP相容的伺服器、交換機及其他硬體設計。
  • 由內而外。從內在的業務場景需求出發,通過軟硬體深層次的協同優化設計,落地到個性化的硬體定製。各家網際網路雲端計算公司,如AWS、微軟和阿里雲等,主要用於自身業務的各種硬體定製產品。

對於網際網路巨頭來說,設計並製造自己的硬體,以此來提高效率並建立競爭優勢已經是顯而易見的事情。亞馬遜AWS不僅設計自己的計算伺服器、儲存伺服器、路由器以及相關的核心晶片,還設計自己的連線全球以及資料中心內的高速網路。

(a) AWS定製交換機(b) AWS定製SDN網絡卡圖1 AWS定製網路裝置如果採用標準的商用路由器,出現問題,供應商最快需要花費六個月時間來修復問題。如圖1(a),AWS根據自己的軟硬體規格定義定製路由器,並且擁有自己的協議開發團隊。雖然一開始的訴求主要是降低成本,但實際上最終的結果是,定製的網路裝置不僅僅降低了成本,最大的收穫是網路可靠性。AWS路由器採用的是AWS和博通(Broadcom)聯合定製的具有70億電晶體規模的ASIC晶片,總的處理頻寬為3.2Tbit/s(資料來自AWS Re:Invent 2016)。AWS網路策略的另一個關鍵部分是SDN,AWS將SDN的其中一部分工作從軟體解除安裝到硬體。如圖1(b),通過硬體解除安裝網路功能,降低了CPU的資源消耗,並且降低了網路延遲以及網路的效能抖動。(a) AWS定製晶片(b) AWS定製計算伺服器(c) AWS定製儲存伺服器圖2 AWS定製晶片及伺服器
如圖2(a),2015年AWS收購了Annapurna labs公司,之後Annapurna labs設計並生產了AWS定製晶片,可用於AWS各類定製伺服器。AWS不僅僅定製硬體(板卡及伺服器),也定製自己的晶片。通過晶片定製,可以更好地實現AWS對資料中心的各種創新。如圖2(b),AWS定製1U的伺服器,因此其在機架上會佔滿1U的槽位。沒有采用更密集的在1U的槽位整合更多的伺服器節點的做法,這樣做是為了提高熱效率和功率效率。如圖2(c),AWS自定義的儲存伺服器在一個42U標準的機架上部署880塊磁碟,升級後的儲存伺服器可以容納1110塊磁碟,儲存容量為11 PB(資料來自AWS的Re:Invent 2016)。

 2

虛擬化解除安裝和Nitro DPU晶片

2.1 AWS EC2虛擬化技術的演進

 在介紹虛擬化演進之前,我們先介紹下虛擬化的三種方式:

  • 完全軟體虛擬化(Virt. in Software, VS):支援不需要修改的客戶機OS,所有的操作都被軟體模擬,但效能消耗高達50%-90%。
  • 類虛擬化(Para-Virt., PV):客戶機OS通過修改核心和驅動,呼叫Hypervisor提供的hypercall,客戶機和Hypervisor共同合作,讓模擬更高效。類虛擬化效能消耗大概為10%-50%。
  • 完全硬體虛擬化(Virt. in Hardware, VH):硬體支援虛擬化,效能接近裸機,只有0.1%-1.5%的虛擬化消耗。

  AWS EC2虛擬化技術演進圖3是AWS“教科書”般的虛擬化迭代優化的演進示意圖。我們只關注與效能最相關的CPU/Mem、網路I/O、本地儲存I/O、遠端儲存I/O四類計算機資源。大致的演進介紹如下:

  1. 最開始,所有的計算機資源都是純軟體模擬的。
  2. Xen PV 3.0引入了PV,部分提升了效能。
  3. Xen HVM 3.0引入了CPU和記憶體的硬體虛擬化(基於Intel VT-x和AMD-v技術),大幅度提升了效能;這一時期,網路和儲存I/O對處理頻寬的要求還不高,PV的I/O虛擬化還是滿足要求的。
  4. Xen HVM 4.0.1,沒有優化四個主要的資源,效能提升不算明顯。
  5. Xen AWS 2013,通過PCIe SR-IOV技術,正式引入了網路I/O硬體虛擬化。
  6. Xen AWS 2017,通過PCIe SR-IOV技術,正式引入了本地儲存I/O硬體虛擬化。
  7. 2017年,AWS Nitro 2017。Nitro專案正式登場。站在I/O虛擬化的角度,NITRO專案的創新有限。NITRO最有價值的創新在於把Backend的網路和遠端儲存的Workload解除安裝到了NITRO卡上。從Nitro開始,雲端計算架構就走上了業務和基礎設施在物理上完全隔離的路子。
  8. AWS Bare Metal 2017。裸金屬機器和用於EC2虛擬機器的Nitro 2017最大的區別在於有沒有一層Lite Hypervisor。

2.2 Nitro DPU晶片的演進

嚴格來說,2017年底AWS宣佈的Nitro系統是全球第一家真正商業落地的DPU晶片。AWS引領了DPU的潮流,隨後DPU這個方向才逐漸火熱了起來。

 圖4 AWS Nitro系統如圖4所示,不同的EC2伺服器例項型別包括不同的Nitro系統特性,一些伺服器型別有許多Nitro系統卡,實現AWS Nitro系統的五大主要特性:

  1. Nitro VPC(虛擬私有云)卡;
  2. Nitro EBS(彈性塊儲存)卡;
  3. Nitro本地儲存卡;
  4. Nitro控制器卡;
  5. Nitro安全晶片。

為什麼需要這麼多張卡?原因很簡單,因為最開始的Nitro晶片其實是一張CPU卡:

  • CPU效能弱,一張不夠,就多張卡整合到一起完成想要的功能;
  • CPU完全可程式設計,同樣的晶片,同樣的板卡,只需要後期執行不同的軟體,就可以非常方便的實現不同的功能。

雖然,Nitro計算的主要載體是CPU,導致許多工作任務從Host CPU解除安裝到Nitro的嵌入式CPU上之後,效能並沒有得到提升,有點“多此一舉”。但實際上已經提供了很多價值:

  • 做到了把VM的業務和宿主機側的管理任務完全隔離,這樣提供了很多安全方面的好處,並且可以打平虛擬機器和物理機環境。業務和管理分離,還有很多其他好處,這裡不一一展開了。
  • 因為是嵌入式的CPU,所以,可以快速地開發新功能。例如基於Nitro嵌入式CPU,開發了SRD和EFA,為高效能的HPC提供解決方案。快速地為業務提供更強大的功能和服務價值,給客戶提供更加快速而積極的功能支援,是雲端計算的核心競爭力。雖然消耗Nitro卡的資源多一些,但這些可以留待後續持續優化。

隨著時間的推移,Nitro晶片勢必會逐步的增加了各種加速引擎,整體效能也會得到增強。最新版的Nitro系統,則完全整合成了單晶片板卡。相比前面幾代Nitro,功能更加的強大,而成本卻得到了大大地降低。

2.3 AWS Nitro與NVIDIA DPU的本質區別

看2.2節的內容,很多人可能會認為,Nitro採用CPU設計,AWS的設計水平有限。為什麼不像NVIDIA一樣,整合各種ASIC的加速引擎呢?

還有一個類似的問題,在手機端,整合各種專用硬體加速引擎的手機SOC晶片已經非常成熟,但為什麼資料中心的計算平臺依然是以CPU為主?原因只有一個:資料中心場景,對軟體靈活性的要求,遠高於對效能的要求。如果不能提供靈活性(或者說易用性、可程式設計性),提供再多的效能都是“無本之木”。圖4 Nitro和NVIDIA DPU的演進對比網際網路雲端計算廠家的上層軟體業務邏輯各不相同並且快速迭代,這幾乎無法採用定製的ASIC設計。簡而言之:定製的ASIC很難適合靈活多變的雲場景。如圖4所示,晶片公司(NVIDIA)根據自身對業務的理解,做定製ASIC。但這些ASIC實現的加速功能是晶片公司對業務場景的理解,並把業務邏輯固化到定製的設計中,使得雲廠家很難基於此硬體平臺開發出差異化的創新功能。並且,定製的設計,限制了雲廠家的創新能力,並且使得雲場景不得不跟硬體平臺廠家深度繫結,這些對雲廠家來說,並不是一件好事。如圖4所示,AWS Nitro和NVIDIA DPU是兩種不同方向的演進:
  • NVIDIA DPU演進:從硬到軟,NIC -> SNIC -> DPU(DPU = SNIC+嵌入式CPU);定製設計,客戶無法差異化,與雲系統發展規律相悖。
  • AWS Nitro演進:從軟到硬,CPU基礎上,逐步增加足夠彈性的加速引擎;通用的設計,符合雲系統發展規律。

NVIDIA,一開始就是完全ASIC的設計。雖然效能足夠好,但卻很難覆蓋客戶五花八門的各種差異化場景以及各種場景未來2-3年的中長期迭代。即使非常熟悉自身的場景需求,AWS所做的硬體優化,依然是非常審慎的。AWS並沒有貿然的做ASIC,而是做足夠靈活彈性的硬體加速。這使得,整個Nitro晶片,具有非常強大的靈活可程式設計能力。

3 Graviton CPU,跟Nitro走向不同的方向

3.1 Graviton CPU的演進

 圖5 Winnie Shao博士總結的Graviton CPU的3代演進

在AWS re:Invent 2021大會上,AWS釋出了最新一代的ARM CPU晶片Graviton 3。相比2018年釋出的Graviton 1和2019年釋出Graviton 2,有了很大的改進。話不多說,直接上圖。如圖5所示,Winnie Shao博士是CPU領域的專家,她總結的這個表格已經非常完善了,我就不再班門弄斧了。

 3.2 Graviton CPU和Nitro DPU的淵源

第一代Nitro是在AWS re:Invent 2017上釋出的,初代Nitro本質是一款CPU晶片。隨後一年,re:Invent 2018釋出了Nitro 2代以及Graviton 1代ARM CPU晶片。我們大約可以推斷,Nitro 2主要升級了CPU的效能,Nitro 2代和Graviton CPU 1代是比較接近同一款晶片的設計。

 圖6 推測的AWS ARM伺服器架構示意圖由於ARM CPU核的單核效能相比x86 CPU核仍有差距,要想更好地實現降成本的目標,勢必需要在ARM伺服器的高計算密度方面做文章。如圖6所示,這是我們推測的ARM伺服器內部架構,也只有這樣,Nitro System組成一個平臺化的系統,提供Multi-Host的機制給到CPU,可以支援4-8塊CPU計算節點。這樣,可以在單臺伺服器規模,最多容納16顆ARM CPU。更極端的推測,如果Graviton和Nitro是同一顆晶片的話,AWS ARM伺服器相當於包含了21顆CPU晶片。

 圖7 Graviton和Nitro的演進區別如圖7所示,Graviton和Nitro可以說“同宗同源,師出同門”,但卻因為分工和定位的不同,逐漸走向了兩個不同的方向:

  • Graviton的Scale Out模式。Graviton定位為主CPU。勢必需要提供更加強大的單核效能以及提供更高的水平擴充套件性,也就是說單晶片要整合更多的CPU核,以及要支援多CPU的跨晶片緩衝一致性互聯。
  • Nitro的Scale Up模式。Nitro的主要工作是解除安裝、隔離和加速。只隔離和解除安裝,不解決本質問題,只有通過硬體加速才真正實現效能提升和成本降低。所以,Nitro的演進,勢必走向通過硬體加速,瘋狂地提升單晶片的處理效能的路子上。

4 應用加速晶片

4.1 CPU、DPU和GPU/FPGA/DSA

 CPU、GPU/FPGA/DSA以及DPU的關係如圖CPU、GPU/FPGA/DSA和DPU,三者的關係就像《三體》描述的那樣,既相互協作,又相互競爭,最終達到一個相對穩定的狀態:

  • DPU主要定位基礎設施層的加速和處理;
  • GPU/FPGA/DSA主要負責應用層的加速;
  • CPU負責應用層的常規處理。

當然,DPU有個優勢是DPU是所有資料的入口/出口。按照網際網路“得入口者得天下”的說法,DPU會成為雲端計算各類服務承載的核心。

GPU/FPGA/DSA主要用於應用加速。顧名思義,應用加速是提供給使用者業務應用的服務,針對使用者效能敏感的業務場景,針對特定應用提供硬體加速平臺。應用加速所使用的加速平臺則是暴露給使用者使用的,使用者可以感知到並且使用者根據自己的想法來使用硬體加速平臺。與之對應的,VPC、EBS等基礎服務,即使雲端計算廠家通過專有的硬體加速,這些加速使用者也是無法感知的。應用加速平臺常見有三種類型:
  • GPU加速的雲主機。例如,AWS EC2 P3例項可以提供高效能的計算,可支援高達8個 NVIDIA V100 GPU,可為機器學習、HPC等應用提供高達100Gbps的網路吞吐量。
  • FPGA加速的雲主機。例如,AWS EC2 F1例項使用FPGA實現自定義硬體加速交付。
  • DSA/ASIC加速的雲主機。例如,AWS EC2 Inf1例項可在雲端提供高效能和最低成本的機器學習推理。這些例項具有多達16個AWS Inferentia晶片,這是由AWS設計和打造的高效能機器學習推理晶片。

4.2 為什麼要為特定場景定製晶片

AWS釋出了Inferentia定製晶片,它不像Graviton這樣的通用CPU處理器什麼都能幹,而是專注於機器學習推理。通用CPU處理器可以支援足夠廣泛的各種工作負載類別,當然也包括機器學習推理,為什麼還要開發特定工作負載的專用處理器?

的確,通用CPU處理器多年來一直承擔著絕大部分的工作負載,CPU數量非常龐大,因此單位的成本可以做到比較低。低成本的優勢可以抵消為特定工作負載晶片定製的優勢。當只有少量伺服器執行特定工作負載時,很難從經濟上證明晶片定製優化是合算的。在計算領域之外,晶片定製在網路領域大放異彩。網路資料包處理是高度專業化的,網路協議很少更改。數量足夠大,定製就非常的經濟。因此,大多數網路資料包處理是使用ASIC晶片完成的。大多數路由器,無論來源如何,基本都是建立在專門的ASIC之上的。雖然,定製ASIC硬體可以將延遲、效能價格比以及效能功耗比提高高達十倍。但是,這麼多年以來,大多數的計算工作負載仍“頑強”地停留在通用CPU處理器上。通常,每個客戶伺服器數量不多,晶片定製通常意義不大。但是,雲端計算改變了這一切。在成功且廣泛使用的雲中,即使是“稀有”工作負載,其數量也可能達到數千甚至數萬。過去,作為企業,幾乎不可能證明晶片定製,針對特定工作負載的加速處理,是足夠經濟的。但在雲中,有成千上萬足夠罕見的工作負載。突然之間,不僅可以針對特定工作負載型別進行硬體的優化,而且如果不這樣做,反而顯得有點“不夠積極”。在很多情況下,晶片定製不僅僅可以把成本降低一個數量級,電量消耗減少到1/10,並且這些定製化的方案可以給客戶以更低的延遲提供更好的服務。定製的晶片將成為未來伺服器端計算的重要組成部分,亞馬遜自2015年初以來就有一個專注於AWS的晶片定製團隊,在此之前,AWS與合作伙伴合作構建專業化解決方案。在re:Invent 2016大會上,AWS釋出了一款安裝在所有伺服器中的定製晶片(James Hamilton的星期二夜現場,Nitro的前身)。儘管這是一個非常專業的定製晶片,但AWS每年安裝的此類定製晶片超過一百萬,而且這個數字還在繼續增加。在伺服器領域,它實際上是一個銷量非常大的晶片了。機器學習工作負載需要的伺服器資源將比當前所有形式的伺服器計算的總和還要多。機器學習的客戶價值幾乎適用於每個領域,潛在收益非常巨大。機器學習幾乎可以立即適用於所有業務,包括客戶服務、保險、金融、供暖/製冷以及製造。一項技術很少有像機器學習一樣如此廣泛的應用,當收益如此之大時,這對大多數企業來說就是一種賽跑。那些最先深入應用機器學習的人或組織可以更有效、更經濟地為客戶服務。AWS專注於讓機器學習的快速部署變得更加容易,同時降低成本,讓更多的工作負載可以更經濟地使用機器學習。規模和針對特定場景的優化,是Inferentia等工作負載專用加速晶片發展的最本質的驅動力量。未來,在大型資料中心,除了AI訓練和推理晶片,也會出現很多面向其他工作負載,如視訊影象處理、大資料分析、基因組學、電子設計自動化 (EDA)等,的特定加速晶片。

4.3 AI-DSA推理晶片Inferentia

Inferentia是AWS第一款AI推理晶片,而基於Inferentia的Inf1例項針對ML推理進行了優化,與基於GPU的同類EC2例項相比,Inferentia的推理成本下降80%,吞吐量提高2.3倍。使用Inf1例項,客戶可以在雲端低成本執行大規模ML推理應用程式,例如影象識別、語音識別、自然語言處理、個性化和欺詐檢測。

 圖9 AWS inferentia AI推理晶片Inferentia的高效能。每個晶片具有4個神經元核心,可以執行高達128 TOPS(每秒數萬億次操作)。它支援BF16、INT8和FP16資料型別。並且,Inferentia可以採用32位訓練模型,並使用BF16的16位模型的速度執行它。亞馬遜推理,低延遲的實時輸出。隨著ML變得越來越複雜,模型不斷增長,將模型傳入和傳出記憶體成為最關鍵的任務,這帶來了高延遲並放大了計算問題。Inferentia晶片具有在更大程度上解決延遲問題的能力。多晶片互聯:首先可以將模型跨多個核心進行分割槽,並使用100%的片內記憶體——通過核心流水線全速傳輸資料,防止片外記憶體訪問引起的延遲。支援所有框架。機器學習愛好者可以輕鬆地將幾乎所有可用的框架上執行在Inferentia。要執行Inferentia,需要將模型編譯為硬體優化表示。可以通過AWS Neuron SDK中提供的命令列工具或通過框架API執行操作。

 4.4 AI-DSA訓練晶片Trainium

 圖10 AWS Trainium AI訓練晶片

如圖10所示,在AWS re:Invent 2020開發者大會上,AWS釋出了其設計的主要用於機器學習訓練的第二款定製的AI晶片--AWS Trainium。它提供比雲端任何競爭對手更高的效能,同時支援TensorFlow、PyTorch和MXNet等。這款定製晶片的主要優勢是速度和成本,AWS承諾與標準AWS GPU例項相比,吞吐量提高30%,每次推斷的成本降低45%。Trainium晶片還專門針對深度學習訓練工作負載進行了優化,包括影象分類、語義搜尋、翻譯、語音識別、自然語言處理和推薦引擎等。它將以EC2(亞馬遜彈性計算雲)例項的形式出現在亞馬遜的機器學習平臺SageMaker中。Trainium與Inferentia有著相同的AWS Neuron SDK,這使得使用Inferentia的開發者可以很容易地開始使用Trainium。因為Neuron SDK集成了流行的機器學習框架,包括TensorFlow、PyTorch和MXNet,開發人員可以輕鬆地從基於GPU的例項遷移到Trainium,程式碼更改很少。

 5 Nitro SSD

 圖11 Nitro SSD的位置

Nitro SSD是一張獨立的SSD盤,使用了專用的SSD控制器晶片,我們姑且稱之為Nitro SSD Controller。為什麼叫“Nitro” SSD?我理解是因為這個SSD是掛在Nitro卡之下,並且為了整個系統極致的優化,內部的一些協議或演算法跟Nitro卡內部有一定的協同,不管是用於本地儲存或者是EBS遠端儲存。AWS Nitro SSD,使AWS能夠為客戶提供具有大量IOPS、大量吞吐量和 64 TiB 的最大卷大小的EBS卷。Im4gn和Is4gen例項使用第二代AWS Nitro SSD,未來許多新的EC2例項也將使用Nitro SSD。AWS Nitro SSD每個裝置內部的韌體負責實現許多較低級別的功能。當客戶將裝置推向極限執行時,客戶希望我們能夠診斷並解決他們觀察到的任何效能不一致問題。構建AWS自己的裝置使AWS能夠設計操作遙測和診斷,以及使AWS能夠以雲規模和雲速度安裝韌體更新的機制。更進一步的,AWS開發了自己的程式碼來管理例項級儲存,以進一步提高可靠性和除錯能力。在效能方面,對雲工作負載的深入瞭解促使AWS對裝置進行設計,以便它們能夠在持續的負載下提供最高效能。SSD由快速、密集的快閃記憶體構成。由於這種半導體儲存器的特性,每個單元只能被寫入、擦除和重寫有限的次數。為了使裝置的使用壽命儘可能長,韌體負責一個稱為磨損均衡的過程。這個過程涉及一些內務管理(一種垃圾收集形式),在處理大量寫入時,各種型別的SSD可能會在不可預測的時間變慢(產生延遲峰值)。AWS還利用資料庫的專業知識,在SSD韌體中構建了一個非常複雜、斷電安全的基於日誌的資料庫。第二代AWS Nitro SSD旨在避免延遲峰值並在實際工作負載上提供出色的I/O效能。基準測試顯示,使用AWS Nitro SSD的例項(例如新的 Im4gn 和 Is4gen)的延遲可變性比I3例項低75%,從而為客戶提供更加一致的SSD效能。

 6 綜合分析

從定製硬體整機開始,再逐步深入到定製晶片,然後慢慢地把上層的軟體、晶片以及硬體整機全方位協同並整合到一起,亞馬遜AWS逐漸構築起自己特有的、最強大的競爭優勢。圖12 以AWS為例的資料中心核心晶片示意圖聚焦到晶片,簡單總結一下。

 如圖12所示,整個資料中心核心的晶片有如下型別:CPU、GPU/FPGA/各種DSA加速晶片、DPU、SSD等高效能儲存控制晶片以及交換機晶片。未來AWS應該要做的是:資料中心關鍵晶片還沒有的會逐漸補齊,已有的晶片型別後續會持續增強。詳細的綜合分析如表1所示。表1 AWS晶片自研綜合分析

位置

型別

子型別

代號

分析&推測

伺服器側

CPU

CPU

Graviton

重要性:★★★★★

CPU是資料中心算力的最核心器件,ARM伺服器CPU反響不錯,AWS應該會持續重金投入,加大ARM伺服器CPU的使用量,提升ARM伺服器的整體佔比。

應用加速

GPU

重要性:★★★★★

在AI的演算法模型還沒有穩定之前,GPU都是AI算力的重要承擔者,NVIDIA如日中天。AWS因為其上層軟體生態的優勢,以及雲端計算的運營模式,有能力抵消其在GPU生態上的劣勢。預計未來AWS會自研GPGPU晶片,並加入EC2家族對外提供服務。

FPGA

重要性:★★☆☆☆

FPGA作為FaaS平臺,對雲端計算上層服務來說,沒有那麼直接,需要客戶或第三方ISV開發加速硬體和配套的軟體。FaaS不是主流的雲服務,並且Xilinx和Intel的FPGA都相對成熟穩定,FPGA應該不是AWS發展的重心。

DSA-AI-推理

Inferentia

重要性:★★★★☆

AI推理和訓練我們放到一起。AI是應用的王者,並且是算力的吞金獸,必須要做各種定製加速DSA。並且,雲端計算的模式也可以先天抵消DSA-AI的許多使用門檻。通過雲的封裝,可以提供各種框架服務甚至SaaS層AI服務,使得AI-DSA晶片能大範圍地用起來。對AWS來說,AI相關的定製晶片,是必須要持續投入,持續優化和增強的。

DSA-AI-訓練

Trainium

DSA-其他

重要性:★★★☆☆

除了AI,也有很多其他算力需求高的工作任務。隨著發展,也會出現新的需要高算力的工作任務,比如元宇宙,就對圖形圖形處理、網路等提出了更高的要求。GPGPU的效率有所欠缺,並且可見的未來也會像CPU一樣達到效能瓶頸。專用的圖形GPU或者VPU可能會成為AWS下一個定製的DSA晶片。

DPU

DPU

Nitro

重要性:★★★★★(★)

因為軟體生態的強大,CPU是資料中心最核心的晶片。但CPU晶片的功能定義已經足夠成熟,只需要持續優化升級改進即可。而DPU的挑戰在於,DPU是整個雲端計算服務承載的核心,不僅僅是要提供足夠的效能,更是要把現有的許多服務,不僅僅是IaaS層服務,也包括PaaS甚至SaaS的服務,要融入DPU中。可以說,DPU是雲端計算最戰略級的晶片,沒有之一。給六顆星,不為過。

CPU、GPU、DPU的整合

重要性:★★★★★

NVIDIA有CPU+GPU的處理器,也有CPU+GPU+DPU的Atlan,未來CPU、GPU、DPU兩兩整合,或者三者整合成獨立的單晶片加速平臺是一個越來越明顯的趨勢。整合大晶片,會在效能和成本方面帶來很多的好處。隨著資料中心規模的增大,以及一些場景逐漸穩定成熟,把CPU、GPU、GPU重新整合重構,是一個必然的趨勢。

儲存盤

SSD

Nitro SSD

重要性:★★★☆☆

儲存控制器廠家,很容易“只見樹木,不見森林”,導致無法站在資料中心超大規模的全域性去思考問題,這也會導致儲存卡會成為效能穩定性和資料安全的潛在風險。類似ZNS技術,AWS通過自研Nitro SSD跟Nitro DPU晶片更好地協同,給客戶提供更穩定更安全的儲存服務。只是,與整個資料中心計算相比,這塊相對來說屬於“枝葉”,一旦穩定,後期應該不需要投入太多。

交換機側

Switch

Switch

重要性:★★★★★

更簡單的網路,還是更復雜的網路?網路到底要不要分擔計算的壓力,足夠Smart來處理一些計算的任務?還是提供極致簡單且極致效能的網路,把可能的計算都交給使用者,讓使用者掌控一切?上面說的這些話,如何選擇都沒關係。重要的是,交換機是網路的核心,網路又是雲端計算的前提。沒有網路,計算和儲存什麼都不是。這一條就夠了!交換機側,AWS這種體量的雲端計算公司一定不會放過。期待AWS在交換機側的創新!

參考文獻

  1. AWS Innovation Scale, James Hamilton, Re: Invent 2016, https://mvdirona.com/jrh/talksandpapers/ReInvent2016_James%20Hamilton.pdf
  2. AWS EC2 Virtualization 2017: Introducing Nitro, https://www.brendangregg.com/blog/2017-11-29/aws-ec2-virtualization-2017.html
  3. AWS Nitro System, James Hamilton, https://perspectives.mvdirona.com/2019/02/aws-nitro-system/
  4. AWS Graviton3:遵循摩爾定律又有自己節奏,Winnie shao,“企業儲存技術”公眾號,https://mp.weixin.qq.com/s/IFIIJ5sF4yvyGkrcsTPnLw
  5. AWS Inferentia Machine Learning Processor, James Hamilton, https://perspectives.mvdirona.com/2018/11/aws-inferentia-machine-learning-processor/
  6. 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/
  7. MacOS上雲了!AWS還推出機器學習Trainium晶片:萬億次浮點運算,推理成本再降45%,新智元,https://mp.weixin.qq.com/s/4xkLq4S1ZaZLuqQSNHI0_Q
  8. 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/

通用超異構處理器

記得之前看過專門介紹各種PU List的文章,最大的感受是:處理器型別很多很多,從APU到ZPU,26個字母都已經被用光了。大家可能對這些PU都耳熟能詳,但要說到各個PU之間的關係和協作,可能大家瞭解甚少。今天我們會進行基本的介紹。

本文章主要介紹綜合的、融合的基於超異構計算的通用處理器GP-HPU(General Purpose Hyper-heterogeneous Processing Unit)。

1 不同處理器型別的分類和協同

 目前有個基本的思考框架,來把各種PU進行劃分:系統是由分層分塊的模組組成的,這樣我們可以大致上把系統分為三部分,如上圖所示。

各類PU分析如下:

  • CPU,中央處理器,是最核心的處理器。目前其他各種處理器,號稱取代CPU的核心地位,這些表述是不對的:你只是代替CPU幹髒活累活,一切的控制和管理依然是CPU來完成。
  • 各類加速器晶片。通過CPU+xPU的異構計算架構,如GPU、FPGA加速器、各類AI晶片(谷歌TPU、graphcore IPU、NPU、BPU等)以及其他各種加速晶片,這類晶片沒法單獨執行,需要有CPU的協作,構成CPU+xPU的異構計算的方式執行。
  • DPU。目前,大家對DPU的理解是,DPU主要負責系統I/O的處理。不管是網路I/O還是遠端儲存I/O,都需要走網路,因為DPU被不少人認為是I/O加速的處理器。更深一層的理解,是DPU是作為基礎設施處理器的存在,負責整個系統底層工作的處理。
  • SOC,系統級晶片。把整個系統的所有處理放在一個晶片裡,有各種加速引擎負責效能敏感的工作任務,CPU負責一些基本任務的處理和整個系統的控制和管理。

不管叫什麼PU,逃不開這四個型別。

2 場景特點:綜合、通用以及資源預備

許多AI晶片或系統落地面臨的一個主要問題是“我好不容易做了一盤餃子,可使用者需要的是一桌菜餚”。也即是說,客戶需要的是綜合性的系統解決方案,而AI只是其中的一部分,甚至非常小的一部分。

具體的終端應用場景包羅永珍,但云端和邊緣端,卻都是清一色的伺服器來提供服務端的執行以及和終端的協同。這些伺服器,可以服務各行各業、各種不同型別的場景的服務端工作任務的處理。雲和邊緣伺服器場景,需要考慮服務端系統的特點(微服務化功能持續解構,並且還和多租戶、多系統共存),對系統的靈活性的要求遠高於對效能的要求,需要提供的是綜合性的通用解決方案。

在雲和邊緣資料中心,當CSP投入數以億計資金,上架數以萬計的各種型號、各種配置的伺服器的時候,嚴格來說,它並不知道,具體的某臺伺服器最終會售賣給哪個使用者,這個使用者到底會在伺服器上面跑什麼應用。並且,未來,這個使用者的伺服器資源回收之後再賣個下一個使用者,下一個使用者又用來幹什麼,也是不知道的。因此,對CSP來說,最理想的狀態是,存在一種伺服器,足夠通用,即不管是哪種使用者哪種應用執行其上,都足夠高效快捷並且低成本。只有這樣,系統才夠簡單而穩定,運維才能簡單並且高效。然後要做的,就是把這種伺服器大規模複製(大規模複製意味著單伺服器成本的更快速下降)。

 伺服器都是相對通用,伺服器上目前大晶片就三個位置,也就是我們通常所說的資料中心三大晶片的位置:CPU、業務加速的GPU以及基礎設施加速的DPU。大家要做的,就是自己晶片的定位,以及同其他各種廠家的各種晶片來競爭這三個位置。

有些專用的晶片,用在特定領域,需要設計專門的伺服器,這種方案都流離在整個雲和邊緣計算主流體系之外的,落地門檻很高,也很難大規模落地。

3 超異構處理器是什麼?

 系統持續演進:

  • 第一階段,效能要求不高,CPU能夠滿足要求。目前資料中心大量伺服器依然是隻有CPU處理器。
  • 第二階段,效能敏感類任務大量出現,不得不進行異構加速。如AI訓練、視訊影象處理,HPC等場景。這類場景,目前的狀況主要:NVIDIA GPU+CUDA為主流,FPGA FaaS非主流,AI類的DSA落地較少(包括谷歌TPU,也不算成功)。
  • 第三階段。DPU的出現,CPU、GPU和DPU共同構成資料中心的三大處理晶片。
  • 第四階段,再融合。

為什麼不是獨立多晶片?為什麼需要融合單晶片?融合單晶片是有諸多優勢的:

  • 融合有利於計算的充分整合,進一步提升資料計算效率;
  • 系統成本跟主要晶片的數量是直接相關的,融合型單晶片可以進一步降低成本;
  • 融合系統,內部功能劃分和互動統一構建,相比三晶片方案,可以顯著降低彼此功能和互動的各種掣肘(相互拖累);
  • 大部分(80%-90%)場景是相對輕量級場景,通過超異構的單晶片可以覆蓋其複雜度和系統規模;
  • Chiplet加持,可以通過多DIE單晶片的方式,實現重量級場景的覆蓋。

超異構處理器,可以認為是由CPU、GPU、各類DSA以及其他各類處理器引擎共同組成的,CPU、GPU和DPU整合重構的一種全系統功能融合的單晶片解決方案。

3.1 為什麼叫超異構處理器?

首先,不能叫超融合處理器。超融合的概念是雲端計算領域一個非常重要的概念,大致意思是說在小規模叢集能夠把雲端計算的IaaS層的服務以及雲堆疊OS完整部署,可以提供給企業和私有云場景的雲端計算解決方案,並且因為和公用雲堆疊OS是同一的體系,可以實現混合雲的充分協同。超異構處理器和超融合沒有必然聯絡,可以支援小叢集的超融合,也可以支援大叢集的不“融合”。

NVIDIA對DPU的未來願景:資料量越來越大,而資料在網路中流動,計算節點也是靠資料的流動來驅動計算,計算的架構從以計算為中心轉向了以資料為中心。所有的系統本質上就是資料處理,那麼所有的裝置就都可以是Data Processing Unit。所以,未來以DPU為基礎,不斷地融合CPU和GPU的功能,DPU會逐漸演化成資料中心統一的處理器(只是,目前沒有叫超異構HPU這個名字罷了)。

不管名稱具體叫什麼,這個處理器,一定是基於多種處理引擎混合的(超異構計算)、面向巨集系統場景的(MSOC,Micro-SOC)、資料驅動的(DPU,Data Processing),一個全新的處理器型別。

4 超異構處理器和傳統SOC的區別

嚴格來說,超異構處理器也是屬於SOC的範疇。但如果只是稱之為SOC,那無法體現超異構處理器和傳統SOC的本質區別。這樣,不利於我們深刻認識超異構處理器的創新價值所在,以及在支撐超異構處理器需要的創新技術和架構方面積極投入。

如下表格為超異構處理器和傳統SOC的對比:

 超異構處理器,是否可以極致效能的同時,還足夠“通用”?

 每一種處理器(引擎)都有其優勢,也都有其劣勢:

  • CPU非常通用,能夠幹幾乎所有事情。但劣勢在於,其效能效率是最低的。
  • DSA的效能足夠好,劣勢在於只能覆蓋特定的領域場景,其它領域場景完全沒法用。
  • GPU,介於兩者之間。能夠覆蓋的領域場景比DSA多、比CPU少,效能比CPU好但比DSA差。

 複雜的巨集系統,存在“二八定律”。比如,在伺服器上,永遠少不了的虛擬化、網路、儲存、安全類的任務,以及很多伺服器都需要的檔案系統、資料庫、AI推理等。因此,我們可以把系統計算當做一個塔防遊戲:

  • 在最前端,主要是各類DSA。他們的效能很好,負責處理算力需求強勁的任務。這些任務佔整個計算量的80%。
  • 中間是GPU,效能也不錯,覆蓋面也不錯。則負責處理剩餘20%中的80%的計算量。
  • 而CPU的任務,就是兜底。所有“漏網之魚”都由CPU負責處理。

這個思路,也對應我們第一部分介紹的系統的三類任務劃分。

按照這個思路,我們再通過一些軟硬體融合的系統設計,提供更多的通用性、靈活性、可程式設計性、易用性等能力,然後再不斷的整合新的效能敏感任務的加速。基本上,這樣的通用超異構處理器,可以在提供極致效能兼極致靈活性的同時,可以覆蓋大部分雲、邊緣和超級終端的場景。

6 超異構處理器可以用在哪裡?

 超異構處理器HPU相比傳統SOC,最核心的特點是巨集系統,需要支援虛擬化和多租戶多系統共存,需要支援資源、資料和效能隔離。因此,超異構處理器主要用在雲端計算、邊緣計算以及自動駕駛超級終端等複雜計算場景:

  • 雲端重量級伺服器。首先,HPU可以當做DPU來使用;更長遠的,可以通過Chiplet方式實現HPU對重量級場景的覆蓋。
  • 雲端輕量級伺服器。可以實現HPU單晶片對目前以CPU為主的多個晶片的整合,並且效能顯著提升。
  • 邊緣計算伺服器。類似雲端輕量伺服器,可以通過單晶片整合的HPU實現所有計算的全覆蓋。
  • 超級終端。以自動駕駛為典型場景,目前也是逐漸地從分散式的ECU、DCU向集中式的超級終端單晶片轉變。這將是HPU在終端場景的典型應用。

總結一下,超異構處理器的核心價值在於確保整個系統如CPU一樣極致靈活性的同時,還可以提供相比目前主流晶片數量級的算力提升。可以用在雲端計算、邊緣計算、超級終端等各類複雜計算場景。

NVIDIA已經不是顯示卡公司!找到新的印鈔機了

前兩天,世超在衝浪找選題的時候,發現英偉達公佈了自家 2023 年第三季度的財報。

 

 結果我點開財報一看,發現最賺錢的並不是 4090 等顯示卡業務,財報第一句話就給我整不會了。

資料中心反而被擺在了第一行的位置,而且營收和增長情況都不差。

 

 不僅如此,在談到具體的進展時,資料中心也被第一個拿出來講,密密麻麻寫了一大篇。

 

 財報上說,資料中心在第三季度的收入為 38.3 億美元,較去年同期增長 31% ,較上一季度增長 1% 。

乍一看這 1% 好像很一般,但是隔壁賣顯示卡的遊戲業卻下降了 23% ,收入為 15.7 億美元。

 

 再簡單來講,大家都以為英偉達是個賣顯示卡的,然而這方面卻並不是英偉達最專業的業務,資料中心才是。

而且這玩意兒並非英偉達一家獨大,大家熟悉的微軟、亞馬遜和 AMD 等都有類似的服務,而且都數錢到數到手抽筋兒。

那麼問題來了,啥是資料中心啊?它為啥這麼賺錢?

其實咱們只要還拿英偉達的財報舉例子,把裡面的條條款款拆開看一遍就知道了。

比如收入後面緊接著就寫到,新一代 NVIDIA GPU 和 Quantum-2 系統已得到廣泛採用。

 

 而這個 Quantum-2 系統是英偉達的一個網路平臺,由交換機、網路介面卡和資料處理單元組成,速度可以飈到 400Gb/s 。

 

 能夠為 AI 開發者和科研人員提供最牛逼的網路效能,足以應對世界上最具挑戰性的問題。

翻譯一下就是:商用產品,跟咱們臭打遊戲的半毛錢關係都沒有。

再往下看,英偉達還跟甲骨文有一波 PY 交易,但仍然以商用為主。

甲骨文有一個東西叫做 Oracle Cloud Infrastructure 甲骨文雲服務基礎設施,簡稱 OCI 。

 

 OCI 能夠提供的服務奇多無比,從雲分析、資料庫管理再到網路防火牆等等,只要是和網路沾邊的服務,沒有他做不了的,只有你想不到的。

光是 A 開頭的服務,就有 10 項。

 

 而就在今年,甲骨文宣佈將會展開多年與英偉達的深度合作,把英偉達加速計算和 AI 訓練等技術帶到 OCI 上面。

那麼該怎麼加速計算和訓練 AI 呢?買顯示卡。

但是此顯示卡並非彼顯示卡,甲骨文買的並不是 4090 等 “ 泛泛之輩 ” ,而是美國政府禁止英偉達售賣給中國的 A100 和 H100 。

 

 這玩意兒主要用於商用和人工智慧等領域,一個就能賣你 10 萬塊錢,效能直接幹翻 7 塊 3090 。

甲骨文肯定不會只買一兩塊顯示卡,具體的交易金額世超不清楚,但從 “ 為期多年 ” 這幾個字也能看出來是一筆大買賣。

所以再翻譯一下就是:商用產品,跟咱們臭打遊戲的半毛錢關係都沒有。

如果到這裡你還能聽懂的話,那剩下的東西真是給世超看的一頭霧水,什麼 NeMo LLM 、BioNeMo LLM 、AI Enterprise 。

 

 啥啥啥,這寫的都是啥啊?

不過最終我還是在一大段財報裡發現了一個親切的單詞 —— Microsoft ,巨硬。

同樣宣佈與微軟展開為期多年的合作,同樣也是為 Microsoft Azure 部署數大量的商用顯示卡,這個套路跟上面提到的甲骨文其實差不多。

 

 Azure 可不是什麼等閒之輩,國內有不少人都認識甚至用過 Azure 雲服務。

 

 而且這裡就要把微軟的財報也拉過來了,因為說出來你們可能不信,微軟最賺錢的業務不是 Xbox ,不是 Office ,更不是 Windows ,正是 Azure 雲服務。

在微軟 2022 財年第四季度的財報中,營收最多的是 Azure 雲服務,達到 209 億美元,同比增長 20% 。

 

 而個人計算機業務和生產力業務的營收分別為 144 億美元和 166 億美元。

你可以簡單把 Azure 當成是一個雲服務,但它嚴格來講是一個雲端計算平臺,可以幫助開發者開發程式,並且可以使用微軟的儲存和網路基礎服務等等。

 

 儘管是雲端服務,但開發和運算歸根結底還是需要大量的算力和硬體支援,所以就不難理解微軟為啥要和英偉達 “ 稱兄道弟 ” 了。

Azure 能提供的服務同樣非常廣泛,還有不少登陸即送的永久免費專案,對新手非常友好。

 

 但像是虛擬機器等功能還是得乖乖付錢,要不然人家 200 多億是怎麼掙的。

所以看到這兒你也明白了,微軟最賺錢的業務,依然跟咱們臭打遊戲的半毛錢關係都沒有。

難道這些大廠最賺錢的業務,真就和咱們普通小老百姓一點關係都沒有了唄?

其實沒那麼離譜,你要是想用也能用,比如亞馬遜 AWS 就提供了基本的個人雲端儲存服務。

 

 AWS 是世界上使用最廣泛的雲服務之一,它的服務差不多可以分為三大類:雲端計算、資料庫和雲端儲存。

在很多人的眼裡,亞馬遜還是一個國際大賣,其實 AWS 業務開展已經有年頭了,而且是亞馬遜最重要的業務之一。

甚至在他們的財報上,部門竟然是按照北美部門、國際部門和 AWS 部門來分類的。

 

 而在 2022 年度第三季度的財報上,AWS 部門的銷售額有同比 27% 的增長。另外兩個則分別是增長 20% 和下降 5% 。

更離譜的是營收,和去年同期相比,北美部門從小賺變小虧,全球部門從小虧變成了血虧。

只有 AWS 部門,從血賺變成大賺特賺。

 

 AWS 的雲服務相對來講也是最親民的,它不僅支援個人雲端儲存,還免費提供 30GB 的空間,可以往這個小角落存點七七八八的東西。

 

 這玩意兒用起來依然有一點門檻,如果你對網路資料啥的不是很瞭解,還是建議老老實實用雲盤。

但話說回來,正是這些看上去有門檻的東西,成為了各家大廠最賺錢的業務。

顯示卡大廠英偉達、軟體出身的微軟、電商起家亞馬遜,他們的起步各不相同,但現在都選擇了資料服務這條路。

就連大家直呼 YES 的 AMD ,在面對疲軟的 PC 市場表現時,蘇媽也要在財報裡誇一句資料中心業務有所增長。

 

 這麼一看,這些大廠好像已經沒法再從我們這群臭打遊戲的身上賺到更多錢了?

確實沒那麼賺了,但這並不意味著沒法從我們身上賺錢,或者說零售行業就不重要了,而是大家找到了更賺錢的方向。

當一個領域被挖掘並加大商業化力度,也說明資本嗅到了商機,這代表它在以後是可以持續產生大量利潤的。

而且現在大家動不動就什麼雲服務和 AI 啥的,但凡是個明眼人就能看得出來,這些東西就是未來的大趨勢。

那既然以後的世界裡,AI 化和雲服務化不可避免,這些科技也能讓人們的生活更加便利,為啥不能往這個方向發力呢?

現在是資料為王,等沒準過了十幾年,另外一個風靡世界的新技術登場,大家說不定就會再次更換賺錢的方向。

 

 

參考文獻連結

https://mp.weixin.qq.com/s/frLCeSpu7v_BnlJ6BcCRMQ

https://mp.weixin.qq.com/s/duHY4NbXSBIk6nc572V8ww

https://m.mydrivers.com/newsview/877024.html?fr=kkj