HKUSTDial/flash-sparse-attention

Trainable fast and memory-efficient sparse attention

해결하는 문제

Flash-Sparse-Attention (FSA)는 Transformer 모델에서 매우 긴 시퀀스를 처리할 때 발생하는 계산 및 메모리 병목 문제를 해결합니다. Flash Attention의 메모리 효율성과 스파스 계산을 결합하여 어텐션 메커니즘의 오버헤드를 줄입니다.

작동 방식

FSA는 고성능 트레이너블 스파스 어텐션 커널을 구현합니다. 최적의 성능을 위해 CuTe 백엔드를 사용하며, 인과적, 로컬 윈도우, 게이트형 어텐션 등 다양한 어텐션 패턴을 지원합니다. 작업 부하 균형과 정밀도 최적화를 위해 Split-KV(프론트/디코딩용) 및 Split-QO(백워드 패스용) 기법을 사용하며, 네이티브 FP8 지원이 없는 하드웨어에서 저정밀도 계산을 위한 융합 양자화도 제공합니다.

대상 사용자

긴 컨텍스트 창을 효율적으로 처리하고, 고성능 트레이닝 및 추론(디코딩) 워크로드를 필요로 하는 대규모 Transformer 모델을 개발하는 연구자 및 개발자.

주요 특징

  • 다양한 어텐션 지원: 디엔스, 스파스, 게이트형 어텐션, 그룹 쿼리 어텐션(GQA), 멀티 쿼리 어텐션(MQA)을 지원.
  • 메모리 및 계산 효율성: Flash Attention의 메모리 효율성과 스파스 계산, Paged Attention을 통합.
  • 유연한 구성: Flex Local Window Attention을 통해 헤드별로 임의의 윈도우 크기와 로컬 범위를 설정 가능.
  • 하드웨어 최적화: 융합 양자화 및 작업 부하 균형(Split-KV/Split-QO)을 포함하여 GPU/XPU/NPU/PPU 성능을 극대화.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch