FlashAttention выполняет больше вычислений. Но работает в 7,6 раза быстрее.
Skill MD
0:00 / 0:00
FlashAttention выполняет больше вычислений. Но работает в 7,6 раза быстрее.
50 просмотров · 12 дней назад
Skill MD
56 подписчиков
50 просмотров · 12 дней назад
В статье 2022 года алгоритм внимания был улучшен в 7,6 раз на GPT-2 при одновременном увеличении, а не уменьшении, вычислений с плавающей запятой и без каких-либо аппроксимаций. Решение заключалось не в уменьшении количества вычислений, а в сокращении обращений к медленной памяти графического процессора.
В этом анализе:
Почему внимание является проблемой памяти: сетка оценок N на N и 40-80 ГБ памяти HBM процессора A100 со скоростью 1,5-2,0 ТБ/с против 192 КБ встроенной SRAM на каждый SM со скоростью около 19 ТБ/с.
Мозаичное расположение: вычисление сетки блок за блоком в SRAM и никогда не запись её в HBM.
Математические вычисления softmax, которые делают мозаичное расположение допустимым: скользящий максимум, скользящая сумма и масштабирование.
FlashAttention-2 (50-73% от пиковой производительности на A100), FlashAttention-3 (до 740 TFLOPs/s на H100) и FlashAttention-4.
Урок: считайте перемещенные байты, а не только математические вычисления.
Упомянутые ресурсы:
FlashAttention (Dao, Fu, Ermon, Rudra, Ré, 2022): arxiv.org/abs/2205.14135
FlashAttention-2 (Dao, 2023): arxiv.org/abs/2307.08691
FlashAttention-3 (Shah et al., 2024): arxiv.org/abs/2407.08608
Официальный репозиторий: github.com/Dao-AILab/flash-attention
Документация PyTorch по scaled_dot_product_attention: docs.pytorch.org/docs/stable/generated/torch.nn.functional.scaled_dot_product_attention.html
Главы:
0:00 Дополнительная математика, 7.6x быстрее
0:54 Почему внимание — это проблема памяти
1:47 Мозаичное построение: никогда не стройте всю сетку целиком
2:32 Softmax по частям
3:23 FlashAttention 2, 3 и 4
4:17 Считайте байты, а не математические вычисления
5:01 Краткий обзор
YouTube: / @skilldotmd
TikTok: tiktok.com/@skill.md_
#flashattention #gpu #llm #ai #pytorch #transformers #cuda