HBM和DDR哪個延遲高?
HBM比DDR的帶寬高,大家沒有異議。
但是HBM是不是比DDR的延遲低?
比DDR內存快得多?
那可不一定!
有人做過實驗,
我們就盤點一下高性能計算里的內存那點事。
阿貢國家實驗室的超級計算機Aurora恰好配用了兩種內存,他們對這兩種內存做了一個測試。
通過一系列的測試,告訴我們 HBM 和 DDR 在 Aurora 上各自適合干什么,以及怎么調整配置才能達到最優性能。
超級計算機Aurora的英特爾至強 Max CPU,集成了兩種內存:一種是老伙計 DDR5,另一種是新秀 HBM(高帶寬內存)。
這兩種內存各有各的脾氣,性能、延遲、容量都不一樣,要怎么用才能把這臺超級電腦的性能榨干。
咱們先從硬件架構說起。Aurora 的計算節點,也就是所謂的“計算刀片”,核心是兩顆英特爾至強 Max 9470C CPU,
這玩意兒代號叫“Sapphire Rapids”(SPR)。
每顆 CPU 都掛著 HBM 和 DDR5 兩種內存。
HBM (High Bandwidth Memory): 顧名思義,高帶寬內存。它就像個短跑健將,帶寬特別高,但容量小,延遲也相對高一點。每個 CPU 插槽有 4 塊 HBM,總共 128GB 的 CPU HBM 內存,理論峰值帶寬能達到 1.43 TB/s。
DDR5: 這就是我們的老朋友了,DDR5 內存。它是個長跑選手,容量大、延遲低,但是帶寬不如 HBM 那么爆炸。每個 CPU 插槽有 8 個 DDR5 內存通道,總容量達到了 1024 GB,峰值帶寬 0.28 TB/s。
所以說,這兩種內存就像是 CPU 的左右護法,一個擅長速度,一個擅長耐力。
如何根據應用特點,合理地分配工作給它們,就是這篇論文要解決的核心問題。

英特爾至強 Max CPU 提供了兩種內存模式和兩種集群模式,它們可以兩兩組合,形成四種不同的配置,就像是給 CPU 穿上了四套不同的“作戰服”。

1. 內存模式 (Memory Modes):
Flat Mode (平面模式): 在這個模式下,HBM 和 DDR 被操作系統看作是兩個獨立的內存空間(也就是兩個不同的 NUMA 節點)。你想用 HBM,就得明確告訴系統,把數據放進 HBM 里。這種模式下,如果你的應用內存占用能塞進 HBM 的容量里,那就能把 HBM 的高帶寬優勢發揮到極致。
Cache Mode (緩存模式): 這個模式就簡單粗暴多了。HBM 直接當成了 DDR 的緩存。操作系統和應用只看到 DDR 這一種內存,HBM 在后臺默默地給 DDR 提供高速緩存。這種模式對應用來說是透明的,不需要做任何改動,特別適合那些內存占用超過 HBM 容量的應用。
2. 集群模式 (Clustering Modes):
Quad Mode (四方模式): 在這個模式下,整個 CPU 插槽被看作是一個單獨的 NUMA 節點。所有核心都能共享訪問所有的 HBM 和 DDR 內存。這就像一個大家庭,大家資源共享,沒有隔閡。它適合那些不具備 NUMA 感知能力的應用,比如用 OpenMP 跑的應用。
SNC4 Mode (四象限模式): 這個模式下,一個 CPU 插槽被分成四個獨立的“象限”,每個象限都有自己的核心和對應的內存。這就像把一個大家庭分成了四個小家庭,每個小家庭有自己的資源。這么做的好處是,可以提高內存的局部性,降低延遲,提高帶寬。它特別適合那些 NUMA 感知型應用,比如用 MPI 跑的應用。
把這四種模式排列組合一下,就有了
Flat/Quad、Flat/SNC4、Cache/Quad、Cache/SNC4 這四種配置。
實驗怎么做?
為了搞清楚這四種配置到底有啥區別,作者們在 Aurora 超算上做了兩類實驗:
1:微基準測試 (Microbenchmarks): 這類測試主要關注系統層面的性能指標,比如:
內存帶寬和延遲:
用 STREAM 和 Intel Memory Latency Checker 這兩個工具,直接測試 HBM 和 DDR 在不同模式下的帶寬和延遲表現
測試 CPU 和 GPU 之間的數據傳輸速度。因為 PCIe 傳輸也依賴 CPU 內存的讀寫,所以內存的性能直接影響了 PCIe 的帶寬。
MPI 通信帶寬:
用 OSU Benchmarks 測試不同配置下的 MPI 通信速度,看看內存和集群模式對節點間通信有沒有影響。
2:HPC 應用測試: 光看系統指標沒啥用,還得看真實的應用表現。作者們選了三個有代表性的 HPC 應用來測試:
HACC (宇宙學模擬): 這是一個典型的“帶寬密集型”應用,對內存帶寬要求很高。
QMCPACK (量子蒙特卡羅模擬): 這個應用對內存延遲很敏感,需要頻繁、小規模的內存訪問。
BFS (廣度優先搜索): 這個應用對內存容量要求很高,因為它的數據(圖)可能非常大,超過 HBM 的容量。
實驗結果,老哥給你捋一捋
內存帶寬:

HBM vs. DDR: HBM 的帶寬遠高于 DDR。在 SNC4-Flat 模式下,HBM 跑出了最高的 STREAM 帶寬。
SNC4 vs. Quad: SNC4 模式下的帶寬總是比 Quad 模式高,而且延遲也更低。這說明把 CPU 分成小象限,確實能提高內存局部性。
但是,在延遲方面,就不一樣了。
帶HBM的至強Max CPU(代號“Sapphire Rapids”,SPR),跟DDR5內存一起測試,
看看不同內存配置和模式下,HPC應用到底跑得怎么樣
DDR(DDR5)的空載延遲(idle latency)確實比HBM低 。
Quad模式下DDR是112.9ns,SNC4模式下DDR是96.3ns,
而HBM則分別是134.9ns和121.1ns 。

但是!
這“低延遲”有個前提——“低內存訪問負載” 。
一旦負載上來,DDR的延遲就蹭蹭往上漲,效率直線下降 。
這說明DDR更適合那種“小而頻繁”的內存訪問,
而HBM則更適合“大塊頭、持續性”的數據傳輸 。

所以,如果是大帶寬數據的延遲,HBM能降低。
如果是,小而頻繁訪問,比如一個load或者store,HBM甚至能升高。
所以,在內存訪問負載較低時,DDR 的延遲表現更好,更適合處理小而頻繁的內存請求。
但當負載增加后,DDR 的延遲迅速飆升,而 HBM 憑借高帶寬優勢,能保持更低的延遲,更適合處理大量數據傳輸。
沒有“一招鮮,吃遍天”的配置。 內存系統和配置的選擇,完全取決于你的應用特性。
如果你的應用是“帶寬密集型”,比如 HACC,那就選 HBM,而且最好是 SNC4-Flat 模式,因為它的帶寬最高。
如果你的應用瓶頸在 CPU-GPU PCIe 帶寬上,那就優先選擇 Quad 集群模式,并把內存分配給 HBM。
如果你的應用對內存延遲特別敏感,需要頻繁進行小數據量的內存訪問,比如混合模式下的 QMCPACK,DDR 憑借其低延遲優勢,反而表現更好。
Aurora這臺價值數億美金的“怪獸”用實戰告訴我們:頂級硬件只是基礎,“量體裁衣”的配置才是性能封神的關鍵! HBM不是神,DDR也沒過時,用對了場景都是利器。
下次搞超算優化,記得先摸清你應用的“內存胃口”,再下“模式猛藥”!覺得老哥講得不錯?點贊轉發走起!下期想看啥硬核分析,評論區見!
引用資料
《Performance Analysis of HPC applications on the Aurora Supercomputer: Exploring the Impact of HBM-Enabled Intel Xeon Max CPU》
我是歪睿老哥,一個喜歡寫作的架構師,著有《芯術:算力驅動架構變革》一書,講述算力芯片在個人計算,光影計算,人工智能,云計算,移動計算等不同算力場景下,CPU, GPU, NPU, TPU等芯片架構等相愛相殺的發展歷程和技術架構。
如果你覺得本文還不錯,請大家點贊,在看,分享,并且設為星標,公眾號后臺能及時推送給大家。