TL;DR
이 게시물은 FlashAttention 구현의 핵심 메모리·연산 흐름을 필기 다이어그램으로 정리한 자료이다. 전체 Q/K/V 텐서는 대용량의 글로벌 HBM에 보관하고, 처리에 필요한 활성 서브블록만 고속의 로컬 SRAM으로 청크 단위로 옮겨 연산을 수행하는 구조를 중심으로 구성되어 있다. 다이어그램에는 청크 로드 루프, 연산 엔진에서의 Q·K 내적과 온라인 소프트맥스 트래킹, 결과 누적 및 쓰기 복귀 루프가 명시되어 있어 메모리 이동과 연산 중간 상태 관리 방식이 드러난다.
로컬 SRAM으로의 블록 타일링은 입력 청크를 로드한 뒤 Compute Engine에서 s_ij = Q_i @ K_j^T를 계산하고, 온라인으로 소프트맥스 정규화 계수를 추적하며 V의 가중합을 누적하는 처리 파이프라인을 따른다. 이 방식은 전체 토큰 쌍을 한꺼번에 메모리에 올리지 않음으로써 HBM 대역폭과 로컬 메모리 한계를 조율하고, 스트리밍으로 블록을 순차 처리해 메모리 사용량을 제어한다. 다이어그램의 요소들은 구현 관점에서 어느 단계에서 상태를 유지해야 하는지와 데이터 이동 비용의 트레이드오프를 명확하게 제시한다.
이 접근 방식은 메모리 병목을 완화해 대규모 컨텍스트에서 Attention 연산의 실효 처리량을 높일 수 있다는 실무적 시사점을 제공한다. 다만 이미지 자체가 손글씨 다이어그램이므로 세부 파라미터나 성능 수치가 명시되어 있지 않아 바로 재현 가능한 구현 가이드는 포함되지 않는다. 따라서 이 자료는 설계 아이디어와 데이터 흐름의 개념 증거로 유용하며, 실제 구현을 위해서는 추가적인 수치와 코드화 작업이 필요하다.
섹션별 상세

용어 해설
- 어텐션 메커니즘(Attention Mechanism)
- — 입력 토큰 쌍 간 연관성을 가중치로 계산해 응답을 생성하는 연산 방식으로, Query와 Key의 내적을 통해 유사도를 계산하고 Softmax로 정규화한 뒤 Value와 가중합하여 최종 출력을 만든다. 이 과정에서 연산 복잡도와 메모리 사용량이 토큰 수의 제곱에 비례하기 때문에 대규모 문맥 처리를 위해 연산·메모리 최적화가 중요하다.
- 하이밴드위스 메모리(HBM)
- — 고대역폭 메모리로서 대용량 데이터를 빠르게 주고받는 데 유리하지만 지연과 에너지 관점에서 로컬 SRAM보다 불리한 특성이 있어 대규모 텐서 저장에 주로 사용된다. FlashAttention 구조에서는 전체 Q/K/V 텐서를 HBM에 두고 작은 청크만 SRAM으로 옮겨 처리하는 방식이 핵심 역할을 한다.
- 로컬 SRAM(SRAM)
- — 작고 고속의 온칩 메모리로서 반복 연산에서 높은 대역폭과 낮은 지연을 제공하기 때문에 짧은 길이의 활성 서브블록을 유지하며 연산을 수행하는 임시 저장소로 활용된다. FlashAttention 계열 구현에서는 로컬 SRAM에 청크 단위의 Q/K/V를 올려 온라인 소프트맥스 추적과 부분 합산을 수행한다.
- 블록 타일링(Block Tiling)
- — 큰 행렬 연산을 메모리 친화적인 작은 블록으로 분할해 로컬 메모리에 순차적으로 로드하고 계산한 뒤 결과를 누적하여 최종 출력을 얻는 기법으로, 데이터 이동을 줄이고 캐시 활용도를 높여 처리량과 메모리 효율을 개선한다. FlashAttention 다이어그램에서는 HBM에서 SRAM으로 청크를 스트리밍하는 방식이 이 개념을 따른다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.


