AI Architecture 14. Dataflow Taxonomy: TPU vs Output Stationary vs Row Stationary

이전 포스팅에서 우리는 메모리 대역폭(Bandwidth)이 성능의 주요 병목이 될 수 있음을 확인했습니다. 하드웨어 관점에서 더욱 중요한 사실은, 데이터를 연산기까지 가져오는 비용(에너지)이 실제 연산을 수행하는 비용보다 훨씬 크다는 점입니다.

연구 결과에 따르면, DRAM에서 데이터를 가져오는 데 소모되는 에너지는 레지스터 파일(RF)에서 가져오는 것보다 약 200배 더 큽니다. 따라서 고성능 NPU 설계의 핵심은 단순히 연산기(MAC unit)를 늘리는 것이 아니라, 데이터를 온칩(On-chip) 메모리나 레지스터에 얼마나 오래 머물게 하여 재사용(Reuse)하느냐에 달려 있습니다.

이러한 데이터의 시공간적 매핑(Spatio-temporal Mapping) 전략을 데이터플로우(Dataflow)라고 하며, 무엇을 고정(Stationary)시키느냐에 따라 NPU 아키텍처의 성격이 완전히 달라집니다. 이번 글에서는 대표적인 세 가지 Dataflow인 Weight Stationary (WS), Output Stationary (OS), Row Stationary (RS)를 비교 분석합니다.

1. Dataflow Weight Stationary (WS): 가중치를 고정

개념 및 메커니즘

Weight Stationary는 딥러닝 연산의 핵심 요소인 가중치(Weight, Filter)를 PE(Processing Element) 내부의 레지스터에 고정시키고, 입력(Input Activation)과 부분합(Partial Sum)을 이동시키는 방식입니다.

  1. 가중치를 PE 레지스터에 로드(Pre-load)하여 고정합니다.
  2. 입력 데이터(Input Feature Map)가 어레이를 통해 브로드캐스트(Broadcast) 되거나 이동(Flow)합니다.
  3. 계산된 결과(Partial Sum)는 인접한 PE로 이동하며 누적됩니다.

대표 아키텍처

  • Google TPU (Tensor Processing Unit) v1: 시스톨릭 어레이(Systolic Array) 구조를 사용하여 WS 방식을 구현했습니다.

Pros

  • CNN/LLM 효율성: CNN의 필터나 LLM의 가중치 행렬은 한 번 로드되면 여러 입력 데이터에 대해 반복적으로 사용(Reuse)되는 특성이 있어, WS 방식에서 메모리 접근 비용을 극대화하여 절감할 수 있습니다.
  • 제어 단순화: 가중치 로드 후에는 입력 데이터만 흘려보내면 되므로 제어 로직이 비교적 단순합니다.

Cons

  • Partial Sum 이동 비용: 누적합(Partial Sum)이 완성될 때까지 PE 사이를 계속 이동해야 하므로, 이에 따른 인터커넥트 대역폭 소모가 발생합니다.

2. Dataflow Output Stationary (OS): 결과값을 고정

개념 및 메커니즘

Output Stationary는 최종 결과값(Output Activation)을 만들기 위한 부분합(Partial Sum)을 PE 내부 레지스터에 고정시키는 방식입니다.

  1. PE는 하나의 출력 픽셀(Output Pixel)을 전담합니다.
  2. 이 출력을 완성하기 위해 필요한 입력(Input)과 가중치(Weight)가 PE로 스트리밍됩니다.
  3. PE 내부에서 누적 연산(Accumulation)이 완료될 때까지 부분합은 밖으로 나가지 않습니다.
  4. 연산이 끝나면 최종 결과값만 메모리로 내보냅니다.

대표 아키텍처

  • ShiDianNao: 이미지 처리 등 특정 윈도우 내에서의 연산 밀도가 높은 작업에 최적화된 초기 NPU 아키텍처.

Pros

  • Partial Sum 메모리 접근 최소화: 부분합을 읽고 쓰는 과정(Read/Write)이 레지스터 내부에서만 일어나므로, 부분합 관련 글로벌 버퍼 트래픽을 획기적으로 줄일 수 있습니다. (부분합 데이터는 정밀도를 위해 비트 수가 큰 경우가 많아 이 효과가 큽니다.)

Cons

  • Input/Weight 대역폭: 입력 데이터와 가중치를 매 사이클마다 브로드캐스트 하거나 유니캐스트 해야 하므로, 이 데이터를 공급하기 위한 글로벌 대역폭 요구량이 증가할 수 있습니다.

3. Dataflow Row Stationary (RS): 2차원 재사용의 극대화

개념 및 메커니즘

Row Stationary는 MIT에서 제안한 Eyeriss 아키텍처의 핵심 기술로, 위의 WS나 OS처럼 하나의 데이터만 고정하는 것이 아니라 Input, Weight, Partial Sum을 모두 최대한 재사용하기 위해 고안된 복합적인 방식입니다.

  1. Convolution 연산의 특성상 1차원 데이터가 아닌 2차원 평면 데이터가 슬라이딩 윈도우 방식으로 처리됩니다.
  2. RS는 1차원 행(Row) 단위로 데이터를 PE에 매핑합니다.
  3. PE 내부의 RF(Register File) 용량을 좀 더 키워, Weight의 행(Row)을 고정하고, Input의 행(Row)을 흘려보내며, 생성된 Partial Sum의 행(Row)도 내부에서 제어합니다.

대표 아키텍처

  • MIT Eyeriss: 에너지 효율성을 극한으로 추구한 엣지용 NPU.

Pros

  • 전체적인 에너지 효율 최적화: 특정 데이터 타입에 치우치지 않고 Input, Weight, Output 모든 측면에서 균형 잡힌 재사용성(Reuse)을 달성하여 전체 시스템 에너지를 최소화합니다.

Cons

  • 복잡한 제어 로직: 데이터 매핑 방식이 매우 복잡하여 컴파일러와 하드웨어 제어 로직(Controller)의 설계 난이도가 높습니다.
  • PE 면적 증가: 복잡한 데이터를 담아두기 위해 PE당 더 큰 용량의 로컬 메모리(SRAM/RF)가 필요합니다.

4. 비교 분석 및 결론

특징

Weight Stationary (WS)

Output Stationary (OS)

Row Stationary (RS)

고정 데이터

Weights (Filters)

Partial Sums (Outputs)

Row of Weights & Inputs

이동 데이터

Inputs, Partial Sums

Inputs, Weights

Inputs (Diagonal), Psums

최적화 목표

가중치 읽기 최소화

부분합 R/W 최소화

전체 데이터 이동 최소화

적합한 모델

대규모 CNN, LLM (Batch↑)

Depthwise Conv, MLP

General CNN (Mobile/Edge)

대표 사례

Google TPU, NVDLA

ShiDianNao

MIT Eyeriss

Dataflow comparison
Dataflow comparison

결론적으로, 어떤 Dataflow가 우월한지는 ‘워크로드(Workload)의 특성’에 따라 결정됩니다.

  • 배치 사이즈(Batch Size)가 크고 필터 재사용이 많은 서버급 추론에는 WS가 유리할 수 있습니다.
  • 이미지 사이즈가 크고 채널이 적은 경우나 부분합 데이터가 큰 경우에는 OS가 유리할 수 있습니다.
  • 전력 제한이 극심한 모바일/엣지 환경에서는 설계가 복잡하더라도 에너지 효율이 가장 높은 RS가 선호됩니다.

최근의 고성능 NPU(예: NVIDIA Tensor Core, Google TPU v4 등)들은 단일 Dataflow에 고정되지 않고, 레이어의 특성(Conv vs FC, Kernel Size 등)에 따라 유연하게 Dataflow를 변경(Reconfigurable)하거나 혼합하여 사용하는 방식으로 진화하고 있습니다.

참고: Efficient Processing of Deep Neural Networks: A Tutorial and Survey

Similar Posts