Dao-AILab/flash-attention
Fast and memory-efficient exact attention
해결하는 문제
FlashAttention은 Transformer 모델의 어텐션 메커니즘을 최적화하여 더 빠르고 메모리 효율적으로 만듭니다. 표준 어텐션 연산과 관련된 높은 메모리 및 계산 오버헤드를 해결하며, 특히 서로 다른 GPU 메모리 유형 간의 데이터 이동 횟수를 줄이는 방식(IO-awareness)을 사용합니다.
작동 원리
메모리 액세스를 최소화하는 특수 버전의 스케일드 닷 프로덕트 어텐션(scaled dot product attention)을 구현합니다. 이 프로젝트는 NVIDIA(Ampere, Ada, Hopper, Blackwell) 및 AMD(ROCm)를 포함한 다양한 GPU 아키텍처에 최적화된 여러 버전(FlashAttention, FlashAttention-2, 3, 4)을 제공합니다. 인과 마스킹(causal masking), 슬라이딩 윈도우 로컬 어텐션, 멀티 쿼리/그룹 쿼리 어텐션(MQA/GQA)과 같은 고급 기능을 지원합니다.
대상 사용자
대규모 언어 모델(LLMs)을 학습하거나 배포하는 머신러닝 엔지니어 및 연구원을 위해 설계되었으며, 어텐션 단계에서 GPU 처리량을 극대화하고 메모리 소비를 줄여야 하는 경우에 적합합니다.
주요 특징
- 멀티 GPU 아키텍처 지원: NVIDIA Hopper (H100) 및 Blackwell (B200) GPU와 AMD ROCm 호환 GPU를 위한 최적화된 커널 제공.
- 메모리 효율성: IO 오버헤드를 줄여 순방향 및 역방향 패스 속도를 향상.
- 추론 최적화: KV 캐시를 지원하는 증분 디코딩을 위한 특수 함수 포함.
- 유연한 어텐션 패턴: 인과 마스킹, ALiBi 슬로프, 슬라이딩 윈도우 어텐션 지원.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트