1. LLM 推理核心算子,GEMM、Attention(FlashAttention 系列)、RMSNorm、RoPE、KV Cache 的 GPU 实现原理如何?
请说明 LLM 推理核心算子(GEMM、Attention、RMSNorm、RoPE、KV Cache)的 GPU 实现原理?
- 掌握各算子的功能与计算特征
- 理解各算子如何适配 GPU 并行
- 理解 KV Cache 与注意力实现的关联
LLM 推理的核心算子包括:GEMM(矩阵乘),用于线性层与注意力投影,通过 tiling + 共享内存 + Tensor Core 实现高吞吐;Attention(FlashAttention 系列),用分块+在线 softmax 减少 HBM 读写,把注意力计算放到片上;RMSNorm,对激活做逐行归一化,是 elementwise 规约算子,可用并行规约实现;RoPE(旋转位置编码),把位置信息编码进 Q/K 向量,通过旋转(可分解为少数三角运算)实现,仍是逐元素/块级运算;KV Cache 用于缓存历史 K、V,避免重复计算,推理时按需读取并与当前 Q 计算注意力。这些算子相互配合:Q=GEMM(输入,Wq) 后做 RoPE,再与 KV Cache 做 FlashAttention,最后经 GEMM 输出。GPU 实现上,GEMM 与 Attention 是计算/访存密集的关键,用 Tensor Core 与显存优化;RMSNorm 与 RoPE 相对简单,用规约与向量化实现。
理解这些算子要抓住两点:每个算子"算的是什么"和"访存/计算特征如何、如何并行"。GEMM 与 Attention 是性能瓶颈,RMSNorm/RoPE 是轻量但需融合的算子,KV Cache 是内存管理核心。