CUDA C++에서 Flash Attention 구현하기: 모험 이야기

2025-08-23

이 글에서는 저자가 CUDA C++로 Flash Attention을 구현하고 성능을 최적화하는 과정을 자세히 설명합니다. 기본 구현부터 시작하여 공유 메모리 스위즐링, 2단계 파이프라이닝, 더 효율적인 ldmatrix 사용 등의 기법을 사용하여 커널을 단계적으로 개선했습니다. 반복적인 프로파일링과 최적화를 통해 최종 구현은 하드웨어 이론적 한계에 근접한 성능을 달성합니다. 또한 온라인 softmax 구현의 세부 사항과 공유 메모리 뱅크 충돌 해결 방법에 대해 심도 있게 다루어 CUDA C++ 개발자에게 귀중한 통찰력을 제공합니다.

개발