GEMV
通用矩阵-向量乘法运算,计算矩阵与单列向量的乘积,在LLM推理中适用于批量大小为1的decode阶段,内存访问模式线性可预测
时间轴 (近 90 天)
Candle框架的量化Metal执行路径中,当输入矩阵行数等于1时走GEMV路径,超过1行时进入GEMM路径
在小批量场景下,GEMM实现的额外开销远大于跨行复用权重带来的收益
GEMV可以在读取权重的同时完成反量化,而GEMM的分块逻辑让反量化过程变得更复杂
作者加入回退机制:把小批量输入拆分成单行,对每一行分别运行GEMV再拼接结果
在批量为2时,逐行GEMV回退方案把吞吐拉回到16.25 tokens/s,与未批处理基线16.15 tokens/s基本持平
基准测试显示,并发请求数达到5时逐行GEMV对GEMM的吞吐比跌破100%(90.7%),GEMM重新占优
GEMM与逐行GEMV两种prefill内核在相同prompt和贪婪解码下产生的输出前597个字符完全一致,之后开始分叉
浮点加法和乘法在IEEE 754标准下不具备结合律,GEMM和GEMV内部求和顺序不同导致同一输入的激活值产生极微小差异
全部知识事实 (8)
Candle框架的量化Metal执行路径中,当输入矩阵行数等于1时走GEMV路径,超过1行时进入GEMM路径
50%待验证在小批量场景下,GEMM实现的额外开销远大于跨行复用权重带来的收益
50%待验证GEMV可以在读取权重的同时完成反量化,而GEMM的分块逻辑让反量化过程变得更复杂
50%待验证作者加入回退机制:把小批量输入拆分成单行,对每一行分别运行GEMV再拼接结果
50%待验证在批量为2时,逐行GEMV回退方案把吞吐拉回到16.25 tokens/s,与未批处理基线16.15 tokens/s基本持平
50%待验证基准测试显示,并发请求数达到5时逐行GEMV对GEMM的吞吐比跌破100%(90.7%),GEMM重新占优
50%待验证GEMM与逐行GEMV两种prefill内核在相同prompt和贪婪解码下产生的输出前597个字符完全一致,之后开始分叉
50%待验证浮点加法和乘法在IEEE 754标准下不具备结合律,GEMM和GEMV内部求和顺序不同导致同一输入的激活值产生极微小差异
50%