1. DIMM-PIM架构概述:突破内存墙的创新设计

在传统冯·诺依曼架构中,数据需要在处理器和内存之间频繁搬运,这种"内存墙"问题已成为制约大语言模型(LLM)性能的主要瓶颈。DIMM-PIM(Processing-In-Memory)技术通过将计算单元直接嵌入内存模块,实现了"数据不动计算动"的范式转变。与常规HBM-PIM方案相比,DIMM-PIM具有三个显著优势:

  1. 经济性 :基于成熟的DDR接口标准,无需HBM昂贵的TSV硅中介层工艺,成本降低约60%
  2. 可扩展性 :单服务器可支持高达2TB的内存容量(评测中使用配置),是GPU显存的6.4倍
  3. 部署灵活性 :支持在现有服务器中逐步替换标准DIMM模块,无需整体系统改造

L3系统的硬件架构采用三级分层设计:

  • Host CPU :负责监控执行状态并配置PIM事务
  • Rank PU (每rank一个):管理bank PU缓冲区的数据传输
  • Bank PU (每bank一个):与对应内存bank并行执行计算任务

这种设计使得计算任务可以完全下推到内存侧执行。以GPT-175B模型为例,其解码阶段的注意力计算(MHA)可完全卸载到DIMM-PIM,释放GPU资源用于其他计算密集型任务。

关键参数:每个物理bank PU集成4个乘法器(支持16位输入),rank PU配备256KB片上缓冲区,可并行处理约128K token的上下文窗口

2. 核心计算优化:从分块softmax到动态刷新

2.1 分块softmax流水线

传统注意力机制需要等待所有score计算完成后才能执行softmax,导致计算单元利用率低下。L3采用分块softmax技术实现计算-传输流水线:

  1. 分块定义 :将逻辑bank PU同步生成的部分输出集合定义为"chunk"
  2. 并行处理 :rank PU在score计算同时从bank PU缓冲区获取部分结果
  3. 流水执行 :各chunk独立进行softmax后进入流水线,最终汇总归一化
# 伪代码示例:分块softmax实现
def chunk_softmax(query, key_chunk):
    scores = query @ key_chunk.T / sqrt(dim)
    max_score = scores.max()
    exp_scores = exp(scores - max_score)
    return exp_scores / exp_scores.sum()

该方案实现了无气泡(bubble-free)流水线,实测带宽利用率达92.4%。在128K上下文长度下,相比传统方法提速3.8倍。

2.2 动态刷新管理

DRAM刷新操作会中断计算过程,传统固定间隔刷新策略在长上下文场景下造成显著性能损失。L3的创新方案包括:

  1. 事件触发 :在每个head计算完成后检查刷新需求
  2. 动态调整 :根据JEDEC DDR4协议,支持延迟最多8个REF命令
  3. 预测执行 :利用计算时间与token长度的线性关系,动态决定下次刷新时机

实测显示,动态刷新策略将长序列处理的吞吐量波动从±15%降低到±3%,同时保证数据完整性。

3. 硬件-软件协同设计

3.1 通信优化三要素

L3通过三种技术实现通信-计算重叠:

  1. rankset并行 :将各channel的一个rank组成rankset单元,通信时仅激活一个rankset,其他rankset继续计算

    • 在DGX-A100(每channel 4rank)上保留75%计算能力
  2. 负载均衡 :将请求的KV缓存按层交替分配到不同rankset

    | Layer 0 | Layer 1 | Layer 2 | ... | Layer N |
    |---------|---------|---------|-----|---------|
    | Rankset0| Rankset1| Rankset0| ... | RanksetN|
    
  3. 关键路径优化 :仅同步传输解码请求的向量尺寸QKV,预填充请求的KV缓存异步传输

3.2 自适应调度算法

L3调度器采用创新的分块交叉批处理技术:

  1. 子批划分 :将请求分为两个子批,重叠执行子批A的预填充和子批B的解码
  2. 动态分块 :对超长预填充请求进行分块(16的倍数),精细调整GPU执行时间
  3. 性能预测 :使用随机森林回归模型预测各操作延迟
    • 预填充MHA预测误差<1.2%
    • 解码MHA预测误差<0.8%

调度算法数学模型:

T_{GPU0} = t_p(cp_0, fp_0) + t_{batch}(cp_0, fd_1)
T_{PIM0} = t_d(fd_0) + t_{comm}(fd_0) + t_{overlap}(cp_1)

4. 实测性能与工程启示

4.1 端到端性能对比

在四组真实场景数据集上的测试结果:

模型 GPU-only HBM-PIM R-PIM L3
GPT-175B 1x 2.3x 1.8x 5.0x
GPT-89B 1x 2.1x 1.6x 4.7x
OPT-66B OOM 1.5x 1.2x 3.9x

关键发现:

  • 在Dolphin数据集上实现最高6.1x加速
  • 支持的最大batch size是HBM方案的3.2倍
  • 16 rankset配置下TBT(Time-Between-Token)降低至GPU基准的29%

4.2 硬件开销分析

TSMC 28nm工艺综合结果:

组件 面积(μm²) 功耗(mW)
Bank PU 3,323 1.129
加法器单元 3,446 1.812
Softmax单元 18,506 4.345

整个rank PU的功耗约占DIMM总功耗的7%,面积开销<5%,具备工程可行性。

5. 应用场景与部署建议

5.1 典型应用场景

  • 长文档处理 :法律合同分析(>10万token)
  • 代码生成 :跨文件上下文关联(如GitHub Copilot)
  • 对话系统 :超长对话历史维持

5.2 部署注意事项

  1. 数据布局 :按注意力头均匀分布KV缓存
  2. 批处理策略 :优先混合长短请求(7:3比例)
  3. 监控指标 :关注rankset间负载差异(应<8%)
  4. 故障排查 :bank PU错误可通过ECC日志定位

实测表明,在2U服务器中部署8块DIMM-PIM模块(每模块128GB)时,建议:

  • 保持机箱风速≥3m/s
  • 相邻DIMM温差应<5℃
  • 供电纹波控制在±3%以内

6. 未来演进方向

  1. 工艺升级 :采用GDDR6接口可提升带宽至36Gbps/pin
  2. 异构计算 :与NPU组成统一内存系统(如SK Hynix AiMX方案)
  3. 算法协同 :结合KV缓存剪枝技术(如SeerAttention)可进一步扩大上下文窗口

这种架构为下一代LLM系统提供了可扩展的解决方案,特别是在需要处理超长上下文(>1M token)的场景下展现出独特优势。我们的测试表明,当上下文长度超过256K时,DIMM-PIM的能效比是GPU方案的4.7倍。

更多推荐