文章预览
来自 代码搬运工 链接 https://zhuanlan.zhihu.com/p/708776013?utm_psn=1796564989189943297 为什么用roofline 模型去估计GPU大模型推理性能总是不准? GQA:"说好的memory bound,我比MHA减少了8倍,为什么性能只增加2倍"? 难道GQA MQA 在GPU 上只能省KV cache 的memory? 谁削弱了GQA的效果? 为什么??? 本着事出反常必有妖,本文不涉及复杂的kernel 的代码,只从感性(profiling)的角度出发,一点一点抽丝剥茧,探索"妖"从哪里来. 特别感谢方博士的指导。 TL;DR 由于篇幅过长,这里简单总结一下,对GPU 熟悉的专家可以跳过正文,小白可以参考我们的分析思路。我们的思路是先分析简单的MHA,主要看NCU 统计的kernel 的Arithmetic Intensity(AI),算理论的HBM load 是否和NCU 的一致,随后同样的思路分析GQA 和MQA。 我们基于vLLM(8a924d2248dedb620eb9a32ca5c9f97ab525aaf5)版本对MHA GQA MQA做了benchmark 测
………………………………