Skip to main content
QUICK REVIEW

[논문 리뷰] FlexSA: Flexible Systolic Array Architecture for Efficient Pruned DNN Model Training

Sangkug Lym, Mattan Erez|arXiv (Cornell University)|2020. 04. 27.
Parallel Computing and Optimization Techniques인용 수 15
한 줄 요약

FlexSA는 다양한 텐서 크기를 가진 프루닝된 DNN 모델을 효율적으로 훈련하기 위해 구조를 동적으로 조정할 수 있는 재구성 가능한 시스톨릭 어레이 아키텍처를 제안한다. 다양한 운영 모드를 지원함으로써, 상호 코어 데이터 재사용과 컴파일러 히وري스틱을 통한 타일링 최적화를 통해 기존의 큰 시스톨릭 어레이 대비 계산 활용도를 37% 향상시키고 에너지 소비를 28% 감소시킨다.

ABSTRACT

Modern deep learning models have high memory and computation cost. To make them fast and memory-cost efficient, structured model pruning is commonly used. We find that pruning a model using a common training accelerator with large systolic arrays is extremely performance-inefficient. To make a systolic array efficient for pruning and training, we propose FlexSA, a flexible systolic array architecture. FlexSA dynamically reconfigures the systolic array structure and offers multiple sub-systolic operating modes, which are designed for energy- and memory bandwidth-efficient processing of tensors with different sizes and shapes. We also present a compilation heuristic for tiling matrix-multiplication-and-accumulation operations in a training workload to best utilize the resources of FlexSA. Based on our evaluation, FlexSA with the proposed compilation heuristic improves compute resource utilization of pruning and training modern CNN models by 37% compared to a conventional training accelerator with a large systolic array. FlexSA also improves on-chip data reuse by 1.7X saving 28% energy compared to naive systolic array splitting.

연구 동기 및 목표

  • 프루닝된 DNN 모델 훈련에서 계산 유닛 활용도가 낮은 큰 시스톨릭 어레이의 비효율성을 해결한다.
  • 구조적 프루닝에서 큰 코어 재사용과 작은 코어 활용도 사이의 성능 및 에너지 간 상충 관계를 극복한다.
  • 프루닝 중 변하는 GEMM 차원에 맞추어 동적으로 재구성 가능한 시스톨릭 어레이를 설계한다.
  • 최적의 자원 활용도를 위해 GEMM 차원에 기반해 FlexSA 운영 모드를 지능적으로 선택하는 컴파일러 히وري스틱을 개발한다.
  • 현저한 면적 오버헤드 없이 높은 에너지 효율성과 계산 활용도를 달성한다.

제안 방법

  • FlexSA는 공유된 입력/출력 데이터 경로와 제어 논리를 갖춘 네 개의 서브-시스톨릭 어레이를 통합하여, 동적 재구성에 적합한 네 가지 별도의 운영 모드를 지원한다.
  • 상호 코어 시스톨릭 데이터 플로우(예: 수직, 수평, 전체 파동)를 지원하여 데이터 재사용을 향상시키고 불필요한 데이터 이동을 줄인다.
  • 컴파일 타임 GEMM 타일링 히وري스틱은 높은 상호 코어 재사용을 보장하는 운영 모드를 우선순위로 정렬하여, 비활성 PE를 최소화하고 자원 활용도를 최적화한다.
  • 컴파일러는 데이터를 片상 버퍼로 로드하고, 선택된 모드에 따라 출력 저장소를 글로벌 메모리 또는 DRAM으로 관리한다.
  • 단순한 네 코어 시스톨릭 어레이 대비 면적 오버헤드가 오직 1%에 불과하여 효율적인 하드웨어 통합이 가능하다.
  • 텐서 차원에 기반해 운영 모드를 선택하여 PE 활용도와 데이터 재사용을 균형 있게 유지하며, 에너지 소비를 최소화하는 데 중점을 둔다.

실험 결과

연구 질문

  • RQ1구조적 DNN 프루닝 과정에서 발생하는 동적 텐서 크기를 효율적으로 처리하기 위해 시스톨릭 어레이 아키텍처를 런타임에 어떻게 재구성할 수 있는가?
  • RQ2프루닝 과정에서 단일 큰 시스톨릭 어레이와 다수의 더 작은, 동적으로 재구성 가능한 어레이 사이의 성능 및 에너지 간 상충 관계는 어떠한가?
  • RQ3소규모 타일 GEMM 연산에서 PE 활용도를 향상시키면서도 상호 코어 데이터 재사용을 효과적으로 활용하여 고도로 온칩 데이터 재사용을 유지할 수 있는가?
  • RQ4GEMM 차원에 기반해 FlexSA 운영 모드를 지능적으로 선택하는 컴파일러 히وري스틱이 자원 활용도를 얼마나 향상시킬 수 있는가?
  • RQ5제안된 FlexSA 아키텍처는 큰 코어 및 다수의 작은 코어 시스톨릭 어레이 설계 대비 에너지 효율성과 계산 활용도에서 어떻게 비교되는가?

주요 결과

  • FlexSA는 현대적인 CNN 모델의 프루닝 및 훈련 과정에서 기존의 일반적인 큰 시스톨릭 어레이 가속기 대비 계산 자원 활용도를 37% 향상시켰다.
  • 단순한 소형 코어 분할 대비 온칩 데이터 재사용을 1.7배 향상시켜 불필요한 데이터 이동을 크게 감소시켰다.
  • 상호 코어 데이터 전송이 증가했음에도 불구하고, 단순한 시스톨릭 어레이 분할 대비 에너지 소비를 28% 감소시켰다.
  • FlexSA 컴파일러는 프루닝 과정에서 89% 이상의 경우 상호 코어 시스톨릭 데이터 플로우를 사용하여 재사용을 포기하지 않은 채로 높은 활용도를 확보했다.
  • ResNet50 및 Inception v4에서 1G1F 및 4G1F 구성에서 상호 코어 운영 모드가 각각 94%와 99%의 연산을 차지하여 높은 재사용 효율성을 보였다.
  • 엔드 투 엔드 훈련 성능은 단일 큰 코어 대비 24% 향상(1G1F) 및 29% 향상(4G1F)되었으며, 다수의 작은 코어 설계 대비 10% 낮은 동적 에너지를 소비했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.