IT용어위키


시스톨릭 배열

시스톨릭 아키텍처

시스톨릭 배열(Systolic Array)은 다수의 연산 유닛을 규칙적인 격자 형태로 배치하고, 데이터가 유닛 사이를 흐르듯 전달되면서 연산이 이루어지는 병렬 하드웨어 구조이다. 특히 행렬 곱셈과 같은 대규모 MAC(Multiply-Accumulate) 연산이 필요한 딥러닝 계산에 널리 사용된다.

개요

시스톨릭 배열(systolic array)은 동일한 구조의 연산 셀을 1차원 또는 2차원 격자로 구성하고, 데이터가 일정한 방향으로 이동하면서 각 셀이 입력을 받아 연산을 수행하는 방식의 아키텍처이다. "Systolic"이라는 용어는 데이터가 심장의 수축(systole)처럼 리듬 있게 이동하는 특성에서 유래하였다.

특징

  • 높은 병렬성: 많은 MAC 유닛이 동시에 연산을 수행한다.
  • 데이터 재사용 최적화: weight와 activation을 칩 내부에서 전달하며 재사용한다.
  • 단순한 하드웨어 구조: 규칙적 배열이므로 설계와 배치가 쉽다.
  • 파이프라인 처리: 데이터가 흐르는 즉시 연산이 이루어져 처리율이 높다.

구조

시스톨릭 배열은 일반적으로 다음 요소로 구성된다:

  • 시스톨릭 셀(Systolic Cell): weight를 저장하고, 입력 데이터를 이용해 z = w·x + y 형태의 MAC 연산을 수행한다.
  • 데이터 흐름(Dataflow): 입력 x는 한 방향으로, partial sum y는 다른 방향으로 전달된다.
  • 2D 격자 구성: 여러 셀을 2D 배열로 배치해 행렬 곱 전체를 병렬로 계산한다.

동작 방식

행렬 곱셈 C = A × B를 계산할 때:

  • A의 행(row)은 한 방향으로, B의 열(column)은 다른 방향으로 배열 내부를 통과한다.
  • 각 셀은 A[i,k]와 B[k,j]를 곱해 partial sum을 누적하여 C[i,j]를 점차 완성한다.
  • 최종 결과는 배열의 특정 경로를 통해 출력된다.

변형 (Dataflow 종류)

데이터 재사용 전략에 따라 여러 종류의 dataflow를 사용할 수 있다.

  • Weight Stationary: weight를 셀 내부에 고정하고 activation을 이동시킨다.
  • Output Stationary: partial sum이 셀 내부에 머물고 입력이 이동한다.
  • Input Stationary: 입력 activation이 고정되고 weight가 이동한다.

응용 분야

시스톨릭 배열 또는 그 변형 구조는 다양한 가속기에서 사용된다:

  • Google TPU
  • NPU(Neural Processing Unit) 기반 모바일/엣지 칩
  • Apple Neural Engine(ANE)
  • Habana Gaudi / Intel NNP
  • Graphcore IPU
  • 삼성/퀄컴 SoC의 딥러닝 가속기
  • FPGA 기반 CNN/Transformer 가속기

장점

  • 외부 메모리 접근 감소 → 에너지 효율 향상
  • 고정된 데이터 흐름 → 파이프라이닝 용이
  • 대규모 병렬 처리로 높은 처리량 확보

단점

  • 연산 패턴이 고정적이라 범용 GPU보다 유연성이 낮음
  • 데이터 흐름이 규칙적이지 않은 연산에는 부적합

같이 보기

참고 문헌


  출처: IT위키 (IT위키에서 최신 문서 보기)

  * 본 페이지는 IT Wiki에서 미러링된 페이지입니다. 일부 오류나 표현의 누락이 있을 수 있습니다. 원본 문서는 IT Wiki에서 확인하세요!