GPU 最初是純粹用于圖形渲染的設(shè)備,但其高度并行的特性也使其對(duì)某些計(jì)算任務(wù)具有吸引力。隨著過(guò)去幾十年 GPU 計(jì)算場(chǎng)景的發(fā)展,Nvidia 進(jìn)行了大量投資來(lái)占領(lǐng)計(jì)算市場(chǎng)。其中一部分涉及認(rèn)識(shí)到計(jì)算任務(wù)與圖形任務(wù)有不同的需求,并分散其 GPU 系列以更好地瞄準(zhǔn)每個(gè)市場(chǎng)。
H100 是 Nvidia 面向計(jì)算的 GPU 系列的最新成員。它采用Hopper架構(gòu),并建立在一個(gè)巨大的814 mm2芯片上,使用臺(tái)積電的4N工藝和800億個(gè)晶體管。這個(gè)巨大的芯片實(shí)現(xiàn)了 144 個(gè)流式多處理器 (SM)、60 MB 的 L2 緩存和 12 個(gè) 512 位 HBM 內(nèi)存控制器。我們正在 Lambda Cloud 上測(cè)試 H100 的 PCIe 版本,該版本支持 114 個(gè) SM、50 MB 的 L2 緩存和 10 個(gè) HBM2 內(nèi)存控制器。該卡最多可消耗 350 W 的功率。
Nvidia 還提供了 SXM 外形 H100,其功耗高達(dá) 700W,并啟用了 132 個(gè) SM。SXM H100 還使用 HBM3 內(nèi)存,提供額外的帶寬來(lái)滿足這些額外的著色器的需要。
關(guān)于時(shí)鐘速度的簡(jiǎn)要說(shuō)明
H100 具有比 A100 高得多的升壓時(shí)鐘。在進(jìn)行微基準(zhǔn)測(cè)試時(shí),H100 有時(shí)會(huì)降至 1395 MHz,或者略低于其最大升壓時(shí)鐘的 80%。nvidia-smi 的其他指標(biāo)表明我們可能會(huì)達(dá)到功率限制,特別是在從 L2 提取數(shù)據(jù)時(shí)。H100 PCIe 版本的功率限制為 350W,在帶寬測(cè)試時(shí)正好符合這一要求。
即使 GPU 功耗超過(guò) 300W,服務(wù)器冷卻也能夠使 H100 保持在非常低的溫度。內(nèi)存溫度稍高一些,但仍在合理范圍內(nèi)。
A100 看到了不同的行為。核心時(shí)鐘在負(fù)載下達(dá)到 1410 MHz 并保持不變。功耗也相當(dāng)高,但 A100 的 SXM4 版本具有更高的 400W 功率限制。可能正因?yàn)槿绱耍词构某^(guò) 350W,我們也沒(méi)有看到任何時(shí)鐘速度下降。
與 H100 一樣,A100 的核心溫度非常低。被動(dòng)冷卻卡似乎在氣流充足的服務(wù)器機(jī)箱中蓬勃發(fā)展。A100的內(nèi)存溫度也比H100低。
緩存和內(nèi)存設(shè)置
計(jì)算機(jī)幾乎一直受到內(nèi)存速度的限制。我們已經(jīng)看到消費(fèi)類 GPU 通過(guò)日益復(fù)雜的緩存設(shè)置來(lái)應(yīng)對(duì)這一問(wèn)題。AMD 的 RX 6900 XT 使用四級(jí)緩存層次結(jié)構(gòu),末級(jí)緩存容量為 128 MB,而 Nvidia 的 RTX 4090 將二級(jí)容量擴(kuò)展至 72 MB。Nvidia 的計(jì)算 GPU 的緩存容量也有所增加,但策略略有不同。
流式多處理器 (SM) 是 Nvidia 的基本 GPU 構(gòu)建塊。Nvidia 在之前面向數(shù)據(jù)中心的 GPU 中一直強(qiáng)調(diào) SM 私有緩存。對(duì)于大多數(shù) Nvidia 架構(gòu),SM 具有私有內(nèi)存塊,可以在 L1 緩存和共享內(nèi)存(軟件管理暫存器)使用之間靈活分區(qū)。GK210 Kepler SM 具有 128 KB 的內(nèi)存,而客戶端實(shí)現(xiàn)的內(nèi)存為 64 KB。A100 為 192 KB,而客戶端 Ampere 為 128 KB。現(xiàn)在,H100 將 L1/共享內(nèi)存容量提高到 256 KB。
我們可以使用 Nvidia 的專有 API 對(duì) L1 緩存分配進(jìn)行有限的測(cè)試。我們通常使用 OpenCL 或 Vulkan 進(jìn)行測(cè)試,因?yàn)樵S多供應(yīng)商支持這些 API,讓測(cè)試無(wú)需修改即可在各種 GPU 上運(yùn)行。但 CUDA 對(duì) L1 和共享內(nèi)存分割的控制有限。具體來(lái)說(shuō),我們可以要求 GPU 偏好 L1 緩存容量、偏好均等分割或偏好共享內(nèi)存容量。請(qǐng)求更大的 L1 緩存分配不會(huì)帶來(lái)任何延遲損失。
使用 CUDA 測(cè)試內(nèi)存訪問(wèn)延遲,這讓我們可以指定首選的 L1/共享內(nèi)存分割。
當(dāng)我們要求 CUDA 優(yōu)先選擇 L1 緩存容量時(shí),我們看到 208 KB 的 L1 緩存。通過(guò)這種設(shè)置,H100 比任何其他 GPU 擁有更多的一級(jí)數(shù)據(jù)緩存能力。即使我們考慮到 AMD 使用單獨(dú)內(nèi)存進(jìn)行緩存和暫存器的策略,H100 仍然領(lǐng)先。將 RDNA 3 的 L0 矢量緩存、標(biāo)量緩存和 LDS(暫存器)容量加起來(lái)僅提供 208 KB 的存儲(chǔ)空間,而 Hopper 上的存儲(chǔ)空間為 256 KB。
相對(duì)于A100,H100的L1容量更高,延遲更低。這是一個(gè)值得歡迎的改進(jìn),并且在緩存層次結(jié)構(gòu)中繼續(xù)保持比 A100 稍好的趨勢(shì)。
對(duì)于 L1 無(wú)法容納的數(shù)據(jù),H100 有 50 MB L2。當(dāng) A100 于 2020 年推出時(shí),其 40 MB L2 為其提供了比當(dāng)時(shí)任何 Nvidia GPU 更高的末級(jí)緩存容量。H100稍微增加了緩存容量,但今天沒(méi)什么特別的。Nvidia 的 RTX 4090 具有 72 MB 的二級(jí)緩存,而 AMD 的高端 RDNA 2 和 RDNA 3 GPU 分別具有 128 MB 和 96 MB 的末級(jí)緩存。
Nvidia 白皮書(shū)中的 H100 框圖,顯示了兩個(gè) L2 分區(qū)以及它們之間的鏈接
H100還繼承了A100的分離式L2配置。GPU 上運(yùn)行的任何線程都可以訪問(wèn)全部 50 MB 緩存,但速度不同。訪問(wèn)“遠(yuǎn)”分區(qū)所需的時(shí)間幾乎是原來(lái)的兩倍。它的延遲大約與 RX 6900 XT 上的 VRAM 一樣長(zhǎng),這使得它對(duì)帶寬更有用,而不是讓單個(gè)扭曲或波前更快完成。
使用 OpenCL 與 AMD 的客戶端 RDNA 2 架構(gòu)進(jìn)行比較
H100 的二級(jí)緩存感覺(jué)像是兩級(jí)設(shè)置,而不是單級(jí)緩存。在 H100 上運(yùn)行的線程可以比在 A100 上更快地訪問(wèn)“遠(yuǎn)”L2 緩存,因此 Nvidia 與上一代相比有所改進(jìn)。在實(shí)現(xiàn)大型緩存方面,A100 是 Nvidia 的先驅(qū),而 H100 的設(shè)置是 A100 的自然演變。但這并不是現(xiàn)代客戶端 GPU 上使用的低延遲、高效的緩存設(shè)置。
在 VRAM 中,H100 的延遲比 A100 略低,與一些較舊的客戶端 GPU 相當(dāng)。例如,GTX 980 Ti 的 VRAM 延遲約為 354 ns。
不再有常量緩存?
Nvidia 長(zhǎng)期以來(lái)一直使用單獨(dú)的常量緩存層次結(jié)構(gòu),通常具有 2 KB 常量緩存,并由 32 至 64 KB 中級(jí)常量緩存支持。常量緩存提供非常低的延遲訪問(wèn),但它是只讀的并且由有限的內(nèi)存空間支持。H100 以不同的方式處理常量?jī)?nèi)存。Nvidia 可以分配最多 64 KB 的恒定內(nèi)存(這一限制可以追溯到 Tesla 架構(gòu)),并且延遲在整個(gè)范圍內(nèi)是恒定的。
此外,延遲看起來(lái)與 L1 緩存延遲幾乎相同。H100 可能使用 L1 數(shù)據(jù)緩存來(lái)保存常量數(shù)據(jù)。驗(yàn)證這個(gè)假設(shè)需要額外的測(cè)試,由于現(xiàn)實(shí)生活和日常工作的需求,我目前無(wú)法投入時(shí)間。但無(wú)論 Nvidia 做了什么,它都比 A100 的持續(xù)緩存有了明顯的改進(jìn),并且全面降低了延遲。如果 Ada Lovelace 可以處理來(lái)自小型且快速的 2 KB 常量緩存的請(qǐng)求,那么它可以享受較低的延遲,但如果有大量常量數(shù)據(jù),它也會(huì)落后。
本地內(nèi)存延遲
如前所述,H100 的 SM 具有大塊私有存儲(chǔ),可以在 L1 緩存和共享內(nèi)存使用之間分配。共享內(nèi)存是 Nvidia 的術(shù)語(yǔ),指的是軟件管理的暫存器,可提供始終如一的高性能。AMD 的等效項(xiàng)稱為本地?cái)?shù)據(jù)共享 (LDS)。在 Intel GPU 上,它稱為共享本地內(nèi)存 (SLM)。OpenCL 將此內(nèi)存類型稱為本地內(nèi)存。
盡管 H100 從同一存儲(chǔ)塊中分配共享內(nèi)存,但共享內(nèi)存比 L1 緩存訪問(wèn)更快,因?yàn)樗恍枰獦?biāo)記比較和狀態(tài)檢查來(lái)確保命中。與各種 GPU 相比,H100 表現(xiàn)出色,盡管它可以比任何其他當(dāng)前 GPU 分配更多的共享內(nèi)存容量。
Atomics
共享內(nèi)存(或本地內(nèi)存)對(duì)于同步同一工作組內(nèi)的線程也很有用。在這里,我們正在測(cè)試 OpenCL 的atomic_cmpxchg 函數(shù),該函數(shù)會(huì)進(jìn)行比較和交換操作,并保證在這些操作之間沒(méi)有其他東西會(huì)觸及其所使用的內(nèi)存。
H100 在這種原子(Atomics)操作方面做得相當(dāng)好,盡管它有點(diǎn)落后于消費(fèi)級(jí) GPU 的能力。令人驚訝的是,這也適用于以較低時(shí)鐘運(yùn)行的舊 GPU,例如 GTX 980 Ti。不過(guò),H100 確實(shí)比 A100 做得更好。
如果我們?cè)谌謨?nèi)存(即由 VRAM 支持的內(nèi)存)上執(zhí)行相同的操作,延遲會(huì)嚴(yán)重得多。它略高于 L2 延遲,因此 H100 可能正在 L2 緩存處處理跨 SM 同步。
同樣,H100 比 A100 略有改進(jìn),但與消費(fèi)級(jí) GPU 相比有所不足。但這一次,差距要大得多。RX 6900 XT 將 H100 和 A100 遠(yuǎn)遠(yuǎn)拋在了后面。舊版 GTX 980 Ti 的性能也好很多。我認(rèn)為在巨大的 814 mm2或 826 mm2芯片上同步事物是相當(dāng)具有挑戰(zhàn)性的。
分布式共享內(nèi)存
為了降低跨巨大芯片傳輸數(shù)據(jù)的成本,H100 具有一項(xiàng)稱為分布式共享內(nèi)存 (DSMEM) 的功能。使用此功能,應(yīng)用程序可以將數(shù)據(jù)保存在 GPC 或 SM 集群中。與上述全局原子相比,這應(yīng)該允許更低的延遲數(shù)據(jù)共享,同時(shí)能夠在比工作組中容納的更多線程之間共享數(shù)據(jù)。
測(cè)試此功能需要每小時(shí)支付 2 美元購(gòu)買 H100 實(shí)例,同時(shí)學(xué)習(xí)新的 API,然后在沒(méi)有其他 GPU 的情況下進(jìn)行測(cè)試,以對(duì)結(jié)果進(jìn)行健全性檢查。即使在有利的條件下,編寫、調(diào)試和驗(yàn)證測(cè)試通常也需要許多小時(shí)。Nvidia 聲稱 DSMEM通常比通過(guò)全局內(nèi)存交換數(shù)據(jù)快 7 倍。
帶寬
延遲只是問(wèn)題的一部分。H100 等 GPU 專為極其并行的計(jì)算工作負(fù)載而設(shè)計(jì),并且可能不必處理可用并行性較低的情況。這與消費(fèi)類 GPU 形成鮮明對(duì)比,消費(fèi)類 GPU 偶爾會(huì)面臨較少的并行任務(wù),例如幾何處理或小型繪制調(diào)用。所以,H100強(qiáng)調(diào)的是海量帶寬。從 L2 緩存開(kāi)始,我們看到超過(guò) 5.5 TB/s 的讀取帶寬。我們測(cè)量了 RX 7900 XTX L2 的讀取帶寬約為 5.7 TB/s,因此 H100 獲得了幾乎相同的帶寬量和更高的緩存容量。
使用 OpenCL 進(jìn)行測(cè)試
與 A100 相比,H100 的帶寬提升雖小但很明顯。但這僅適用于“近”L2 分區(qū)。如前所述,A100 和 H100 的 L2 并不是真正的單級(jí)緩存。如果我們超過(guò)“接近”L2 容量,帶寬會(huì)明顯變差。在訪問(wèn)整個(gè) 50 MB L2 時(shí),H100 與 A100 相比也有所退步,為 3.8 TB/s,而 A100 為 4.5 TB/s。Nvidia 可能已經(jīng)確定很少有工作負(fù)載在 A100 上受 L2 帶寬限制,因此放棄一點(diǎn)跨分區(qū) L2 帶寬并不是什么大問(wèn)題。
從絕對(duì)意義上講,即使請(qǐng)求必須穿過(guò)緩存分區(qū),H100 的 50 MB L2 仍然可以提供大量帶寬。相比之下,RDNA 2 的無(wú)限緩存可提供約 2 TB/s 的帶寬,而 RDNA 3 的無(wú)限緩存僅略低于 3 TB/s。因此,H100 提供的緩存容量比 AMD 高端客戶端 GPU 上的無(wú)限緩存要少一些,但通過(guò)更高的帶寬來(lái)彌補(bǔ)。
然而,我覺(jué)得 Nvidia 可以將一些客戶端工程引入到面向計(jì)算的 GPU 中。他們的 RTX 4090 提供約 5 TB/s 的 L2 帶寬,并具有更多的 L2 緩存容量。從好的方面來(lái)說(shuō),H100 的 L2 提供比 VRAM 高得多的帶寬,即使請(qǐng)求必須跨分區(qū)也是如此。這是一種恭維,因?yàn)?H100 擁有大量的 VRAM 帶寬。
憑借五個(gè) HBM2e 堆棧,H100 可以從 VRAM 中提取略低于 2 TB/s 的速度。因此,H100 的 VRAM 帶寬實(shí)際上非常接近 RDNA 2 的 Infinity Cache 帶寬。它還代表了相對(duì)于 A100 的顯著改進(jìn)。A100 使用 HBM2,并且仍然比任何消費(fèi)類 GPU 擁有更多的 VRAM 帶寬,但其較低的內(nèi)存時(shí)鐘讓 H100 領(lǐng)先。
H100 的 VRAM 帶寬對(duì)于沒(méi)有緩存友好訪問(wèn)模式的大量工作集非常有用。消費(fèi)級(jí) GPU 已趨向于良好的緩存,而不是大量的 VRAM 設(shè)置。與具有適度 GDDR 設(shè)置但具有出色緩存的 GPU 相比,少數(shù)使用 HBM 的消費(fèi)級(jí) GPU 的性能表現(xiàn)平平。這是因?yàn)榫彺嫜舆t較低,即使工作負(fù)載較小,也可以更輕松地保持執(zhí)行單元的運(yùn)行。從 Nvidia 和 AMD 構(gòu)建計(jì)算 GPU 的方式來(lái)看,計(jì)算工作負(fù)載似乎恰恰相反。A100 已經(jīng)針對(duì)大型工作負(fù)載進(jìn)行了調(diào)整。H100 更進(jìn)一步,如果您可以填充一半以上的 GPU,則 H100 領(lǐng)先于 A100,但如果您不能填充一半以上,則 H100 會(huì)落后一些。
計(jì)算吞吐量
A100 的 SM 提供比客戶端 Ampere 更高的理論占用率和 FP64 性能,但只有 FP32 吞吐量的一半。H100 通過(guò)為每個(gè) SM 子分區(qū) (SMSP) 提供 32 個(gè) FP32 單元來(lái)解決這個(gè)問(wèn)題,讓它每個(gè)時(shí)鐘執(zhí)行一個(gè)扭曲指令。
數(shù)據(jù)來(lái)自A100和H100各自的白皮書(shū)
除了 FP32 性能之外,F(xiàn)P64 性能也翻倍。每個(gè) H100 SMSP 可以每?jī)蓚€(gè)周期執(zhí)行一條 FP64 warp 指令,而 A100 每四個(gè)周期執(zhí)行一次。這使得 H100 在需要提高精度的科學(xué)應(yīng)用中比 A100 表現(xiàn)更好。
A100 上的 INT32 加法吞吐量絕對(duì)是一個(gè)測(cè)量誤差。遺憾的是,Nvidia 不支持 OpenCL 的 FP16 擴(kuò)展,因此無(wú)法測(cè)試 FP16 吞吐量
同時(shí),H100繼承了Nvidia在整數(shù)乘法方面的優(yōu)勢(shì)。具體來(lái)說(shuō),與 AMD GPU 上的四分之一速率相比,INT32 乘法以一半速率執(zhí)行。另一方面,AMD GPU 可以以雙倍速率執(zhí)行 16 位整數(shù)運(yùn)算,而 Nvidia GPU 則不能。
在GPU層面,H100的特點(diǎn)是SM數(shù)量小幅增加,時(shí)鐘速度大幅提高。其結(jié)果是計(jì)算吞吐量全面顯著增加。由于 SM 級(jí)別的變化,H100 的 FP32 和 FP64 吞吐量將 A100 擊敗。
H100 的改進(jìn)將為各種應(yīng)用程序帶來(lái)性能優(yōu)勢(shì),因?yàn)楹茈y想象有任何 GPGPU 程序不使用 FP32 或 FP64。將這些操作的吞吐量加倍以及 SM 數(shù)量和時(shí)鐘速度的增加將使工作負(fù)載更快地完成。
除了矢量計(jì)算性能之外,H100 還使張量核心吞吐量翻倍。張量核心專門通過(guò)打破 SIMT 模型來(lái)進(jìn)行矩陣乘法,并在 warp 的寄存器中存儲(chǔ)矩陣。我沒(méi)有為張量核心編寫測(cè)試,并且在不久的將來(lái)編寫一個(gè)測(cè)試超出了我空閑時(shí)間愛(ài)好項(xiàng)目的時(shí)間范圍。但是,我相信 Nvidia 關(guān)于這個(gè)主題的白皮書(shū)。
最后的話
近年來(lái),消費(fèi)類 GPU 已朝著在面對(duì)較小工作負(fù)載時(shí)保持良好性能的方向發(fā)展。當(dāng)然,它們?nèi)匀缓軐挘?AMD 和 Nvidia 在吞吐量和延遲之間取得了平衡。RDNA 2/3 和 Ada Lovelace 的運(yùn)行頻率均超過(guò) 2 GHz,這意味著它們的時(shí)鐘速度接近服務(wù)器 CPU 的時(shí)鐘速度。除了高時(shí)鐘速度之外,復(fù)雜的緩存層次結(jié)構(gòu)還提供延遲優(yōu)勢(shì)和高帶寬,前提是訪問(wèn)模式對(duì)緩存友好。與此同時(shí),昂貴的內(nèi)存解決方案已經(jīng)失寵。少數(shù)配備 HBM 的客戶端 GPU 從未在配備 GDDR 的競(jìng)爭(zhēng)對(duì)手中表現(xiàn)出色,盡管擁有更多的內(nèi)存帶寬和更多的計(jì)算吞吐量來(lái)支持這一點(diǎn)。
但這顯然不適用于計(jì)算 GPU,因?yàn)樗鼈円呀?jīng)朝著相反的方向發(fā)展。H100 是一款以相對(duì)較低的時(shí)鐘運(yùn)行的超寬 GPU,它強(qiáng)調(diào)每瓦性能而不是絕對(duì)性能。1755 MHz 是 Pascal 的典型頻率,該架構(gòu)是七年前推出的。與最新的客戶端 GPU 相比,緩存容量和延遲表現(xiàn)一般。與此同時(shí),英偉達(dá)并沒(méi)有犧牲帶寬。在帶寬方面,H100 的 L2 并不落后于客戶端 GPU。L2 之后,由于巨大的 HBM 配置,VRAM 帶寬變得巨大。H100 與 A100 和 AMD 的 CDNA GPU 一樣,旨在運(yùn)行大型、長(zhǎng)時(shí)間運(yùn)行的作業(yè)。基于對(duì) VRAM 帶寬而非緩存容量的重視,這些作業(yè)可能屬于這樣的類別:如果您無(wú)法使用幾十兆字節(jié)的緩存捕獲訪問(wèn)模式,
H100 在 SM 級(jí)別上也有別于客戶端設(shè)計(jì)。用于 L1 或共享內(nèi)存的更多內(nèi)存意味著精心設(shè)計(jì)的程序可以將大量數(shù)據(jù)保留在非常靠近執(zhí)行單元的位置。在 H100 的 144 個(gè)物理 SM 中,有 36.8 MB 的 L1 和共享內(nèi)存容量,這使得芯片面積投資顯著。Nvidia 還使用 SM 區(qū)域來(lái)跟蹤飛行中的更多扭曲,以應(yīng)對(duì)更高的 L1 未命中延遲。H100 可以跟蹤每個(gè) SM 64 個(gè)扭曲,而客戶端 Ampere 和 Ada Lovelace 則為 48 個(gè)。額外的 SM 區(qū)域用于使 FP32、FP64 和張量吞吐量加倍。
客戶端 GPU 繼續(xù)提供合理的計(jì)算能力,如果您足夠討厭自己,數(shù)據(jù)中心 GPU可能會(huì)被迫渲染圖形。但在可預(yù)見(jiàn)的未來(lái),面向計(jì)算和圖形的架構(gòu)可能會(huì)繼續(xù)分化。Ada Lovelace 和 H100 有很多差異,即使它們基于相似的基礎(chǔ)。在 AMD 方面,RDNA 和 CDNA 也繼續(xù)存在分歧,盡管兩者的 ISA 根源都可以追溯到古老的 GCN 架構(gòu)。這種分歧是很自然的,因?yàn)楣に嚬?jié)點(diǎn)進(jìn)展減慢,每個(gè)人都試圖專業(yè)化以充分利用每個(gè)晶體管。
審核編輯:湯梓紅
-
控制器
+關(guān)注
關(guān)注
112文章
16389瀏覽量
178440 -
NVIDIA
+關(guān)注
關(guān)注
14文章
4999瀏覽量
103223 -
gpu
+關(guān)注
關(guān)注
28文章
4747瀏覽量
129020 -
帶寬
+關(guān)注
關(guān)注
3文章
938瀏覽量
40961 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3032瀏覽量
74121
原文標(biāo)題:Nvidia 的 H100:有趣的 L2 和大量帶寬
文章出處:【微信號(hào):IC大家談,微信公眾號(hào):IC大家談】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論