\(\bullet\)_FlashAttention_. Different from most existing approximate attention methods that trade-off model quality to improve the computing efficiency, FlashAttention [283] proposes to optimize the speed and memory consumption of attention modules on GPUs from an IO-aware perspective. There exist different levels of memory on modern GPUs, _e.g._, SRAM with a fast IO and HBM with a relatively slow IO. FlashAttention organizes the input into blocks and introduces necessary recomputation, both to make better use of the fast memory SRAM. Implemented as a fused kernel in CUDA, FlashAttention has been integrated into PyTorch [197], DeepSpeed [74], and Megatron-LM [75]. The updated version FlashAttention-2 [284] further optimizes the work partitioning of GPU thread blocks and warps, leading to around 2\(\times\) speedup when compared to the original FlashAttention.
\(\bullet\)_FlashAttention_. 대부분의 기존 근사 attention 방법은 모델 품질을 개선하기 위해 계산 효율성을 개선하는 것과 상충되는 것과는 달리, FlashAttention [283]은 IO 인식 관점에서 GPU에서 attention 모듈의 속도와 메모리 소비를 최적화할 것을 제안합니다. 최신 GPU에는 빠른 IO를 가진 SRAM과 상대적으로 느린 IO를 가진 HBM 등 다양한 수준의 메모리가 존재합니다. FlashAttention은 입력을 블록으로 구성하고 필요한 재계산을 도입하여 빠른 메모리 SRAM을 더 잘 활용할 수 있도록 합니다. CUDA에서 융합 커널로 구현된 FlashAttention은 PyTorch [197], DeepSpeed [74], Megatron-LM [75]에 통합되었습니다. 업데이트된 버전인 FlashAttention-2 [284]는 GPU 스레드 블록과 워프의 작업 분할을 더욱 최적화하여 원래의 FlashAttention과 비교했을 때 약 2배의 속도 향상을 가져왔습니다.
\(\bullet\)_FlashAttention_. 대부분의 기존 근사 주의 방법은 모델 품질을 개선하기 위해 계산 효율성을 개선하는 것과 상충되는 것과는 달리, FlashAttention [283]은 IO 인식 관점에서 GPU에서 주의 모듈의 속도와 메모리 소비를 최적화할 것을 제안합니다. 최신 GPU에는 빠른 IO를 가진 SRAM과 상대적으로 느린 IO를 가진 HBM 등 다양한 수준의 메모리가 존재합니다. 플래시 어텐션은 입력을 블록으로 구성하고 필요한 재계산을 도입하여 빠른 메모리 SRAM을 더 잘 활용할 수 있도록 합니다. CUDA에서 융합 커널로 구현된 FlashAttention은 PyTorch [197], DeepSpeed [74], Megatron-LM [75]에 통합되었습니다. 업데이트된 버전인 FlashAttention-2 [284]는 GPU 스레드 블록과 워프의 작업 분할을 더욱 최적화하여 원래의 FlashAttention과 비교했을 때 약 2배의 속도 향상을 가져왔습니다.