AI 칩의 성능 엔진, Systolic Array
현대 AI 칩의 95% 이상 성능을 담당하는 Systolic Array의 설계 원리와 효율성을 분석했다.
Systolic Array는 AI 칩의 핵심 처리 장치로, 행렬 곱셈(matmul) 연산을 극도로 효율적으로 처리한다. AI 모델의 대부분의 계산이 행렬 곱셈에 의존하기 때문에, 이를 빠르게 실행하는 것이 전체 성능을 좌우한다.
행렬 곱셈은 두 입력 행렬이 기하학적 패턴을 따라 상호작용해야 한다. Systolic Array는 이 패턴을 물리적 하드웨어로 구현하는데, 데이터를 근처 노드로만 이동시켜 먼 거리 통신을 최소화한다. 이를 통해 데이터 이동을 줄이고 병렬 연산을 극대화할 수 있다.
Systolic Array의 동작 방식은 두 가지로 나뉜다: Accumulator Stationary 방식은 각 노드가 출력 행렬의 한 원소를 담당하고 입력을 스트리밍하며, Weight Stationary 방식은 각 노드가 입력 행렬 원소를 보유하고 다른 입력을 스트리밍한다.
NVIDIA와 Google TPU의 전략 차이가 흥미롭다. NVIDIA GPU는 작은 배열(8×8)로 시작해 점진적으로 확대(현재 128×128)했으며 런타임 스케줄링에 의존한다. 반면 Google TPU는 처음부터 더 큰 배열(128×128에서 256×256으로 진화)을 택하고 컴파일러 기반의 사전 스케줄링을 활용한다. 최근 NVIDIA도 TPU 방식으로 전환 중이며, 더 큰 배열과 TMA 같은 특수 기능 장치를 추가하고 있다.
Systolic Array를 최대한 활용하려면 시스템 소프트웨어가 핵심이다. 잘못된 데이터 이동 스케줄링이나 동기화는 배열을 유휴 상태로 만들 수 있다. Luminal 같은 컴파일러는 데이터 이동을 최소화하고 명령 스케줄 중첩을 극대화해 각 하드웨어 유닛이 독립적으로 파이프라인을 이루도록 한다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.