루프형 트랜스포머는 HBM 트래픽을 절약하는가? B200에서 Huginn의 가중치 재사용 프로파일링 [P]
요약
본 글은 루프형 트랜스포머(Huginn)의 가중치 재사용을 B200 환경에서 프로파일링한 결과를 다룹니다. 공유된 가중치는 저장 공간 절약과 특정 조건에서의 속도 향상을 보였으나, L2 캐시를 초과하는 대규모 모델에서는 성능 차이가 사라지는 한계가 확인되었습니다. 또한, 반복 횟수가 늘어날수록 HBM 트래픽이 증가함을 분석했습니다.
핵심 포인트
- 공유 가중치는 저장 공간을 절약하며 작은 체인에서 속도 향상을 보임.
- 모델 크기가 L2 캐시(288 MiB)를 초과하면 성능 차이가 사라짐.
- 반복 횟수가 늘어날수록 HBM 트래픽이 크게 증가하는 경향을 보임.
- 가중치 공유만으로는 GPU의 반복적인 HBM 가중치 재읽기를 막지 못함.
반복마다 동일한 가중치를 재사용하는 루프형 트랜스포머(looped transformers)는 HBM 트래픽도 절약할까요?
제 새 게시물에서는 루프 아키텍처(Huginn)를 다루고, 이를 B200에서 모델링하고 성능을 측정했습니다. 각 반복마다 메모리에서 얼마나 많은 데이터를 읽는지, 시간이 얼마나 걸리는지, 그리고 공유 가중치가 일반적으로 다음 반복까지 칩에 머무르지 않는 이유 등을 분석했습니다. 몇 가지 결과는 다음과 같습니다:
- 하나의 공유된 72 MiB 가중치를 사용한 8개의 matmul(행렬 곱셈) 체인은 동일한 8개의 복사본을 가진 체인보다 24% 더 빨랐으며, HBM에서 거의 데이터를 읽지 않았습니다. 하지만 L2보다 큰 288 MiB에서는 그 차이가 사라졌습니다.
- 완전한 Huginn Core(교육 구현, 무작위 가중치)의 경우, 8번의 반복은 1회 실행했을 때보다 약 8배 오래 걸렸고 HBM에서 약 8배 많은 데이터를 읽었습니다.
- 공유는 저장 공간을 절약하지만, 그 자체만으로는 GPU가 매 반복마다 HBM에서 가중치를 다시 읽는 것을 막지는 못합니다. 👀
게시물: https://dinara-dl.github.io/posts/looped-transformer/
🤖코드 및 원본 Nsight Compute 데이터: https://github.com/dinara-dl/looped-transformer
혹시 누군가 재귀 가중치를 반복에 걸쳐 칩에 유지하는(예를 들어 지속적인 커널을 사용하여) 것을 시도해 본 경험이 있는지 궁금합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 r/MachineLearning (hot)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기