본문 바로가기
AI이야기

FlashAttention-3: LLM 속도 혁신, H100 GPU 최적화 비법 공개!

by logbe1 2024. 11. 8.

FlashAttention은 트랜스포머 아키텍처의 핵심 계층인 어텐션 연산을 GPU에서 더 빠르게 처리하기 위해 탄생했어요. 메모리 읽기/쓰기를 최소화하면서 LLM과 긴 컨텍스트 애플리케이션의 성능을 비약적으로 끌어올린 덕분에, 지난 2년 동안 LLM의 컨텍스트 길이가 2~4K에서 128K, 심지어 1M까지 늘어날 수 있었죠. 정말 대단하지 않나요?

 

하지만, 아무리 뛰어난 기술이라도 더 발전할 여지는 항상 존재하죠. FlashAttention-2는 H100 GPU의 이론적 최대 성능을 제대로 활용하지 못했어요. 최대 성능의 35%밖에 활용하지 못했다니, 아쉬운 부분이죠. 그래서 등장한 것이 바로 FlashAttention-3입니다! 이번 포스팅에선 FlashAttention-3이 H100 GPU에서 어텐션 연산을 더욱 빠르게 처리하기 위해 어떤 기술을 사용하는지, 그리고 어떤 놀라운 성능 향상을 이뤄냈는지 자세히 알아볼 거예요.

 


FlashAttention-3: H100 GPU 성능 극대화를 위한 3가지 기술

FlashAttention-3은 H100 GPU에서 어텐션 연산 속도를 끌어올리기 위해 3가지 핵심 기술을 도입했어요.

 


워프 특수화(Warp Specialization)

워프 특수화는 텐서 코어와 TMA(Tensor Core Memory Access)의 비동기성을 활용해서 전체 연산과 데이터 이동을 동시에 처리하는 기술이에요. 쉽게 말해, 멀티태스킹처럼 연산과 데이터 이동을 동시에 처리해서 시간을 절약하는 거죠.

 

음… 뭐랄까, 마치 여러 가지 일을 동시에 처리하는 능력이 뛰어난 사람처럼, FlashAttention-3은 텐서 코어와 TMA를 활용해서 연산과 데이터 이동을 동시에 처리하여 속도를 높이는 거라고 생각하면 돼요. 덕분에 연산과 데이터 이동에 걸리는 시간을 줄여서 전체적으로 더 빠르게 어텐션 연산을 처리할 수 있게 된 거죠.

 


블록-단위 MatMul 및 Softmax 연산 교차 수행

두 번째 기술은 MatMul 연산과 Softmax 연산을 블록 단위로 번갈아 가면서 처리하는 거예요. 마치 춤을 출 때, 왼발 오른발을 번갈아 움직이는 것처럼, MatMul과 Softmax를 블록 단위로 교차 수행하면서 효율성을 높이는 거죠. 이렇게 하면 연산 과정에서 발생하는 병목 현상을 줄일 수 있고, 전체적인 처리 속도를 높이는 데 도움이 된답니다.

 


비일관적 처리(Incoherent Processing)

마지막 기술은 FP8 저정밀도 연산을 위한 H100 하드웨어 지원을 활용하는 거예요. FP8은 기존 FP16보다 더 작은 메모리 공간을 사용하면서도 비슷한 수준의 정확도를 제공하는 저정밀도 부동 소수점 형식이에요. H100은 FP8 연산을 효율적으로 처리할 수 있도록 설계되었는데, FlashAttention-3은 이 기능을 적극 활용하여 연산 속도를 높이고 메모리 사용량을 줄였답니다.

 


FlashAttention-3의 압도적인 성능 향상

이 세 가지 기술을 적용한 결과, FlashAttention-3은 놀라운 성능 향상을 이뤄냈어요.

 


FP16에서 1.5~2.0배 빠른 속도

FlashAttention-3은 FP16 정밀도에서 FlashAttention-2보다 1.5~2.0배나 더 빠르게 동작해요.

 


최대 740 TFLOPS 달성: H100 성능의 75% 활용


뿐만 아니라, 최대 740 TFLOPS의 성능을 달성했어요. 이는 H100의 이론적 최대 성능의 75%에 해당하는 놀라운 수치죠. 이전 버전인 FlashAttention-2와 비교하면 엄청난 발전이라고 할 수 있어요.

 


FP8에서 낮은 오차와 높은 성능

FP8 정밀도에서도 기존 FP8 어텐션 연산보다 오차는 2.6배나 줄이고, 1.2 PFLOPS에 가까운 성능을 달성했어요. 이 정도면 거의 1.2 PFLOPS를 찍었다고 봐도 무방하겠네요.

 


FlashAttention-3: 더 빠르고 효율적인 LLM 시대를 열다

FlashAttention-3은 H100 GPU의 성능을 극대화하여 어텐션 연산 속도를 비약적으로 향상시켰어요. 이를 통해 더 빠르고 효율적인 LLM과 긴 컨텍스트 애플리케이션 개발이 가능해졌죠. 덕분에 앞으로 더욱 강력하고 똑똑한 AI 모델을 만드는 데 큰 도움이 될 것으로 기대됩니다.

 

FlashAttention-3은 GitHub()에서 확인할 수 있어요. 관심 있는 분들은 직접 코드를 살펴보고 활용해 보시면 좋을 것 같아요.

 

FlashAttention-2 - 35% - -
FlashAttention-3 1.5~2.0배 향상 740 2.6배 감소 1.2

버전 FP16 속도 (FlashAttention-2 대비) 최대 성능 (TFLOPS) FP8 오차 (기존 FP8 대비) FP8 성능 (PFLOPS)

 

QnA 섹션

Q1. FlashAttention-3은 어떤 분야에 활용될 수 있나요?

 

A1. FlashAttention-3은 LLM, 긴 컨텍스트 처리, 이미지/비디오 이해 등 다양한 분야에서 활용될 수 있어요. 특히, 대규모 데이터셋을 처리하거나 복잡한 계산이 필요한 작업에 효과적이죠.

 

Q2. FlashAttention-3은 기존 FlashAttention과 어떤 점이 다르나요?

 

A2. FlashAttention-3은 H100 GPU의 특징을 활용하여 워프 특수화, 블록-단위 MatMul/Softmax 교차 수행, 비일관적 처리 등의 기술을 적용했어요. 덕분에 기존 FlashAttention보다 훨씬 빠르고 효율적으로 어텐션 연산을 처리할 수 있게 되었죠.

 

Q3. FlashAttention-3을 사용하면 어떤 이점이 있나요?

 

A3. FlashAttention-3을 사용하면 LLM의 컨텍스트 길이를 늘리고, 모델 학습 및 추론 속도를 높일 수 있어요. 또한, 메모리 사용량을 줄여 더 큰 모델을 학습할 수 있다는 장점도 있죠.

 

마무리

 

FlashAttention-3은 H100 GPU의 성능을 극대화하여 어텐션 연산 속도를 비약적으로 향상시켰어요. 앞으로 더욱 강력하고 똑똑한 AI 모델을 만드는 데 큰 도움이 될 것으로 기대됩니다.

 

키워드

플래시어텐션, 플래시어텐션3, 어텐션, 트랜스포머, GPU, H100, LLM, 대규모언어모델, 딥러닝, 인공지능, 머신러닝, 파이토치, CUDA, 텐서코어, 성능향상, 속도향상, 효율성, 최적화, 워프특수화, 매트멀, 소프트맥스, 비동기처리, 저정밀도, FP8, 기술, 개발, 연구, 학습, 추론, 컨텍스트, 길이, 딥러닝모델, AI모델, 소프트웨어, 하드웨어, 알고리즘