英伟达又赚到了!FlashAttention3来了:H100利用率飙升至75%

英伟达又赚到了!FlashAttention3来了:H100利用率飙升至75%

💡 原文中文,约3000字,阅读约需8分钟。
📝

内容提要

FlashAttention-3是一种快速且内存高效的注意力算法,用于加速语言模型。它利用三种主要技术来加速Hopper GPU的注意力:warp-specialization、交错块矩阵乘法和softmax操作,以及对低精度FP8的硬件支持。FlashAttention-3的速度达到了740 TFLOPS,比FlashAttention-2快1.5-2.0倍,可以在语言模型中使用更长的上下文。它提高了GPU利用率,以更低的精度提供更好的性能,并实现了对更长文本段的高效处理。文章还讨论了Hopper GPU的硬件特性以及异步和低精度处理的好处。

🔎

延伸解读

从35%到75%:H100利用率提升意味着什么

FlashAttention-3将H100的理论最大FLOPS利用率从之前的35%提升至75%,达到740 TFLOPS。这意味着在相同硬件上,注意力计算的速度提升了约一倍,直接缩短了大语言模型训练和推理的时间。对于依赖H100集群的用户,这种利用率提升可以转化为更低的计算成本和更高的吞吐量,尤其是在处理长上下文任务时效果更为明显。

FP8低精度与非相干处理:速度与精度的平衡

FlashAttention-3利用FP8低精度和硬件支持,在保持精度的同时提升速度。通过非相干处理(如Hadamard变换)分散激活中的极端值,减少了量化误差。这使得FP8下速度接近1.2 PFLOPS,同时精度损失可控。对于追求极致性能的场景,FP8模式可以进一步加速,但需注意其对模型最终精度的影响,建议根据任务需求权衡。

异步重叠:GEMM与Softmax的并行策略

FlashAttention-3通过warp-specialization和交错块矩阵乘法与softmax操作,实现了GEMM和softmax的重叠执行。由于非矩阵乘法运算(如指数运算)在现代GPU上较慢,这种重叠让Tensor Cores和多功能单元并行工作,将FP16前向传播吞吐量从约620 TFLOPS提升至640-660 TFLOPS。代价是更高的寄存器压力,需要平衡资源分配。

❓

Q&A

FlashAttention-3的主要技术是什么?

FlashAttention-3主要利用warp-specialization、交错块矩阵乘法和softmax操作,以及对低精度FP8的硬件支持来加速Hopper GPU的注意力。

FlashAttention-3相比于FlashAttention-2的速度提升是多少?

FlashAttention-3的速度达到了740 TFLOPS,比FlashAttention-2快1.5-2.0倍。

FlashAttention-3如何提高GPU的利用率?

FlashAttention-3提高了GPU利用率,使H100的理论最大FLOPS利用率达到75%,而之前仅为35%。

使用FlashAttention-3有什么优势?

使用FlashAttention-3可以在较低精度下提供更好的性能,并能够更有效地处理更长的文本片段。

Hopper GPU的硬件特性有哪些?

Hopper GPU的硬件特性包括WGMMA、TMA和FP8,这些特性能够最大限度地提高性能。

FlashAttention-3如何处理量化误差?

FlashAttention-3采用非相干处理技术,通过将查询和键与随机正交矩阵相乘来减少量化误差。

🏷️

标签

➡️

继续阅读