- 简介大语言模型(LLM)工作负载推动了多分区GPU架构的发展,以实现计算与内存容量的可扩展性;然而,此类架构固有的非一致性内存访问(NUMA)特性以及分区间的通信开销,可能加剧资源争用、削弱数据局部性,从而导致内核执行延迟未达最优。为应对此挑战,我们系统分析了当前主流推理引擎中若干关键LLM内核的实现——涵盖权重投影(weight projection)、混合专家(mixture-of-experts)及多种注意力机制(attention variants)——进而对多分区GPU上的数据访问模式进行了全面刻画。首先,我们提出一种内存访问轨迹分析方法,用以精确提取工作组(workgroup)粒度的数据访问行为及其共享特征;随后,借助周期级仿真器(cycle-level simulator)定量评估上述行为对执行延迟的局部性影响。基于该分析框架,我们将LLM内核的操作数划分为三类跨工作组共享模式:全局共享(global)、部分共享(partial)和私有(private),并进一步指出:针对不同类别,所需的优化策略亦截然不同——从简单的工作组级内存绑定(per-workgroup pinning),到需兼顾子组(subgroup)结构的协同调度(subgroup-aware co-scheduling)。我们的研究发现凸显出:在多分区GPU上,亟需面向数据放置感知(placement-aware)的内核编程范式,以及更智能的硬件架构支持,以协同提升计算任务与数据的局部性。
-
- 图表
- 解决问题多分区GPU(如NVIDIA Hopper架构)在运行大语言模型(LLM)推理负载时,因非均匀内存访问(NUMA)特性与跨分区通信开销,导致关键内核(如注意力、MoE、权重投影)出现严重数据局部性退化和工作群组(workgroup)间内存争用,进而显著增加端到端延迟——这是一个随GPU硬件分区化演进而凸显的新系统级挑战,此前未被LLM系统社区系统性建模和量化。
- 关键思路提出基于内存迹(memory trace)的细粒度工作群组级数据访问分析方法,首次将LLM核心内核的operand划分为global/partial/private三类跨工作群组共享模式,并据此设计分层优化策略:从静态workgroup绑定(private)、子组感知协同调度(partial)到全局缓存/预取协同(global);核心新意在于将传统‘kernel-centric’编程范式转向‘placement-aware’软硬协同设计,强调数据位置即计算策略。
- 其它亮点① 使用cycle-accurate模拟器(扩展Accel-Sim)对真实LLM serving引擎(vLLM、Triton MoE kernel、FlashAttention变体)进行微架构级评估;② 基于实际trace分析发现:attention中QKV投影存在高比例partial sharing(~68% workgroups共享同一weight tile但非全部),而MoE top-2 gate引发剧烈跨分区all-to-all抖动;③ 未开源代码,但发布trace数据集(LLM-Kernel-Traces v1.0)及分类标注schema;④ 值得深入:子组(warp/subgroup)粒度的NUMA-aware调度器设计、编译器自动inject placement hints、以及partition-aware memory allocator。
- 1. 'Demystifying GPU Memory Bottlenecks in LLM Inference' (ASPLOS'24); 2. 'Triton: An Automatic Compiler and Scheduler for GPU Kernels' (OSDI'22); 3. 'Hopper: A Unified Memory Architecture for Multi-Partition GPUs' (ISCA'23); 4. 'vLLM: Easy, Fast and Cheap LLM Serving with PagedAttention' (OSDI'23); 5. 'MoE-LLM: System Implications of Mixture-of-Experts on Modern GPUs' (EuroSys'24)


提问交流