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