Skip to main content
QUICK REVIEW

[논문 리뷰] IOS: Inter-Operator Scheduler for CNN Acceleration

Yaoyao Ding, Ligeng Zhu|arXiv (Cornell University)|2020. 11. 02.
Advanced Neural Network Applications참고 문헌 23인용 수 5
한 줄 요약

IOS는 다중 스테이지에 걸쳐 병렬 실행을 최적화하기 위해 동적 프로그래밍을 사용하는 상호 연산자 스케줄러를 제안한다. 이는 GPU 활용도와 추론 성능을 크게 향상시키며, 다양한 하드웨어와 배치 크기에서 내부 및 외부 연산자 병렬성을 통합적으로 활용함으로써 TensorRT와 같은 최신 라이브러리 대비 1.1x에서 1.5x의 성능 향상을 달성한다.

ABSTRACT

To accelerate CNN inference, existing deep learning frameworks focus on optimizing intra-operator parallelization. However, a single operator can no longer fully utilize the available parallelism given the rapid advances in high-performance hardware, resulting in a large gap between the peak performance and the real performance. This performance gap is more severe under smaller batch sizes. In this work, we extensively study the parallelism between operators and propose Inter-Operator Scheduler (IOS) to automatically schedule multiple operators' parallel execution through a novel dynamic programming algorithm. IOS consistently outperforms state-of-the-art libraries (e.g., TensorRT) by 1.1 to 1.5x on modern CNN benchmarks. The code to reproduce each experiment is available at: https://github.com/mit-han-lab/inter-operator-scheduler.

연구 동기 및 목표

  • 정점 하드웨어 성능과 실제 CNN 추론 효율성 사이의 성능 격차가 점점 커지는 문제를 해결하기 위해, 특히 작은 배치 크기에서의 성능 저하를 고려한다.
  • 기존의 내부 연산자 병렬화 최적화 기법이 현대 고성능 하드웨어를 충분히 활용하지 못하는 한계를 극복한다.
  • 모든 CNN 레이어에 걸쳐 상호 연산자 병렬화를 조율하는 전역 최적 스케줄링 전략을 개발하여, 부분 최적화 또는 휘도 기반 접근 방식을 피한다.
  • 다양한 배치 크기와 장치 성능에 맞춰 적응 가능한 하드웨어 인지 스케줄러를 개발하여 일관된 성능 향상을 보장한다.
  • 기존의 자동 튜닝 프레임워크인 TVM과 비교해 최적화 비용을 줄이면서도 뛰어난 처리량을 달성한다.

제안 방법

  • IOS는 다중 스테이지에 걸친 GPU 활용도를 극대화하는 최적의 실행 순서를 찾기 위해 상호 연산자 스케줄링 문제를 동적 프로그래밍 문제로 재구성한다.
  • 연산자 간 데이터 의존성을 간선으로 하는 방향 무사이클 그래프(DAG)로 계산 그래프를 모델링하고, 타당한 스케줄을 탐색하기 위해 상태 전이 함수를 사용한다.
  • 하드웨어 제약 조건 하에서 지연 시간을 최소화하거나 활용도를 극대화하는 방식으로 하위 스케줄을 순환적으로 평가하고 최적의 스케줄을 선택한다.
  • 내부 연산자 병렬화를 위해 기존 딥러닝 라이브러리인 cuDNN과 통합하여 최적화 오버헤드를 줄이고, 오직 상호 연산자 간 조율에 집중한다.
  • 실행 스테이지의 프로파일링을 통해 메모리 대역폭 및 공유 자원 경쟁(L3 캐시 등)과 같은 하드웨어 특화 병목 현상을 고려한다.
  • 각 설정에 대해 별도의 최적 스케줄을 생성함으로써 다양한 배치 크기로의 동적 적응을 지원하여 추론 워크로드 전반에서 일관된 성능 향상을 확보한다.

실험 결과

연구 질문

  • RQ1동적 프로그래밍 기반 스케줄러는 휘도 또는 근시성 스케줄링보다 더 높은 GPU 활용도를 달성할 수 있는가?
  • RQ2내부 연산자 병렬화가 부족한 상황에서 상호 연산자 스케줄링은 다양한 배치 크기에서 성능에 어떤 영향을 미치는가?
  • RQ3TensorRT 및 TVM과 같은 최신 라이브러리 대비 상호 연산자 스케줄링은 처리량을 얼마나 향상시킬 수 있는가?
  • RQ4상호 연산자 스케줄링에서 최적화 비용과 얻는 성능 향상 사이의 상호 교환 관계는 어떠한가?
  • RQ5고병렬 실행 환경에서 자원 경쟁과 메모리 액세스 병목 현상을 스케줄러는 어떻게 처리하는가?

주요 결과

  • IOS는 Inception V3, SqueezeNet, NASNet 등 여러 현대적인 CNN 벤치마크에서 TensorRT와 같은 최신 라이브러리 대비 1.1x에서 1.5x의 성능 향상을 달성한다.
  • 배치 크기 1에서 128까지의 모든 배치 크기에서 기준선 대비 일관되게 뛰어난 성능을 보이며, 특히 상호 연산자 병렬화가 가장 중요한 낮은 배치 크기에서 가장 큰 성능 향상을 기록한다.
  • 배치 크기 1일 경우 IOS 최적화 스케줄은 배치 크기 32에 최적화된 스케줄보다 28% 빠르며, 이는 배치 인식 스케줄링의 중요성을 입증한다.
  • TVM 대비 최적화 비용을 단 3 GPU 시간으로 줄였고, Inception V3 및 SqueezeNet에서 여전히 TVM을 능가하는 성능을 기록한다.
  • 내부 및 외부 연산자 병렬화의 조합은 상호 보완적이며, IOS는 외부 연산자 스케줄링에 집중하는 반면 TVM은 내부 연산자 커널 최적화에 집중하므로, 통합 최적화를 통해 추가적인 성능 향상이 가능하다.
  • 스케줄에서 연산자 f와 g를 병합하면 중간 활성화를 제거함으로써 메모리 액세스를 줄일 수 있으며, 이는 계산량 증가를 감수하더라도 대규모 배치 크기에서 메모리 병목 현상 완화에 유리하다.

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

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

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

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