晶片層 開放閱讀

共享記憶體

Shared Memory

概念 ID
shared-memory
更新時間
2026-05-29
來源數量
待補

共享記憶體

3 秒看懂

共享記憶體是多個處理器核心或執行緒可 直接訪問的同一物理記憶體區域,避免了資料複製和訊息傳遞開銷。在 AI 場景中,它是 單機多卡、多 CPU 核心、GPU 片上儲存協作 的底層基石,直接決定訓練/推論的資料交換效率和可擴充套件性。

3 分鐘產業解釋

共享記憶體在 AI 系統中至少覆蓋三個層級:

  1. CPU 共享記憶體(多核/多路):同一伺服器內所有 CPU 可通過統一實體地址空間訪問記憶體,但現代 NUMA 架構下存在跨節點延遲差異。
  2. GPU 共享記憶體(片上 SRAM):CUDA 中每個 SM 配有低延遲共享記憶體,用於執行緒塊內資料共享,是手寫高效能 Kernel 的核心最佳化物件。
  3. 系統級共享記憶體(多卡/PIM):如 IBM Power 平台的 CAPI、Grace Hopper 的 NVLink-C2C 實現 CPU-GPU 記憶體一致性共享,或新興的 CXL 記憶體池化,讓多裝置直接訪問同一片記憶體區域。

產業關鍵矛盾在於:延遲-頻寬-容量-一致性 四維權衡。共享記憶體越“真”,程式設計越簡單,但硬體代價和擴充套件性越受限;越“偽”(訊息傳遞/零複製抽象),效能可擴充套件但軟體複雜度陡增。當前趨勢是在算力叢集中通過高速互聯(NVLink/InfiniBand/PCIe 5.0)建置 邏輯共享記憶體,以兼顧程式設計效率與規模化訓練。

15 分鐘專家深入

從分散式並行策略看,共享記憶體直接影響:

  • 資料並行:若模型可在一張 GPU 完整放下,則資料並行和梯度 AllReduce 均在節點間進行,與共享記憶體無關;但當模型分片到同一節點內多張 GPU 時,可通過 GPU 間 NVLink 實現的共享記憶體空間加速梯度同步。
  • 模型並行/張量並行:Megatron-LM 式張量並行依賴每次前向/反向計算中頻繁的 Sync 操作。若採用節點內 NVLink 連線的 GPU 共同構成共享記憶體域,AllReduce/ReduceScatter 操作可實現接近記憶體頻寬的速度,極大地降低通訊開銷。
  • MoE 路由:專家並行中的 All-to-All 通訊更依賴節點間網路,但若專家部分部署在共享記憶體節點內,可用共享記憶體充當路由緩衝,減少資料搬移。

在單 GPU 內部,共享記憶體作為可程式設計 Cache 的使用是極致效能最佳化的關鍵:FlashAttention 正是通過把注意力矩陣載入到共享記憶體分塊計算,繞開了 HBM 頻寬瓶頸。共享記憶體的容量(每 SM 幾十~百餘 KB)與訪問延遲(約 20-30 個時鐘週期)直接決定了分塊演算法的顆粒度。

技術原理

共享記憶體的硬體基礎

對稱多處理 (SMP):傳統多路 CPU,所有核平等訪問同一總線上的記憶體。NUMA 打破這一假設,引入本地/遠端記憶體概念,訪問延遲差異可達 1.5~3 倍[定性,具體倍數依賴體系架構]。作業系統和記憶體分配器通過 numactl、頁遷移等方式最佳化親和性,對上層盡力呈現“偽共享”。

快取一致性協議(如 MESI、MOESI):硬體保證當多個處理器快取同一記憶體塊時,寫操作最終被所有核可見。大規模共享記憶體系統中,快取一致性流量隨著核心數增長成為效能瓶頸,直接限制 CPU 記憶體共享的可擴充套件上限——典型場景是千核以上 CPU 的 HPC 系統退化為訊息傳遞。

GPU 共享記憶體 (on-chip SRAM):按 SM(流式多處理器)分佈,屬於同一執行緒塊的所有執行緒可訪問。物理上常由多個儲存體組成,支援無衝突的高併發訪問。CUDA 中通過 __shared__ 修飾變數宣告,生命週期與塊同名,是顯式管理的 scratchpad,不同於 L1 快取(自動管理)。

跨裝置共享記憶體:NVIDIA NVLink、CXL 3.0 等提供裝置間記憶體語義。例如,Hopper 架構通過 NVSwitch 可以使 8 張 GPU 按統一地址空間訪問彼此的 HBM,允許cudaMemcpyAsync 直接 Peer-to-Peer 傳輸而不經過 CPU 記憶體。CXL.mem 協議更允許 CPU 與外設的直連共享,用於池化記憶體。

程式設計抽象

多執行緒(Pthreads/OpenMP):利用共享記憶體進行執行緒間同步(互斥鎖/條件變數/讀寫鎖)和資料共享。資料競爭(data race)需靠原子操作或鎖解決。
分散式共享記憶體(DSM):軟體層模擬跨節點共享記憶體,如 Apache Ignite、Hazelcast,但一致性延遲大,在 AI 場景很少用於訓練,多見於推論快取。
統一虛擬地址 (UVA):CUDA 提供單一指標訪問不同裝置的記憶體,底層仍可能涉及 page fault 驅動的遷移。

關鍵引數與量化

  • CPU 共享記憶體頻寬:Intel Sapphire Rapids 雙路系統理論 DDR5-4800 峰值為 ~307 GB/s 每 socket,但跨 socket 延時約為本地訪問的 2 倍[未充分揭露,典型系統評估]。
  • GPU 共享記憶體 SM 容量:主流架構為 128 KB / SM(可配置為部分 L1 快取), 頻寬約為數十 TB/s 級別(內部 SRAM),遠超 HBM。
  • 跨 GPU 共享記憶體頻寬:NVLink 4.0 單鏈路雙向 100 GB/s,DGX H100 8 卡全互聯理論總頻寬 900 GB/s(雙向),實際可用頻寬取決於負載和通訊模式[輝達公開資訊]。

技術演進史

  • 1980 年代:多處理器共享匯流排 SMP 成為小型機主流,開創多執行緒程式設計。
  • 1990 年代:NUMA 在大型 UNIX 伺服器中普及,快取一致性協議複雜化。
  • 2000 年代:多核 CPU 興起,共享記憶體程式設計(POSIX 執行緒、OpenMP)成為主流。HPC 領域逐步轉向 MPI+OpenMP 混合程式設計,共享記憶體侷限於節點內。
  • 2007 年 CUDA 推出:引入 GPU 執行緒塊級共享記憶體,釋放可程式設計 scratchpad 的能力。
  • 2010 年代中期:NVIDIA NVLink 實現 GPU 間共享記憶體,減少 PCIe 瓶頸。
  • 2020 年代:CXL 聯盟推動跨 CPU 和裝置的記憶體共享與池化,成為資料中心資源解耦的候選技術。Grace Hopper 的 NVLink-C2C 進一步整合 CPU-GPU 記憶體一致性域。
  • 2023-2024:大型模型訓練推動超節點設計,如 NVIDIA GB200 NVL72 通過 NVLink 網路建置 72 GPU 共享記憶體域([公開資訊]),在邏輯上抹除單卡記憶體邊界。

技術路線對比(量化表)

維度CPU SMP 共享GPU 片上共享記憶體跨 GPU 共享 (NVLink)跨節點共享 (CXL/DSM)
延遲~100 ns (本地)~10-30 時鐘週期 (ns 級)sub-μs 級別μs 至 ms 級別
頻寬100-300 GB/s (每 socket)數 TB/s900 GB/s (8 GPU)數十至數百 GB/s (單鏈路)
一致性硬體 MESI無(顯式管理)軟體協議/硬體 NUMA混合
容量上限TB 級數十 MB(總和)數十到數百 GB(HBM 總和)PB 級(池化)
典型應用多執行緒推論服務FlashAttention Kernel張量並行、專家並行記憶體膨脹、冷資料共享
成熟度成熟成熟中等,需架構適配早期,生態建置中

資料來源:根據各廠商公開架構規格及社群評測估算[未充分揭露具體測試條件]。

上下游

上游:底層硬體與協議

  • CPU 微架構:核心數、LLC 容量、UPI/Infinity Fabric 互連速率直接決定 NUMA 節點間共享效率。
  • GPU 架構:SM 數量和每 SM 的共享記憶體大小(如 128 KB)影響 Kernel 設計的塊大小上限。
  • 互連技術:NVLink、NVSwitch、InfiniBand NDR/GDR、CXL 控制器、PCIe 5.0/6.0 交換晶片。
  • 一致性協議晶片:如 Astera Labs 的 PCIe/CXL 交換,用於記憶體池化。

下游:應用與架構

  • 分散式訓練架構:PyTorch FSDP、DeepSpeed ZeRO 通過資料分片+適時重配實現記憶體疊加;它們更依賴節點內共享頻寬或顯式的通訊原語。Megatron-LM 通過張量/流水線並行降低對共享記憶體的直接需求,但 NVLink 共享域可提升同步操作效率。
  • 推論引擎:如 TensorRT-LLM 利用共享記憶體快取 KV 塊,避免 HBM→SM 重複搬動。
  • 資料庫/特徵儲存:共享記憶體多用於程序間快取(如 Redis、共享記憶體佇列),支援 GPU 直連訪問(GPUDirect Storage/Shared Memory)。
  • 資源排程器:Kubernetes 配合裝置外掛感知 NUMA 拓撲、GPU 間 NVLink 拓撲,以最佳共享記憶體拓撲部署 Pod。

關鍵指標

  • 記憶體頻寬利用率:實際吞吐 / 理論峰值。高效能 Kernel 通常需達到 80% 以上。
  • NUMA 親和性:本地記憶體訪問比例,若低於 90% 效能惡化[估算值]。
  • 同步開銷:鎖競爭導致的 CPU 利用率損失,或 GPU 上 __syncthreads() 帶來的流水線氣泡。
  • 容量碎片:共享記憶體中未被利用的預留空間,影響併發性(如每個執行緒塊的共享記憶體用量決定 SM 的 Occupancy)。
  • 一致性流量佔比:匯流排中快取一致性協議的報文比例,過高可導致有效頻寬驟降。

供需與市場資料

共享記憶體作為基礎能力無法單獨剝離為產品,市場資料體現於支撐共享記憶體的硬體/軟體交付:

  • 高效能伺服器 CPU 市場:支援更多核心、更大快取和更高速 UPI 的處理器對共享記憶體應用支撐能力更強。2023 年全球資料中心 CPU 出貨金額約 600 億美元[參考 Mercury Research],大型雲端廠商對 NUMA 最佳化例項需求旺盛。
  • NVLink/NVSwitch 推動超節點:隨著大型模型引數逼近數萬億,跨 GPU 共享記憶體域的需求急增,NVSwitch 晶片成為 Blackwell 平台標配,該細分市場規模有望從 2024 年數十億美元向 2026 年百億美元攀升[行業估算,未充分揭露具體模型]。
  • CXL 生態:到 2027 年,CXL 附加記憶體模組及伺服器滲透率可能達到 20-30%,帶動記憶體共享與池化解決方案市場約 50 億美元[來自 Yole 等研究機構引用]。

代表公司與資本對映

  • NVIDIA:通過 NVLink/NVSwitch 和 GB200 建置超大規模共享 GPU 記憶體域,是當前 AI 訓練的核心壁壘。其 Grace-Hopper 的 C2C 一致性互聯向 CPU-GPU 共享記憶體延伸。
  • Intel/AMD:在伺服器 CPU 中強化 NUMA 效能和 CXL 支援,版面配置共享記憶體池化,同時通過 FPGA/SmartNIC 參與共享記憶體加速。
  • Astera Labs:專注 CXL/PCIe 交換晶片,解決記憶體共享中的訊號完整性和延遲問題,2024 年上市,被視作 CXL 賽道風向標。
  • Marvell/Broadcom:提供定製 ASIC 的資料中心互連控制器,支援 CXL 等物理層,使雲端廠商可自研共享記憶體架構。
  • 國內:燧原、寒武紀等 AI 晶片廠商在各自晶片內部實現類似共享記憶體(片上 SRAM),並嘗試多卡互聯記憶體共享,但目前規模較小。

資本對映層面,高記憶頻寬、低延遲共享記憶體是判斷 AI 系統公司方案競爭力的關鍵指標,產業研究通常追蹤 NVLink 代數、CXL 產品落地節奏。

投資邏輯

  1. 算力叢集規模擴大 → 互連頻寬 → 共享記憶體域價值增加:當單模型需要數百 GPU 協同,節點內 GPU 共享記憶體降低了整體梯度同步和專家路由開銷,使能更大 batch size 和更高的加速比。產業研究可追蹤高速互連晶片、交換晶片和合封光模組(如博通/AAOI)的產品驗證與營收揭露。
  2. 池化與存算分離:CXL 記憶體共享可降低 DRAM 總擁有成本,使 GPU/NPU 可直接訪問大容量擴容記憶體,有望催生新的記憶體硬體租賃模式(如記憶體即服務)。可觀察變數包括 CXL 控制器 IP、記憶體擴充套件卡廠商(如 Rambus、SK hynix 的 CMM)的客戶認證和出貨節奏。
  3. 對 GPU 供應商護城河的影響:NVIDIA 通過 NVLink 私有協議建置的強鎖定共享記憶體生態,可能因 CXL 等開放標準受到挑戰,但短期軟體相容性和生態系統視窗仍使其佔據優勢。分析重點是開放 vs 封閉路線的長期動態。
  4. 風險:共享記憶體一致性硬體複雜度極高,若 CXL 3.0/PCIe 6.0 等量產延遲,可能拖累大規模記憶體池化商用進度。同時,純演算法層面如 DeepSpeed ZeRO-Infinity 通過軟體虛擬化可能削弱對高效能共享記憶體的需求。

常見誤讀糾偏

  • 誤讀 1:“共享記憶體就是多執行緒隨便讀寫同一塊記憶體,不需要同步。”
    糾正:硬體保證了原子性(如對齊的 word 讀寫),但不保證可見性順序。不加鎖且未使用 memory fence 等同步手段會導致資料競爭和不可復現的計算錯誤。在 GPU 上,__shared__ 的記憶體需自行插入 __syncthreads() 以保證一致性。

  • 誤讀 2:“GPU 的共享記憶體和 CPU 的共享記憶體是一回事。”
    糾正:GPU 共享記憶體是每個 SM 私有的 SRAM,不可跨 SM 訪問;而 CPU 的共享記憶體是整個節點內所有核可見。GPU 程式設計中,只有在全域性記憶體(HBM)中進行原子操作才能跨執行緒塊通訊。

  • 誤讀 3:“有 NVLink 後,多 GPU 就等於一個大共享記憶體池,程式設計和單卡一樣。”
    糾正:NVLink 雖提供統一地址空間和 Peer-to-Peer 訪問,但頻寬和延遲仍然與本地 HBM 有顯著差異,且一致性協議往往只保證弱一致。直接當成 UMA 會導致效能陷阱。實際上 NCCL 等通訊庫仍依賴顯式複製和同步,並非透明使用。

  • 誤讀 4:“共享記憶體一定比訊息傳遞快。”
    糾正:在 NUMA 架構或裝置間,遠端共享記憶體訪問延遲可能遠高於非同步訊息傳遞的流水線隱藏延遲。合理方案常是節點內用共享記憶體,節點間用訊息傳遞(如 MPI + OpenMP),強求統一共享記憶體可能在特定場景下效能更差。

學習路徑

  1. 基礎篇:理解虛擬記憶體、頁表、快取一致性協議(《Computer Architecture: A Quantitative Approach》相關章節)。
  2. CUDA 共享記憶體最佳化:閱讀 CUDA C Programming Guide 中關於 Shared Memory 的部分,手寫矩陣乘法 kernel 最佳化(從全域性記憶體到共享記憶體分塊),使用 nvprof 分析 bank conflict。
  3. 分散式系統共享記憶體:研究現代 NUMA 作業系統實現(Linux numa/core affinity)、NUMA 感知記憶體分配。
  4. 高效能網路與記憶體語義:閱讀 GPUDirect RDMA、NVLink、CXL 規範摘要,理解不同共享範圍的效能特徵。
  5. 實戰 AI 架構:分析 Megatron-LM 的張量並行通訊模式(AllReduce)如何受益於 NVLink 共享記憶體,翻看 NCCL 拓撲檢測程式碼。用 PyTorch 復現 FlashAttention,關注 shared memory tile 大小的選取邏輯。

一句話總結

共享記憶體是 AI 系統中以“直接可見”換取“極致速度”的設計基石,其層次化實現(SM 內、GPU 間、節點內)正不斷被推高,但始終受制於一致性、容量和可擴充套件性的不可能三角。

延伸閱讀與來源

source: 公開揭露與公開資料整理 本頁僅用於產業鏈學習、資訊檢索和研究輔助;不構成投資建議,不預測漲跌,不提供買賣、部位或目標價建議。
完整概念頁 複盤 13 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型