반도체 시사

AI 가속기(5) _ Systolic Array 설계의 도전 과제

semicon_designer 2025. 5. 5. 16:29
728x90
 

AI 가속기(4) _ Systolic Array의 성능 개선: Tiling, On-Chip Buffer, Bandwidth

AI 가속기(3) _ Systolic Array의 성능 개선: Loop Unrolling, Data FlowAI 가속기(1) _ Systolic Array대규모 딥러닝 모델의 연산 성능을 끌어올리기 위한 하드웨어 설계가 치열하게 전개되고 있습니다. 특히, Google

semicon-circuit.tistory.com


Systolic Array는 병렬성과 데이터 재사용에 최적화된 구조로, DNN 연산을 빠르게 처리할 수 있는 하드웨어 가속기입니다. 하지만 단순한 구조만큼이나 설계의 유연성이 제한되고, 다양한 AI 워크로드를 처리하기 위한 확장성이나 최적화가 쉽지 않다는 단점도 존재합니다.

 

이번 포스팅에서는 실제 설계 과정에서 발생하는 대표적인 도전 과제 세 가지를 중심으로 정리해 보겠습니다.

Inflexibility: 구조적 제한과 연산 불균형

 

Systolic Array는 정해진 형태의 행렬 곱 연산에 최적화되어 있어 구조는 단순하지만, 이로 인해 처리 가능한 연산 유형과 워크로드 범위가 제한됩니다. 특히 다음과 같은 경우 유연성이 떨어집니다.

  • FC(Fully Connected) Layer
    단순 행렬 곱으로 구성되기 때문에 Systolic Array에서 효율적으로 가속이 가능합니다.
  • CONV(Convolution) Layer
    직접적인 매핑이 어려워 im2col 알고리즘을 통해 행렬 곱 형태로 변환한 후 연산해야 합니다. 이 변환 과정은 성능 저하를 유발할 수 있습니다.

im2col 알고리즘

  • Depthwise CONV(DWCONV)
    필터마다 한 채널만 연산에 참여하므로 벡터 형태의 연산이 필요합니다. 이때 많은 PE가 유휴 상태에 머무르게 되어 하드웨어 활용률이 급격히 저하됩니다.

DWCONV에서 발생하는 PE 유후 상태

 

 

이와 같은 문제를 해결하기 위해 다음의 방법이 가능합니다.

 

  • FC/CONV 레이어는 Systolic Array에서 행렬 곱 형태로 처리
  • 나머지 복잡한 구조나 다변량 계산은 Host CPU, VPU, 또는 RISC-V 코어에서 수행하는 하이브리드 분산 방식 활용

 

DNN Sparsity: 희소성 기반 최적화 어려움

 

최근 DNN 모델은 연산 최적화를 위해 Pruning, Sparsity를 적용하여 필요하지 않은 연산을 줄이는 방식이 자주 사용됩니다. 하지만 Systolic Array는 Dense(모든 원소를 연산)한 행렬 연산에 최적화되어 있어 다음과 같은 문제가 발생합니다.

  • 희소 행렬에서 0이 포함된 요소를 모두 연산 대상으로 처리 → 불필요한 연산 발생
  • 특정 위치의 연산만 필요한 구조에선 데이터 흐름이 불규칙해져 연산 효율 저하
  • 결과적으로 전력 낭비, PE 유휴 시간 증가, Sparsity 이점 미활용

이러한 희소성 관련 문제를 해결하기 위해 다음의 해결 방안이 적용 가능합니다.

  • Zero-Skipping PE, Mask-aware Scheduling 등을 도입한 구조로 PE 동작을 재설계
  • 또는 다른 구조의 가속기(예: 스칼라형 PE, 비정형 Sparsity에 적합한 아키텍처) 사용

 

Complex Design Space: 최적화 조합의 복잡성

 

Systolic Array 설계 시 단일 요소만이 아닌, 여러 파라미터 간의 복합 조합을 고려해야 합니다.


또한, DNN 구조에 따라 요구 조건이 모두 다릅니다. 예를 들어, DNN 훈련용 가속기의 경우, 높은 처리량과 PE 활용률이 중요합니다. DNN 추론용 가속기는 지연 시간의 최소화가 중요하며, 모바일 환경에서는 전력 소비와 면적을 최소화하는 것이 중요합니다.

 

위와 같은 설계 복잡성으로 인한 한계를 극복하기 위해 다음의 해결 방안이 필요합니다.

  • 자동화 설계 지원 도구
    : 다양한 애플리케이션과 플랫폼에 맞춰 최적의 파라미터를 조합하고, 아키텍처를 선택하는 자동화 설계 도구 필요
  • 성능 분석 도구
    : 설계자가 성능, 에너지 소비, 면적 등의 지표를 평가할 수 있는 도구 필요
728x90