Toolverse
All skills

optimizing-attention-flash

by davila7

Optimizes transformer attention with Flash Attention for 2-4x speedup and 10-20x memory reduction. Use when training/running transformers with long sequences (u003e512 tokens), encountering GPU memory issues with attention, or need faster inference. Supports PyTorch native SDPA,

Installation

Pick a client and clone the repository into its skills directory.

Installation

Quick info

Author
davila7
Category
Security
Views
13

About this skill

Optimizes transformer attention with Flash Attention for 2-4x speedup and 10-20x memory reduction. Use when training/running transformers with long sequences (u003e512 tokens), encountering GPU memory issues with attention, or need faster inference. Supports PyTorch native SDPA, flash-attn library, H100 FP8, and sliding window attention.

How to use

  1. Sprawdź wersję PyTorch — powinna być co najmniej 2.2.0. Uruchom python -c "import torch; print(torch.__version__)" w terminalu. Jeśli masz starszą wersję, zaktualizuj PyTorch poleceniem pip install --upgrade torch.

  2. Wybierz metodę integracji. Dla najprostszego podejścia użyj natywnego PyTorch SDPA (dostępny w wersji 2.2+), który automatycznie włącza Flash Attention jeśli jest dostępna. Alternatywnie zainstaluj bibliotekę flash-attn poleceniem pip install flash-attn --no-build-isolation dla większej kontroli i dodatkowych opcji.

  3. Zaimplementuj attention w swoim modelu. W przypadku PyTorch SDPA zaimportuj torch.nn.functional i użyj funkcji scaled_dot_product_attention(q, k, v) zamiast ręcznego obliczania attention. Dla flash-attn zaimportuj flash_attn_func i przekaż tensory w formacie [batch, seqlen, nheads, headdim].

  4. Przygotuj tensory wejściowe — query, key i value powinny być na urządzeniu CUDA i w formacie float16 lub bfloat16. Upewnij się, że sekwencja ma więcej niż 512 tokenów, aby w pełni wykorzystać optymalizacje Flash Attention.

  5. Przetestuj wydajność za pomocą profilowania. Porównaj czas wykonania i zużycie pamięci przed i po włączeniu Flash Attention, aby potwierdzić przyspieszenie i oszczędności pamięci.

  6. Zweryfikuj dokładność — uruchom testy aby upewnić się, że wyniki modelu pozostają zgodne z wersją bazową bez Flash Attention.

Related skills