작업 분배의 개선
하나의 주의 헤드 안의 계산도 여러 스레드 블록에 나눠 GPU 자원을 더 잘 활용한다. 블록 내부에서는 워프들의 작업 배치를 조절해 공유 메모리를 통한 불필요한 통신을 줄인다. 주의의 수학적 목표를 다른 근사 연산으로 바꾸는 접근은 아니다.
연산 종류와 장치 효율
같은 연산 개수라도 행렬 곱과 스칼라·정규화 연산이 장치에서 처리되는 효율은 다르다. FlashAttention-2는 행렬 곱이 아닌 연산을 줄이는 조정도 활용한다. 단순한 총 FLOPs만으로 실제 시간을 모두 설명할 수는 없다.
전체 가속의 독립 예제
모형 실행 100ms 중 주의 연산이 40ms이고 나머지가 60ms라고 하자. 주의 부분만 두 배 빨라지면 총시간은 20+60=80ms로 전체 가속은 1.25배다. 핵심 층의 두 배 가속이 전체 모형의 두 배 가속과 같지는 않다.
비교 조건
입력 길이와 헤드 차원, 마스크, 정밀도 및 GPU 종류를 맞춰 비교해야 한다. 짧은 입력이나 작은 배치에서는 자원 활용 양상이 달라질 수 있다. 알고리즘 논문의 측정 결과와 현재 사용하는 라이브러리의 실제 성능을 구분한다.
관련 문서
FlashAttention / 게이트 선형 주의 / Mamba-2 / GPU / 병렬 컴퓨팅 / 자기 주의