How to Use
- Pytorch 2.0以降で公式にサポート
- https://pytorch.org/blog/accelerated-pytorch-2/
- デフォルトで有効になっている (が、制約があっていつも適用されるわけではないらしい
)
- torch.backends.cuda.enable_flash_sdp(): Enables or Disables FlashAttention.
- https://pytorch.org/docs/master/generated/torch.nn.functional.scaled_dot_product_attention
GPU の内部構造
- Ada
- NVIDIA Ada Lovelace アーキテクチャ
- NVIDIA ADA GPU ARCHITECTURE
- A100
- NVIDIA A100 Tensor コア GPU アーキテクチャ
- V100
- NVIDIA TESLA V100 GPU アーキテクチャ
- RTX 4000 SFF Ada
- NVIDIA RTX 4000 SFF Ada 世代グラフィックス カード
- NVIDIA GPU の Generation ごとの whitepaper
- Ada : NVIDIA ADA GPU ARCHITECTURE
- Ampare (A100 とかの A) : NVIDIA AMPERE GA102 GPU ARCHITECTURE
- Turing (T4 とかの T): NVIDIA TURING GPU ARCHITECTURE
- Volta (V100 とかの V)
- Datasheet
- V100 : https://images.nvidia.com/content/technologies/volta/pdf/volta-v100-datasheet-update-us-1165301-r5.pdf
- A100 :
https://www.nvidia.com/content/dam/en-zz/Solutions/Data-Center/a100/pdf/nvidia-a100-datasheet-nvidia-us-218850
4-web.pdf
Slide 25
Slide 25 text
次読むと良さそうな論文
Slide 26
Slide 26 text
次読むと良さそう
- SELF-ATTENTION DOES NOT NEED O(n^2) MEMORY
- https://arxiv.org/pdf/2112.05682.pdf
- Flash Attention-2: Faster Attention with Better Parallelism and Work Partitioning
- https://arxiv.org/pdf/2307.08691.pdf
Slide 27
Slide 27 text
contents
- 論文「FlashAttention: Fast and Memory-Efficient Exact Attention
with IO-Awareness」の紹介
- CPU とか GPU の話
- まとめ