Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2023]FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning #14

Open
takumi7110 opened this issue Sep 28, 2023 · 0 comments

Comments

@takumi7110
Copy link
Owner

【背景】
• トランスフォーマーのコンテキスト長のスケーリングは課題であり、アテンション層が長いシーケンスにスケーリングする際のボトルネックとなっている。
• FlashAttentionは、非対称のGPUメモリ階層を利用してメモリの節約とランタイムの高速化を実現しているが、最適化された行列乗算(GEMM)操作に比べて効率が低い。
【目的】
• FlashAttentionの効率を向上させるために、より良い並列化とワークパーティショニングを提案する。
【手法】
• アルゴリズムを調整して非行列乗算FLOPsの数を減らす。
• アテンション計算を並列化し、スレッドブロック間でのオキュパンシーを増やす。
• スレッドブロック内でのワープ間でのワークを分散させ、共有メモリの読み書きを減らす。
【実験方法】
• FlashAttention-2を提案し、FlashAttentionと比較してスピードアップを検証する。
• 異なる設定でのベンチマークを実施し、前方パスと後方パスの理論的な最大スループットの割合を計測する。
• GPTスタイルのモデルのトレーニング速度を測定する。
【実験結果】
• FlashAttention-2はFlashAttentionと比較して約2倍のスピードアップを達成し、前方パスでは理論的な最大スループットの73%、後方パスでは63%に達する。
• GPTスタイルのモデルのトレーニング速度は、A100 GPUあたり225 TFLOPs/sに達する。
【考察】
• FlashAttention-2は、最適化されたGEMM操作とほぼ同等の効率に近づく。
• 提案手法により、スレッドブロックとワープ間のワークパーティショニングが改善され、効率が向上したことが確認された。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant