Skip to main content
QUICK REVIEW

[논문 리뷰] Generalizing Shape Analysis with Gradual Types

Migeed, Zeina, Reed, James|arXiv (Cornell University)|2019. 04. 17.
Parallel Computing and Optimization Techniques참고 문헌 42인용 수 16
한 줄 요약

Relay는 딥러닝 컴파일러를 위한 고수준, 정적 타입, 함수형 중간 표현(IR)로, 기존의 IR들을 통합하고 일반화하여 표현력 있는 모델, 조합 가능한 최적화, 이식 가능한 하드웨어 타겟팅을 지원한다. 도메인 특화 최적화를 표준 컴파일러 단계로 재정의하고 확장성 있고 플랫폼에 종속되지 않는 코드 생성을 가능하게 함으로써, CPU, GPU, 가속기 등 다양한 아키텍처에서 경쟁적인 성능을 달성한다.

ABSTRACT

Frameworks for writing, compiling, and optimizing deep learning (DL) models have recently enabled progress in areas like computer vision and natural language processing. Extending these frameworks to accommodate the rapidly diversifying landscape of DL models and hardware platforms presents challenging tradeoffs between expressivity, composability, and portability. We present Relay, a new compiler framework for DL. Relay's functional, statically typed intermediate representation (IR) unifies and generalizes existing DL IRs to express state-of-the-art models. The introduction of Relay's expressive IR requires careful design of domain-specific optimizations, addressed via Relay's extension mechanisms. Using these extension mechanisms, Relay supports a unified compiler that can target a variety of hardware platforms. Our evaluation demonstrates Relay's competitive performance for a broad class of models and devices (CPUs, GPUs, and emerging accelerators). Relay's design demonstrates how a unified IR can provide expressivity, composability, and portability without compromising performance.

연구 동기 및 목표

  • 다양한 딥러닝 모델과 하드웨어 플랫폼을 통합하고 확장 가능한 컴파일러 프레임워크에서 지원하는 증가하는 도전 과제를 해결한다.
  • 새로운 모델, 최적화, 하드웨어를 위한 확장 시 표현력, 조합 가능성 또는 이식성을 희생하는 기존 딥러닝 IR의 한계를 극복한다.
  • 예를 들어 양자화, 융합 등 도메인 특화 최적화와 하드웨어 특화 코드 생성을 성능을 희생시키지 않고 원활하게 통합할 수 있도록 한다.
  • 모델 표현, 최적화, 코드 생성을 통합함으로써 향후 딥러닝 컴파일러 연구에 체계적이고 확장 가능한 기반을 제공한다.

제안 방법

  • 1급 함수, 제어 흐름, 트리 및 그래프와 같은 복잡한 데이터 구조를 지원하는 기능적이고 정적 타입의 IR로 Relay를 설계한다.
  • 기존 컴파일러 기법을 활용하여 일반적인 딥러닝 최적화(예: 양자화, 형태 추론, 연산자 융합)를 표준 컴파일러 단계로 재정의한다.
  • 새로운 연산자와 최적화를 정의하기 위한 확장 가능한 메커니즘을 도입하여 컴파일러 스택의 모듈화되고 조합 가능한 확장을 가능하게 한다.
  • 동일한 IR이 CPU, GPU, 고유 가속기 등 다양한 백엔드를 타겟으로 할 수 있도록 플랫폼에 종속되지 않는 연산자 표현 방식을 구현한다.
  • 복잡한 제어 흐름(예: RNN, TreeLSTM)을 가진 전체 모델을 호스트 언어 스크립팅에 의존하지 않고도 단일 최적화된 바이너리로 컴파일할 수 있도록 통합된 IR를 사용한다.
  • 수십 년에 걸친 전통적 컴파일러 연구의 성과를 활용하여 최적화를 구성함으로써 정확성과 효율성을 동시에 확보하고, 구현의 조합 폭발을 방지한다.

실험 결과

연구 질문

  • RQ1기능적이고 정적 타입의 IR이 복잡한 제어 흐름과 데이터 구조를 가진 최신 모델을 표현할 수 있도록 기존의 딥러닝 IR들을 통합하고 일반화할 수 있는가?
  • RQ2양자화, 연산자 융합과 같은 도메인 특화 최적화가 표준 컴파일러 단계로 재정의될 경우 효과적으로 조합될 수 있는가?
  • RQ3하나의 확장 가능한 IR이 표현력이나 조합 가능성을 희생시키지 않고도 다양한 하드웨어 플랫폼(CPU, GPU, FPGA, 가속기)에서 높은 성능을 달성할 수 있는가?
  • RQ4Relay는 복잡한 제어 흐름과 이질적인 하드웨어 타겟을 가진 모델을 최적화하고 배포하는 데서 기존 프레임워크를 얼마나 뛰어나게 성능을 낼 수 있는가?

주요 결과

  • Relay는 비전 및 NLP 워크로드에서 경쟁적인 성능를 달성하여, MxNet 대비 GRU에서 2.3배 빠르고 TreeLSTM에서 2배 빠른 성능 향상을 보였다.
  • CharRNN에서는 PyTorch 대비 1.4배 빠르고, TreeLSTM에서는 2배 빠른 성능 향상을 보였는데, 이는 복잡한 제어 흐름을 단일 최적화된 바이너리로 컴파일할 수 있기 때문이다.
  • ARM 기반 플랫폼(Raspberry Pi 3 및 Firefly RK3399)에서의 양자화 추론은 정확도 손실가 최소한으로 유지되었으며(예: ResNet-18의 69.4% 대비 70.7%), 극한의 양자화(8/16비트) 조건에서도 성능 향상이著명했다.
  • FPGA 기반 DNN 가속기에서 Relay는 다양한 하드웨어 설계의 효과적인 평가를 가능하게 했으며, 메모리 제한된 NLP 워크로드(예: TreeLSTM)에서는 배치 처리가 처리량을 향상시켰지만, 계산이 제한된 ResNets에서는 그렇지 않았다.
  • CPU 및 GPU에서의 연산자 융합과 레이아웃 변환은 상당한 성능 향상을 가져왔다: 요소별 연산의 융합 덕분에 MobileNet과 ResNet에서 최대 2.3배의 성능 향상이 있었다.
  • Relay는 TPU, Inferentia, 고유 FPGA 등 여러 하드웨어 백엔드를 성공적으로 타겟팅하여 최적화 능력을 희생시키지 않고도 강력한 이식성을 입증했다.

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

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

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

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