本文分析了機器學習硬件性能的最新趨勢,重點關注不同GPU和加速器的計算性能、內存、互連帶寬、性價比和能效等指標。這篇分析旨在提供關于ML硬件能力及其瓶頸的全面視圖。本文作者來自調研機構Epoch,致力于研究AI發(fā)展軌跡與治理的關鍵問題和趨勢。 要點概覽
圖1:常見機器學習加速器在給定精度下的峰值計算性能。自2016年以來,已出現(xiàn)了新的數值格式。趨勢線展示了帶有八個或更多加速器的數值格式:FP32、FP16(FP = 浮點、張量-* = 張量核心處理、TF = Nvidia 張量浮點、INT = 整數) 我們研究了GPU在不同數值表示、內存容量、帶寬以及互連帶寬方面的計算性能,使用的數據集包括2010年到2023年常用于機器學習實驗的47個ML加速器(GPU和其他AI芯片),以及2006年到2021年的1948個GPU。主要發(fā)現(xiàn)如下:
與傳統(tǒng)32位浮點數(FP32)相比,低精度數字格式如16位浮點數(FP16)和8位整數(INT8)等與專用張量核心單元相結合,可以為機器學習工作負載帶來顯著的性能提升。例如,盡管使用的數據量有限,但我們估計tensor-FP16比FP32的速度快約10倍。
2. 鑒于用于SOTA ML模型訓練和推理的大型硬件集群的整體性能取決于計算性能以外的因素,所以我們研究了內存容量、內存帶寬和互連,發(fā)現(xiàn):
內存容量每4年翻一番,內存帶寬每4.1年翻一番。它們的增長速度比計算性能慢(計算性能每2.3年翻一番)。這是一個常見發(fā)現(xiàn),通常被稱為內存墻(memory wall)。
最新的ML硬件通常配備專有的芯片間互連協(xié)議(英偉達的NVLink或谷歌TPU的ICI),與PCI Express(PCIe)相比,這些協(xié)議在芯片之間提供了更高的通信帶寬。例如,H100上的NVLink支持的帶寬是PCIe 5.0的7倍。 ?
3. 分析中發(fā)現(xiàn)的關鍵硬件性能指標及其改進速度包括:ML和通用GPU的計算性能(以FLOP/s計)都是每2.3年翻一番;ML GPU的計算性價比(以每美元FLOP計)每2.1年翻一番,通用GPU每2.5年翻一番;ML GPU的能效(以每瓦特FLOP/s計)每3.0年翻一番,通用GPU每2.7年翻一番。
表1:關鍵性能趨勢。所有估算僅針對機器學習硬件。方括號中的數字表示通過1000次bootstrap采樣得出的[5; 95]百分位估算。OOM代表數量級,N表示數據集中的觀測次數。請注意,性能數據是指稠密矩陣乘法性能。
01.?引言
過去十年中,機器學習的進步在很大程度上是通過擴大用于訓練的計算資源(計算)規(guī)模實現(xiàn)的(Sevilla等人,2022年),硬件性能的提升在這一進展中發(fā)揮了一定作用。隨著我們從少量芯片轉向大規(guī)模超級計算機,對ML R&D(Cottier,2023)投資的增加導致硬件基礎設施規(guī)模的相應提升。 本文概述了在各種數字精度和專用組件(如張量核心)方面的計算性能趨勢。此外,我們還分析了其他性能因素,如內存容量、內存帶寬和互連帶寬??偟膩碚f,我們分析了ML硬件規(guī)格和組件的整體情況,這些規(guī)格和組件共同決定了硬件的實際性能,尤其是在大規(guī)模ML模型時代。 在這個過程中,我們比較了各種度量標準下的峰值性能,這些指標來自硬件生產商的規(guī)格表。[2]通常,由于工作負載規(guī)格等各種因素和內存容量以及帶寬等規(guī)格的限制,實際利用的計算性能只是指定峰值計算性能的一小部分。例如,根據Leland等人在2016年的研究,常見超級計算工作負載的實際利用率可能在5%到20%之間,而在機器學習訓練中,這取決于模型的規(guī)模、并行化方式等因素(Sevilla等人,2022),這個比例可能在20%到70%之間。盡管如此,峰值性能仍可作為比較不同硬件加速器和世代的有用上限和標準基礎。 術語 數字表征:我們將數字表征分為三個維度: 位長/精度:從4位到64位不等,通常用于描述存儲數字的位數。 數字格式:指特定的位(bit)布局,如整數或浮點數。數字格式通常包括FP32等位長度,但我們拆分了位布局和位長度[3]。 計算單元:顯示是否使用了專用矩陣乘單元。在這篇文章中,我們只區(qū)分張量和非張量。 硬件加速器:指加速ML工作負載的芯片,如GPU或TPU。我們在通用術語中可交替使用芯片和硬件加速器這兩個術語,而在指代專門的加速器時則使用GPU和TPU。
02.?數據集
我們從兩個關鍵數據集中匯編了硬件規(guī)格。第一個數據集在2019年Sun等人的研究(https://arxiv.org/abs/2202.05924)基礎上,包含了2006年至2021年期間發(fā)布的1948款GPU,我們將其稱為通用GPU數據集(主要基于一些不常用于機器學習訓練的通用GPU)。第二個數據集僅包含自2010年以來的47個ML硬件加速器,如NVIDIA 的GPU和Google的TPU,它們通常在重要的機器學習實驗中使用(根據2022年Sevilla等人的定義)。 我們自己整理了后一個數據集,并將其稱為ML硬件數據集,簡稱ML數據集(基于ML GPU)。此數據集可以在我們的數據表中公開獲?。╤ttps://docs.google.com/spreadsheets/d/1NoUOfzmnepzuysr9FFVfF7dp-67OcnUzJO-LxqIPwD0/edit?usp=sharing)。
03.?主要性能指標趨勢
在本節(jié)中,我們將介紹不同數字表征、內存容量、計算性價比和能效的趨勢。我們將簡要解釋每個指標與ML開發(fā)和部署的相關性,展示我們的發(fā)現(xiàn),并簡要討論它們的含義。
數字表征
用于計算的數值表征對計算性能有很大影響。具體說來,每個值的位數決定了計算密度(每秒每芯片面積的運算次數)。[4]近年來,硬件制造商已經為ML應用引入了專門的低精度數值格式。雖然FP64在高性能計算中很常見,[5]但在過去15年左右的時間里,F(xiàn)P32的性能一直是大多數消費級應用關注的焦點。 近年來,精度較低的數值格式變得更加普遍,因為低精度已經足夠開發(fā)和部署ML模型(Dettmers等人,2022;Suyog Gupta等人,2015年;Courbariaux等人,2014年)。根據Rodriguez(https://deeplearningsystems.ai/#ch06/#61-numerical-formats,2020),到目前為止,F(xiàn)P32仍然是機器學習訓練和推斷中采用最廣泛的數值格式,行業(yè)越來越傾向于在某些訓練和推理任務中過渡到更低精度的數值格式,如FP16和Google的bfloat16(BF16),以及用于部分推理工作負載的整數格式INT8。[6]其他知名新興數值格式包括16位標準浮點格式FP16,整數格式INT4,以及NVIDIA開發(fā)的19位浮點格式TF32。[7] FP32和FP16的計算性能 從歷史上看,近20年來,F(xiàn)P32精度的計算性能趨勢一直相對穩(wěn)定,呈現(xiàn)出2.3年翻倍一次的趨勢,與摩爾定律的速度密切相關。在過去幾年,特別是自2016年以來,我們已經看到了專門支持FP16精度的硬件的出現(xiàn),這增加了絕對計算性能,同時減少了位長。
圖2:過去二十年,F(xiàn)P32和FP16精度下的通用和ML GPU峰值性能。上圖顯示,ML GPU的中位性能高于所有通用GPU,但增長率相似。下圖顯示,2014年一些硬件加速器開始提供FP16性能細節(jié)。 在過去十年中,F(xiàn)P32的通用硬件和ML硬件的計算性能顯示出幾乎相同的增長率,但在性能水平上有所不同。我們的ML硬件數據集中的加速器始終處于最佳可用硬件之列。我們認為,這在一定程度上是因為機器學習實踐者選擇了最強大的可用硬件,其次,這也是由于最近推出的專門針對機器學習市場的高端數據中心GPU的推出,例如英偉達的V/A/H100或谷歌的TPU。 通過硬件支持更低精度的數值格式以提高計算性能 降低數值精度所帶來的性能提升得益于現(xiàn)代機器學習芯片中多重架構的改進,而不僅僅是單純降低位寬所能達到的。較小的數據類型使得每平方芯片面積可以進行更多的浮點運算,并減小了內存占用。 然而,其他方面的進步也在很大程度上做出了貢獻:引入了專門用于矩陣乘的新指令;[8]硬件數據壓縮;消除了諸如NVIDIA A100中的矩陣乘硬件中多余的數據緩沖區(qū),這有助于降低數據和指令內存需求,從而提高了單位芯片面積上的操作數。H100更快的內存訪問能力進一步優(yōu)化了上述進展(Choquette, 2023).。
圖3:箱線圖顯示了不同精度數字格式下ML加速器性能相對于其FP32性能的比值,這展示了相對于FP32的性能改善。我們發(fā)現(xiàn),相對于它們自身的FP32性能,采用新的數值表示方式tensor-FP32/TF32、tensor-FP16和tensor-INT8可以分別使平均計算性能提高約5倍、8倍和13倍。并非所有GPU都專門支持低精度格式,我們從圖中剔除了那些在較低精度格式上的計算性能未能超過較高精度格式的GPU型號,以便篩選出缺乏專門支持的GPU。
近年來,由于使用了較低的數字精度,GPU在機器學習工作負載中的性能大幅提升。平均而言,與在同一GPU上使用FP32相比,使用tensor-FP32(TF32)、tensor-FP16、tensor-INT8和tensor-INT4等精度較低的數值格式分別可提供約5倍、8倍、13倍和18倍的計算性能。 歷史數據顯示,F(xiàn)P32性能峰值每2.3年翻一番,這些較低精度的加速效果相當于性能提升了3到9年。然而,最大的加速效果可能超過平均值。與FP32相比,NVIDIA的H100在TF32、FP16和INT8下分別實現(xiàn)了約7倍、15倍和30倍的加速效果。
因此,對于H100來說,與典型的GPU相比,較低的精度提供了比FP32更大的性能增益。正如我們所看到的,雖然使用較低精度能極大地提升計算性能,但出于模型準確性方面的權衡,通常還是會使用較高精度進行訓練。[10]盡管TF32、FP16和INT8格式在H100上相較于FP32提供了加速效果,但需要注意的是,這不僅僅是因為較小的數值格式更高效,H100很可能針對這些格式的操作進行了優(yōu)化,從而促成了速度提升。
內存容量和帶寬
典型的處理器核心通過讀取數據、處理數據,并將處理后的結果寫回內存來執(zhí)行計算。因此,內存充當了在處理周期之間存儲數據的媒介。硬件傾向于使用內存層次結構:從在計算單元附近存儲數百KB快速訪問數據的寄存器文件,到能夠容納數十GB較慢訪問數據的隨機存取存儲器(RAM)。[11] 數據定期從較大的慢速訪問RAM通過中間緩存存儲器傳輸到寄存器文件,必要時再寫回。加速器數據表大多提供加速器卡上可用的最大RAM[12]。我們稱這些RAM位的數量為內存容量。數據以塊的形式傳輸到最大RAM中,具體取決于所使用的內存技術,這需要一些處理周期。
我們將能夠每秒傳輸到最大RAM的最大位數(即峰值比特速率)稱為內存帶寬[13]。 包含硬件加速器的系統(tǒng)通常包含一個主存儲器,用于存儲應用程序和數據。然后,這些數據被傳輸到加速器進行處理。為確保在訓練或推理期間模型權重和訓練數據在硬件加速器上隨時可用,需要更大的內存容量。如果數據無法適應加速器的內存,邏輯(logic)將需要使用CPU內存,甚至更高級別的內存(例如硬盤),這將顯著影響時延和帶寬。實際上,為避免這種性能損失,模型數據分發(fā)到多個硬件加速器的內存中。
硬件處理能力的進步需要更大的內存帶寬。如果沒有足夠的數據輸入,就無法達到峰值計算性能,內存帶寬就會成為瓶頸[14],這被稱為帶寬墻(Rogers等人,2009)或通常所說的內存墻。 如圖4所示,相對于計算性能的改善,內存容量和帶寬的增長速度較慢。具體而言,就通用GPU來說,內存容量每3.04年翻一番,而ML加速器則為4年,內存帶寬分別為每3.64年和4年翻一番。相比之下,根據之前的分析,計算性能每2.3年翻一番。
?
圖4:通用硬件與ML硬件的內存容量和帶寬的變化軌跡。我們發(fā)現(xiàn)所有這些趨勢都比計算性能的趨勢慢(計算性能每2.34年翻一番),這與通常所說的內存墻趨勢一致。 如人們所預期的那樣,在內存容量和帶寬方面,ML硬件超過了中位的GPU。然而,即使在這方面,這些指標的增長速度也一直落后于計算性能的增長速度(每2.3年翻一番)。
這一趨勢表明,對于大規(guī)模ML應用而言,內存正在成為一個日益關鍵的瓶頸。當前的架構改進,比如引入更少位的數字表征,可能會減輕這種內存限制。然而,如果不加快發(fā)展,這一內存瓶頸將在未來幾年繼續(xù)影響整體性能。[15] 對于一些ML工作負載來說,單個加速器可能提供了足夠的計算性能。然而,由于內存限制,通常需要將工作負載分布到多個加速器上。利用多個加速器可以增加總內存容量,從而完全將大型模型和數據集放入內存。這種策略確保了更大的內存容量,可以在多個硬件加速器上容納模型的全部權重,從而減輕了從主機系統(tǒng)內存?zhèn)鬏敂祿r所產生的時延。對于某些工作負載來說,增加內存帶寬可能對滿足時延和吞吐量要求至關重要。 值得注意的是,旨在減少內存占用的技術,比如重新計算激活值利用了計算資源來部分抵消這些限制(Rajbhandari等, 2021)。
然而,通過多個芯片并行化模型訓練需要它們之間通過互連實現(xiàn)高效通信。
互連帶寬
在ML的訓練和部署中,由于不斷增長的內存需求,除需要巨大的計算能力之外,還需要使用多個芯片來滿足這些需求。例如,PaLM的訓練中使用了6144個芯片(Chowdhery等人,2022年),而對于GPT-4可能需要使用更多芯片。這一需求強調了有效互連這些芯片的需求,使它們能夠在不借助CPU內存或磁盤的情況下有效地交換激活值和梯度。 互連帶寬是指通信通道能夠傳輸的峰值比特率,通常以每秒傳輸的字節(jié)數為單位測算。
當ML硬件之間頻繁交換數據時,如果互連帶寬跟不上處理速度,這個指標就成為了限制因素。 互連協(xié)議定義了最大互聯(lián)帶寬。在我們的數據集中,ML硬件涉及三種常見協(xié)議:a) PCI Express(PCIe);b) Nvidia NVLink;c) Google Inter-Core Interconnect(ICI)[16] 。PCIe是一種普遍采用的協(xié)議,用于在CPU和機器學習硬件之間進行本地互聯(lián)。
相比PCIe的基于集線器的網絡架構,Nvidia的專有NVLink通過實現(xiàn)設備之間的直接點對點連接,克服了PCIe的帶寬限制。在無法使用點對點連接的情況下,PCIe被用作備用方案。Google的ICI用于連接他們的TPU[17]。 前面提到的互連協(xié)議主要設計用于近距離通信[18] 。當需要進行較長距離的通信時,會采用傳統(tǒng)的計算機網絡協(xié)議,比如以太網或者InfiniBand。在所有傳統(tǒng)網絡協(xié)議中,數據都是通過PCIe路由到網絡硬件[19] 。即使存在NVLink和ICI,PCIe仍然作為主機CPU和機器學習硬件之間的標準互連協(xié)議。在接下來的內容中,我們將始終指出對應于最快協(xié)議的互連速度。
圖5: 不同硬件加速器中,每個芯片的聚合互連帶寬。NVLink和ICI等專有協(xié)議的互連帶寬高于PCIe。 我們發(fā)現(xiàn),自2011年以來,ML(機器學習)硬件的PCIe帶寬僅從32GB/s增加到2023年的128GB/s(見圖5)。[20]然而,英偉達(NVLink)和谷歌(ICI)的專用加速器互連協(xié)議可實現(xiàn)更高的互連帶寬。此外,常用于大型計算集群的高端ML加速器(例如TPU和V/A/H100)擁有迄今為止最高的互連速度。例如,搭載18個NVLink 4.0通道的英偉達H100實現(xiàn)了900GB/s的帶寬,是單個PCIe 5.0 16通道鏈路的7倍。[21] 一個計算集群可能配備了成千上萬臺不同程度耦合的硬件加速器。例如,英偉達的DGX H100服務器使用NVSwitch使每臺H100互連,從而實現(xiàn)了最大互連帶寬為900GB/s的緊密耦合加速器網絡(參見[Choquette, 2023],https://doi.org/10.1109/MM.2023.3256796,"Scaling Up and Out"一章)。
許多DGX H100服務器又可以組成所謂的SuperPOD,其中各個獨立服務器中的加速器仍可使用NVLink傳輸數據,但耦合程度較低。每個SuperPOD使用以太網和Infiniband連接到另一個SuperPOD。服務器之間的網絡拓撲也會影響計算集群的整體性能。 專用集群ML硬件的互連帶寬遠高于消費級硬件。這凸顯了它在大規(guī)模ML實驗中的重要性,因為這些實驗需要在ML硬件節(jié)點之間進行高帶寬的數據通信。因此,類似于內存容量和帶寬,我們建議監(jiān)測互連帶寬,將其作為了解ML硬件趨勢的一個相關附加指標。
計算性價比
性能——價格比(Price-performance ratio)通常比單純的峰值計算性能更有用,它能反映GPU的整體技術改進情況,即每美元成本可獲得的性能。我們采用兩種方法來估算ML硬件的性價比:
1. 在有數據的情況下,我們使用硬件的發(fā)布價格,根據通貨膨脹進行調整,并假定兩年的攤銷時間,詳見(Cotra (2020),https://docs.google.com/document/d/1qjgBkoHO_kDuUYqy_Vws0fpf-dG5pTU4b8Uej6)。
2. 在僅提供租賃的TPU或其他硬件等硬件發(fā)布價格不可用或不明確的情況下,我們使用Google Cloud的云計算價格(截至2023年7月3日)。我們根據通貨膨脹調整價格,以使價格與攤銷價格相當,并假設云服務提供商的利潤率為40%[22]。如圖6所示,在計算FP32精度的性價比時,需考慮估算FP32性價比時的一些重要注意事項。
首先,集群硬件的定價通常會采用私下協(xié)商的方式,不公開發(fā)布,這使得難以準確定價。其次,盡管某些芯片在個體性價比上表現(xiàn)強勁,但由于互連帶寬或可靠性不足,可能無法在工業(yè)集群部署中使用。再次,F(xiàn)P32計算引入了對專用ML芯片的偏見,這些芯片使用較低精度數字格式和未在FP32指標中反映的張量核心。最后,由于缺乏有關功耗、冷卻和更換率等數量的公開數據(參見[Cottier, 2023],https://epochai.org/blog/trends-in-the-dollar-training-cost-of-machine-learning-systems),估算實際維護成本具有挑戰(zhàn)性。盡管作為基準有用,但FP32性價比趨勢必須考慮源自ML的特定架構因素和數據約束的限制。
圖 6:通用硬件和ML硬件的FP32性價比軌跡。我們發(fā)現(xiàn),這些軌跡大致遵循與峰值計算性能相同的增長軌跡(2.3年翻倍時間)。此外,我們發(fā)現(xiàn)ML GPU的絕對性價比低于其他硬件。FP32性價比可能存在對ML硬件的偏見(詳見正文)。 我們看到FP32性價比的增長軌跡(2.5/2.1年翻倍時間)大致與通用計算性能的增長軌跡(2.3年翻倍時間)相似。
此外,與其他GPU相比,我們發(fā)現(xiàn)ML GPU的性價比較低。我們推測至少有兩個原因。 首先,如上所述,由于它們忽略了在ML訓練中常見的其他數值表示(如FP16),上述注意事項系統(tǒng)地使FP32性價比對ML硬件產生了偏見。其次,正如前面的部分所述,大規(guī)模ML訓練不僅依賴于單一性能指標,還依賴于互連帶寬、內存容量和帶寬等其他指標。然而,這些指標并未反映在FP32性價比中。例如,一款典型的消費級GPU在個體的性價比上可能更好,但對于ML訓練來說卻不太適用。
圖7:不同數值表示ML硬件的計算性價比。其中的點表示ML硬件的發(fā)布日期和性能,顏色代表數值格式。虛線表示具有十個或更多加速器的數值格式(如INT8、FP16和FP32)性能改進趨勢。 FP32的性價比可能會誤導對ML硬件成本效益的認識。例如,AMD Radeon RX 7900 XTX消費級GPU在FP32性價比方面表現(xiàn)最佳。然而,NVIDIA RTX 4090在使用ML訓練中常見的低精度INT4格式時,提供了約10倍高的性價比。
這得益于RTX 4090專為低精度計算而設計的張量核心,而FP32指標卻忽略了這一點。 因此,僅憑FP32的性價比便會錯誤地認定Radeon優(yōu)于RTX 4090,而實際上RTX 4090在實際ML工作負載中更為經濟實惠。這突顯了僅依賴FP32性價比分析,不考慮ML特定架構和數值表示的整體評估的風險。 性價比最好的GPU在很大程度上取決于所使用的數值表示。AMD Radeon RX 7900 XTX消費級GPU在FP32計算上的性價比最高。然而,對于像INT4這樣的低精度數字格式,NVIDIA RTX 4090的每美元計算性能大約是Radeon的10倍。這說明按照性價比對GPU進行排名對精度非常敏感,而僅依靠FP32無法全面反映實際ML工作負載中的成本效益。
能效
運行硬件會消耗能源,而大多數組織的目標是盡可能充分地利用他們的硬件。因此,部署能效高的硬件是一種降低硬件加速器壽命周期成本的可能途徑。此外,能效更高的硬件通常散熱更少,有助于更好地實現(xiàn)可擴展性。 為近似評估ML硬件的能效,我們使用每瓦特的FLOP/s,其中能量組成部分是從熱設計功耗(TDP)計算得出的。TDP并不等同于平均能耗,因此不應該用于精確比較。然而,在ML訓練和云計算中,我們認為它是一個相當不錯的近似值,因為硬件是持續(xù)運行的(參見附錄中的TDP部分,https://epochai.org/blog/trends-in-machine-learning-hardware#thermal-design-power-tdp)。
圖 8:根據TDP數值計算的FP32精度能效軌跡。我們發(fā)現(xiàn),機器學習GPU的平均能效比通用GPU高,且能效的增長速度略低于峰值計算性能(2.3年翻倍時間)的增長速度。 我們發(fā)現(xiàn),機器學習GPU的平均能效比歷史GPU更高。這是合理的,因為ML GPU通常在數據中心運行,能源消耗和碳足跡是重要的度量標準(參見Jouppi等,2023,? ? ? ? ? ? ? ? ? ? ?? https://arxiv.org/pdf/2304.01433.pdf,第7.6節(jié))。此外,我們發(fā)現(xiàn)能效的增長速率(分別為歷史GPU和ML GPU的2.70/3.0年翻番時間)僅略低于峰值計算性能的增長速率(2.3年翻番時間)。這一趨勢表明能耗目前(尚)不是擴展的現(xiàn)實瓶頸,但有理由認為在未來可能會成為瓶頸(參見Hobbhahn & Besiroglu, 2022b,? ? https://epochai.org/blog/predicting-gpu-performance)。
04.?結論
最近的研究表明,對于開發(fā)和部署ML模型,低精度已經足夠(參見[Dettmers 等, 2022];[Suyog Gupta 等, 2015]; [Courbariaux 等, 2014])。我們發(fā)現(xiàn),ML硬件遵循上述發(fā)現(xiàn),并不斷集成支持更低精度數值格式的硬件單元(如FP16、TF32、BF16、INT8和INT4),以增加每秒的總操作次數。此外,張量核心等專用計算單元變得越來越普遍,并進一步提高了計算性能。
? 結合這兩個趨勢,在我們的推測性占主導的估算中,從FP32到張量-FP16的躍遷平均提供了約8倍的峰值性能增益。然而,旗艦級ML硬件加速器的這一比率可能更高,例如,NVIDIA H100 SXM的TF32到FP32比率約為7倍,張量-FP16到FP32比率約為15倍,張量-INT8到FP32比率約為30倍。 這一趨勢表明了一種“硬件-軟件協(xié)同設計”的模式,其中ML從業(yè)者嘗試不同的數值表示,并已獲得了一些小而有意義的性能提升,減少了內存占用。然后,硬件被調整以適應這些新的數值表示,從而獲取進一步的增益。多次迭代這一循環(huán)可以促成性能的實質性改善。此外,硬件生產商也在積極尋求新的創(chuàng)新,這些創(chuàng)新隨后將引領其進入ML實驗室。
此外,在大規(guī)模ML訓練中,我們強調內存容量、內存帶寬和互連帶寬等因素的重要性。鑒于目前ML訓練通常需要數千個芯片之間的有效交互,超越每個芯片峰值性能的因素變得至關重要。我們觀察到,這些指標的增長速度比與計算相關的指標(例如峰值計算性能、性價比和能效)要慢。在大規(guī)模分布式ML訓練場景中,內存和互連帶寬成為利用峰值計算性能的瓶頸。 專門的機器學習硬件和替代的數值表示是相對較新的趨勢,這使得精確預測變得困難。正如我們已經明確指出,密切追蹤數值格式、內存容量、內存帶寬和互連帶寬的發(fā)展對于更準確地評估未來機器學習能力至關重要。與其依賴靜態(tài)假設,基于硬件和軟件創(chuàng)新不斷重新評估性能潛力才是關鍵。 (我們要感謝Dan Zhang、Gabriel Kulp、Yafah Edelman、 Ben Cottier、Tamay Besirogl和Jaime Sevilla對本文提供的詳盡反饋,還要感謝Eduardo Roldán將這篇文章搬運到網站上。)
附錄:次要性能指標的趨勢
我們補充了晶體管數量、熱設計功耗(TDP)、時鐘速度、芯片尺寸和張量核心數量等次要指標的趨勢。盡管這些指標可能與理解ML硬件的某些趨勢相關,但我們認為它們不如我們在文章主體中分析的指標重要或有影響力[23]。 請注意,這些趨勢中仍有大量缺失數據,因此可能存在偏見。例如,以下大部分數據不包括TPU。
注釋(請上下滑動)?
1 NA表示數據不可用,因為缺乏足夠的數據來估計相關增長率。
2 這些數字通常是基于硬件特性計算得出的。例如,計算性能通常被估算為處理核心數量、時鐘速度和每個核心的每個時鐘周期的浮點運算乘積。
3 相同位數的比特可以表示不同的數值范圍或浮點數精度。我們的硬件數據集不包括針對給定位數格式的每種可用數值格式的計算性能。例如,我們的FP16數據還包括BF16,其在指數和尾數分配的比特數方面存在差異。我們不指望在相同位數的不同浮點數格式之間有太大的性能差異。最適合的數值表示(例如,從能源或運行時間效率的角度)取決于工作負載。[Rodriguez, 2020](https://deeplearningsystems.ai/#ch06/#61-numerical-formats)第6.1節(jié)中還包含了一份ML應用的數值表示的綜合列表。
4 根據[Mao等人 (2021)](https://doi.org/10.1109/TVLSI.2021.3128435)中的表VI,一個FP64乘法器單元的面積大約是FP32乘法器的五倍。類似的關系也存在于FP32和FP16乘法器之間。
5 由于許多具有歷史重要性的超級計算機工作負載對高精度的要求,例如計算流體力學、氣象學、核蒙特卡洛模擬、蛋白質折疊等。
6 [Rodriguez, 2020](https://deeplearningsystems.ai/#ch06/#61-numerical-formats), 第6.1節(jié)指出:最受歡迎和廣泛采用的數值格式是用于訓練和推理的FP32。行業(yè)正在向用于訓練和推理的FP16和BF16靠攏,并在某些工作負載的推理中采用INT8。
7 TF32并非通用數值格式,它僅在NVIDIA張量核心中使用,通過在矩陣乘法之前減少13位精度位,加速使用FP32的模型處理,但保持與FP32相同的數值范圍。TF32與FP32的內存占用相同,因為TF32在張量核心中使用與FP32相同的寄存器(參見[Sun等,2022](https://doi.org/10.1109/TPDS.2022.3217824),第8節(jié))。換句話說,TF32被設計為FP32模型的即插即用替代品,但在矩陣乘法過程中可以接受更低的精度。
8 請勿將其與張量核心乘法所需的新指令混淆。[Choquette等人,2021](https://doi.org/10.1109/MM.2021.3061394),SM Core一節(jié)指出:在A100中,添加了一條新的異步組合加載-全局存儲-共享存儲指令,將數據直接傳輸到SMEM,繞過寄存器文件,提高了效率。
9 注意查看標題為‘SM Core’的部分。
10 例如,目前INT8在訓練當前系統(tǒng)中并未被廣泛使用。INT8的缺點在Rodriguez,2020,第6.1節(jié)中有解釋。
11 由ML硬件數據表記錄的內存容量通常指的是RAM容量,因為GPU在之前常被用于視頻處理,所以也常被稱為視頻RAM(VRAM)。
12 例如,[AMD Instinct MI200 數據表](https://www.amd.com/system/files/documents/amd-instinct-mi200-datasheet.pdf) ?明確說明了128 GB HBM2e。HBM指的是高帶寬內存,是一種RAM類型。[NVIDIA H100 Tensor Core GPU 數據表](https://resources.nvidia.com/en-us-tensor-core/nvidia-tensor-core-gpu-datasheet) 表示H100 SXM 的內存為80GB,根據 [NVIDIA H100 Tensor Core GPU 架構](https://nvdam.widen.net/s/95bdhpsgrs#page=36)v1.04,第36頁,這個數字對應于HBM3 的內存容量。
13 在應用中,實際帶寬通常較低。一個原因是數據傳輸時延,這也影響了實際帶寬,并取決于內存技術。到單獨內存芯片的距離以及在大容量內存中的長路徑,會導致數據在到達處理單元之前經歷大量的周期。如果處理單元預先知道需要哪些數據,就可以以最大帶寬進行數據傳輸。如果不知道,就需要對內存進行隨機訪問。通常,隨機訪問越多,實際帶寬就越低。我們的數據集中不包含時延指標。
14 圖形處理和機器學習訓練往往會遇到這個瓶頸,因此,現(xiàn)代機器學習硬件嘗試通過兩種技術來優(yōu)化高內存帶寬:(a) GDDR內存或(b) 高帶寬內存(HBM)。GDDR內存位于與處理芯片相同的板上,而HBM則實現(xiàn)在與處理芯片相同的封裝中,從而實現(xiàn)更低的時延和更高的帶寬(例如,在數據中心使用的最新機器學習加速器,如NVIDIA A100和H100采用了HBM;而它們的游戲型GPU則沒有采用HBM,以節(jié)約成本)。將許多DRAM堆疊在一起,并在單個芯片封裝中互連多個半導體芯片,與在印刷電路板上連接處理芯片和DRAM相比,需要昂貴的工具,因此HBM通常出現(xiàn)在性能最昂貴和性能最高的機器學習硬件加速器中,例如那些用于數據中心進行大規(guī)模機器學習訓練和部署的加速器。
15 可參閱 [Megatron-LM: 使用模型并行訓練數十億參數的語言模型](https://lilianweng.github.io/posts/2021-09-25-train-large/),[如何在多個GPU上訓練非常大的模型?](https://lilianweng.github.io/posts/2021-09-25-train-large/)或者[訓練大型神經網絡的技術](https://openai.com/research/techniques-for-training-large-neural-networks) 。
16 [Jouppi等,《TPU v4:一種具有嵌入式硬件支持的光學可重構超級計算機用于機器學習》](https://arxiv.org/pdf/2304.01433.pdf) 的第2節(jié)中有詳細內容。
17 更多關于ICI的信息請參見[Jouppi等人,2023](https://doi.org/10.48550/arXiv.2304.01433),第2節(jié)。值得注意的是,TPUv4使用光開關來滿足長距離互連需求。
18 例如,[PCIe 4.0支持長達30厘米](https://www.elektronik-kompendium.de/sites/com/0904051.htm)。根據[Jouppi等,2023](https://doi.org/10.48550/arXiv.2304.01433),第7.2節(jié),Google ICI用于連接1024個TPUv3,但最大長度并未提供。
19 InfiniBand和Ethernet支持的網絡帶寬低于PCIe,因此它們定義了峰值帶寬。
20 按照PCI-SIG協(xié)會的標準;預計到2025年將增加到256GB/s。需要注意的是,帶寬變化的速度是由協(xié)會定義的,而該協(xié)會可能在采納市場的即時需求方面較為緩慢。
21 根據[NVIDIA H100 Tensor Core GPU Architecture, v1.04, p47的說明](https://nvdam.widen.net/s/95bdhpsgrs#page=47):在多GPU IO和共享內存訪問中,總帶寬達到900GB/秒,新的NVLink提供的帶寬是PCIe Gen 5的7倍。... H100包括18條第四代NVLink連接,提供900GB/秒的總帶寬...
22 Google Cloud提供一年的37%的使用折扣。因此,我們估計40%是谷歌從正常云計算中獲利的合理下限。有關云計算價格的更多考慮可以在https://epochai.org/blog/trends-in-the-dollar-training-cost-of-machine-learning-systems找到。
23 相關性判斷結合了作者直覺和我們在先前帖子中的推理。
24 Chiplet是一個將多個芯片集成到一個集成電路/封裝中的例子。
25 根據[Hennessy等人,《計算機體系結構》,2017年,第24頁](https://www.elsevier.com/books/computer-architecture/hennessy/978-0-12-811905-1)的描述:TDP既不是峰值功率(峰值功率通常要高1.5倍),也不是在特定計算過程中實際消耗的平均功率(平均功率可能更低)。
26支持這一觀點的證據來自(Gigabyte術語表,https://www.gigabyte.com/Glossary/tdp):在一個穩(wěn)定的、企業(yè)級的服務器房間或數據中心中,TDP大致等同于計算設備的功耗,因為服務器通常處于最大容量或接近最大容量運行。
審核編輯:黃飛
?
評論
查看更多