新XQA-kernel在相同延迟预算下提供2.4倍更高的Llama-70B吞吐量#

XQA kernel在生成阶段为MQAGQA提供优化。它还为beam search提供优化。通过使用Tensor Cores进行加速,减少数据加载和转换,它在相同延迟预算内提供了更高的吞吐量。提高的吞吐量允许服务更多用户请求,同时提供相同的体验。

支持矩阵和使用标志在docs/source/advanced/gpt_attention中描述。

吞吐量提升:从下面的吞吐量-延迟曲线可以看出,启用XQA优化可以提高吞吐量。更高的吞吐量意味着服务更多用户,并且我们可以看到当XQA启用时,Y轴上的TPOT曲线趋于平缓。

XQA increased throughput within same latency budget

初步测量性能,可能会更改。TPOT越低越好。FP8,8块H100 GPU,单引擎,ISL/OSL:512/2048,BS:1 - 256,TensorRT-LLM v0.8a

H200上使用XQA的Llama-70B在相同延迟预算下吞吐量提高高达2.4倍#

使用XQA在H200上提升2.4倍

模型

GPU

输入长度

输出长度

未使用XQA时的吞吐量 (tok/s/GPU)

使用XQA时的吞吐量 (tok/s/GPU)

加速比

Llama-70B

1

128

2048

1,227

2,941

2.4x

8

128

2048

13,232

25,300

1.9x

总结#

这些改进将很快发布到main分支,并将包含在v0.8版本中。

有关H200的更多信息,请参阅H200发布公告博客

吞吐量计算为每秒每GPU的输出令牌数。out_tps=output_seqlen*batch_size/total_latency/tp

术语表: | DP = 数据并行 ISL = 输入序列长度 | PP = 流水线并行 | OSL = 输出序列长度 | OOM = 内存不足 | TP = 张量并行