# DAK：面向LLM推理的直接访问式GPU内存卸载框架

> DAK框架通过直接GPU访问远程内存替代预取策略，利用Tensor Memory Accelerator实现异步权重和KV缓存加载，在NVLink-C2C上实现3倍性能提升。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-28T19:30:47.000Z
- 最近活动: 2026-04-30T02:52:35.037Z
- 热度: 119.6
- 关键词: GPU memory offloading, LLM inference, Tensor Memory Accelerator, NVLink-C2C, tiered memory, KV cache, direct memory access, inference optimization
- 页面链接: https://www.zingnex.cn/forum/thread/dak-llmgpu
- Canonical: https://www.zingnex.cn/forum/thread/dak-llmgpu
- Markdown 来源: ingested_event

---

## LLM推理的内存瓶颈\n\n大语言模型的推理部署面临一个根本性的硬件约束：**GPU内存容量和带宽**。随着模型规模从数十亿参数增长到数千亿甚至万亿级别，即使是最先进的GPU（如H100、B200）也无法在单卡内容纳完整的模型权重和KV缓存。\n\n分层内存架构（Tiered Memory Architecture）为解决这一问题提供了思路：将部分数据卸载到容量更大但速度较慢的远程内存层（如CPU内存、CXL内存池），让GPU在需要时访问这些数据。然而，现有的内存卸载框架普遍采用**预取（prefetching）策略**——提前将数据从远程内存复制到本地GPU HBM，然后再进行计算。\n\n这种看似合理的设计实际上存在严重的效率问题。\n\n## 预取策略的三大隐患\n\n预取模式虽然简单直观，但在实际部署中引入了三个关键问题：\n\n### HBM争用\n\nGPU的高带宽内存（HBM）是稀缺资源。预取操作需要占用HBM带宽来接收远程数据，而计算操作同样需要HBM带宽来读取权重和激活值。两者竞争同一资源，导致**带宽碎片化**和**利用率下降**。\n\n### 内存容量浪费\n\n预取需要提前将数据加载到HBM中，这意味着必须预留足够的缓冲空间。对于参数规模巨大的LLM，这种预留会显著减少可用于KV缓存的空间，限制了可处理的序列长度和并发批量大小。\n\n### 流水线气泡\n\n预取和计算通常是串行执行的：先等待数据预取完成，然后执行计算。这种同步模式在流水线中引入了**空闲等待时间（bubble）**，降低了整体吞吐量。即使采用复杂的调度策略，预取延迟的不可预测性也使得流水线优化变得困难。\n\n## 直接访问：绕过预取的新思路\n\nDAK（Direct-Access-Enabled GPU Memory Offloading）提出了一个根本性的架构转变：**让GPU直接访问远程内存，而不是预取到本地**。\n\n这一思路的直觉很简单：现代互连技术（如NVLink-C2C、PCIe 5.0/6.0、CXL）已经能够提供相当可观的带宽。如果GPU可以在计算过程中直接读取远程内存，就无需占用宝贵的HBM资源和计算时间来进行预取。\n\n然而，实现这一愿景面临一个关键挑战：**如何高效地将远程数据送入GPU计算单元？**\n\n## Tensor Memory Accelerator的重新利用\n\nDAK的解决方案是**重新利用Tensor Memory Accelerator（TMA）**。TMA是NVIDIA Hopper及更新架构中引入的专用硬件单元，原本设计用于在全局内存和共享内存（SMEM）之间高效传输张量数据。\n\nDAK的创新在于将TMA的传输源从全局内存扩展到**远程内存**。具体而言：\n\n1. **异步加载**：TMA可以在GPU计算单元执行其他操作的同时，异步地将远程内存中的权重和KV缓存直接加载到SMEM\n2. **绕过HBM**：数据从远程内存直接进入SMEM，无需经过HBM中转，避免了HBM争用\n3. **计算重叠**：加载操作与计算完全重叠，消除了流水线气泡\n\n这种设计使得GPU可以在执行矩阵乘法的同时，让TMA在后台准备下一层所需的权重数据。\n\n## 贪婪算法：最优卸载比例决策\n\n直接访问虽然避免了预取的弊端，但远程内存的访问延迟仍然高于本地HBM。因此，**并非所有数据都应该卸载到远程内存**。\n\nDAK引入了一个**贪婪算法**来确定每个算子的最优卸载比例。该算法考虑以下因素：\n\n- **算子计算强度**：计算密集型算子（如大矩阵乘法）可以容忍更高的远程访问延迟\n- **数据复用模式**：频繁复用的数据应保留在HBM中，一次性访问的数据适合卸载\n- **互连带宽**：根据NVLink-C2C或PCIe的实际带宽动态调整策略\n\n通过在每个算子级别做出精细的卸载决策，DAK在最大化远程内存利用率的同时，最小化对性能的影响。\n\n## 拥塞控制与多播优化\n\n直接访问模式还面临一个系统级挑战：**互连拥塞**。当多个GPU同时访问远程内存时，互连带宽可能成为瓶颈，导致延迟飙升。\n\nDAK通过两种机制解决这一问题：\n\n### 主动拥塞控制\n\n系统实时监控互连利用率，当检测到拥塞风险时，动态调整各GPU的访问速率。这种反馈机制确保互连带宽被公平而高效地分配。\n\n### TMA多播\n\n在数据并行场景下，多个GPU可能需要访问相同的权重数据（如推理中的张量并行）。DAK利用TMA的多播能力，让单次远程读取同时服务多个GPU，**消除重复读取带来的带宽浪费**。\n\n## 性能评估：接近理论最优\n\n论文在多种硬件配置上评估了DAK的性能：\n\n### NVLink-C2C系统\n\n在配备NVLink-C2C互连的系统上（如Grace Hopper超级芯片），DAK实现了相比现有内存卸载基线**最高3倍的性能提升**。这一结果接近理论上的带宽聚合极限，证明了直接访问架构的高效性。\n\n### PCIe系统\n\n在传统的PCIe互连系统上，DAK仍然实现了**1.8倍的加速**。考虑到PCIe带宽远低于NVLink-C2C，这一结果尤为可贵，说明直接访问策略即使在带宽受限的环境下仍能带来显著收益。\n\n### 带宽利用率分析\n\n深入分析显示，DAK能够将**聚合系统带宽（GPU HBM + 远程内存带宽）的利用率提升到接近理论上限**。相比之下，预取策略由于HBM争用和流水线气泡，实际利用率往往不足50%。\n\n## 对LLM推理部署的启示\n\nDAK的研究成果对实际的LLM推理系统部署具有重要指导意义：\n\n### 内存容量扩展的新范式\n\n传统上，部署超大模型需要购买更多高端GPU或采用复杂的模型并行策略。DAK展示了一条新路径：**通过高效利用CPU内存和CXL内存池，可以用更少的GPU支持更大的模型**。这对于成本敏感的推理服务提供商尤其有价值。\n\n### 长序列处理的突破\n\nKV缓存是长序列推理的内存瓶颈。DAK的直接访问模式允许将大部分KV缓存保留在远程内存中，仅在计算时动态加载所需部分。这使得**处理数万甚至数十万token的长序列**成为可能，而无需昂贵的GPU内存扩容。\n\n### 异构计算的优化方向\n\nDAK的成功验证了异构计算（GPU+CPU+专用内存）的潜力。未来的推理系统可能会采用更激进的内存分层策略，将热数据保留在HBM、温数据放在CXL内存、冷数据存储在SSD，通过类似DAK的机制实现无缝访问。\n\n## 局限与未来方向\n\n论文也坦诚讨论了DAK的局限性：\n\n1. **硬件依赖**：TMA是Hopper架构的特性，旧款GPU无法受益\n2. **软件栈复杂性**：直接访问需要与CUDA内核深度集成，增加了开发难度\n3. **功耗考量**：远程内存访问的能耗特性需要进一步研究\n\n未来的研究方向包括：\n- 将DAK扩展到多节点场景，利用RDMA网络访问远端服务器内存\n- 结合预测性加载策略，在保持直接访问优势的同时进一步优化延迟\n- 探索CXL 3.0的内存池化特性与DAK的协同优化\n\n## 结语\n\nDAK代表了LLM推理优化领域的一个重要进展。它挑战了"预取是内存卸载唯一选择"的固有观念，展示了直接访问架构在消除HBM争用、提升带宽利用率方面的巨大潜力。\n\n对于正在规划大规模推理基础设施的团队而言，DAK提供了一个值得认真考虑的架构选项。在GPU内存成本持续高企的背景下，通过软件创新充分挖掘分层内存的潜力，可能是实现成本效益最优的关键路径。
