Skip to main content
QUICK REVIEW

[논문 리뷰] A Metaprogramming and Autotuning Framework for Deploying Deep Learning Applications

Matthew W. Moskewicz, Ali Jannesari|arXiv (Cornell University)|2016. 11. 21.
Advanced Neural Network Applications참고 문헌 18인용 수 3
한 줄 요약

이 논문은 다양한 하드웨어 플랫폼에서 딥러닝 연산을 위한 이식 가능하고 고성능 GPU 코드 생성을 가능하게 하는 메타프로그래밍 및 오토튜닝 프레임워크인 Boda를 제안한다. C++ 기반 메타프로그래밍과 자동 튜닝을 결합함으로써, NVIDIA GPU에서는 메이커 라이브러리와 경쟁 가능한 성능를 달성하고, Qualcomm 및 AMD GPU로의 효율적 이식을 최소한의 수동 작업으로 가능하게 한다.

ABSTRACT

In recent years, deep neural networks (DNNs), have yielded strong results on a wide range of applications. Graphics Processing Units (GPUs) have been one key enabling factor leading to the current popularity of DNNs. However, despite increasing hardware flexibility and software programming toolchain maturity, high efficiency GPU programming remains difficult: it suffers from high complexity, low productivity, and low portability. GPU vendors such as NVIDIA have spent enormous effort to write special-purpose DNN libraries. However, on other hardware targets, especially mobile GPUs, such vendor libraries are not generally available. Thus, the development of portable, open, high-performance, energy-efficient GPU code for DNN operations would enable broader deployment of DNN-based algorithms. Toward this end, this work presents a framework to enable productive, high-efficiency GPU programming for DNN computations across hardware platforms and programming models. In particular, the framework provides specific support for metaprogramming, autotuning, and DNN-tailored data types. Using our framework, we explore implementing DNN operations on three different hardware targets: NVIDIA, AMD, and Qualcomm GPUs. On NVIDIA GPUs, we show both portability between OpenCL and CUDA as well competitive performance compared to the vendor library. On Qualcomm GPUs, we show that our framework enables productive development of target-specific optimizations, and achieves reasonable absolute performance. Finally, On AMD GPUs, we show initial results that indicate our framework can yield reasonable performance on a new platform with minimal effort.

연구 동기 및 목표

  • 딥러닝 연산을 위한 수작업 최적화된 GPU 커널의 높은 복잡성과 낮은 이식성 문제를 해결하기 위해.
  • 새로운 하드웨어 플랫폼이나 메이커가 지원하지 않는 하드웨어 플랫폼에 고성능 DNN 커널을 구현하기 위해 필요한 엔지니어링 노력 감소를 위해.
  • 프로그래밍 모델(CUDA 및 OpenCL)과 하드웨어 타겟(NVIDIA, AMD, Qualcomm GPU) 간의 성능 이식성 확보를 위해.
  • DNN 전용 커널을 위한 메타프로그래밍과 오토튜닝을 지원하는 생산적이고 확장 가능한 프레임워크 제공을 위해.
  • 자동 튜닝과 메타프로그래밍이 메이커 전용 라이브러리 없이도 모바일 및 신개념 GPU 플랫폼에서 경쟁 가능한 성능를 달성할 수 있음을 입증하기 위해.

제안 방법

  • 고수준 DNN 계산 그래프에서 최적화된 C 수준 GPU 커널을 생성하기 위해 C++ 기반의 스트링 템플릿 기반 메타프로그래밍 기법을 사용한다.
  • CUDA와 OpenCL 간의 저수준 차이를 추상화하여 프로그래밍 모델 간 문법적 및 의미적 호환성을 확보한다.
  • 메타코드 구조를 통해 정적 루프 언롤링과 코드 생성을 지원하며, 실제 커널 코드를 그대로 반영한다.
  • 하드웨어 플랫폼 전반에서 커널 구성(예: 타일 크기, 데이터 형식 등)을 탐색하고 최적의 설정을 선택하기 위해 오토튜닝을 통합한다.
  • 디버깅 및 최적화 가이드를 위한 생성된 코드의 프로파일링 및 분석을 가능하게 한다.
  • 기존 플랫폼(예: NVIDIA)에서 튜닝된 커널을 새로운 플랫폼(예: Qualcomm, AMD)에서의 튜닝을 위한 기초로 재사용한다.

실험 결과

연구 질문

  • RQ1메타프로그래밍 프레임워크가 NVIDIA GPU에서 cuDNN과 같은 메이커 최적화 라이브러리와 경쟁 가능한 성능를 달성할 수 있는가?
  • RQ2동일한 고수준 DNN 커널 사양이 CUDA와 OpenCL 간의 프로그래밍 모델 전환에 있어 최소한의 변경으로 얼마나 잘 이식 가능한가?
  • RQ3자동 튜닝이 모바일 GPU(예: Qualcomm) 및 신개념 아키텍처(예: AMD)와 같은 새로운 하드웨어 플랫폼으로의 빠른 성능 이식성을 얼마나 효과적으로 제공하는가?
  • RQ4이 프레임워크가 메이커가 지원하지 않는 하드웨어를 위한 효율적인 GPU 커널 생성에 필요한 개발 노력 감소에 얼마나 기여하는가?
  • RQ5메타프로그래밍이 고도로 최적화된 DNN 커널의 생성과 디버깅을 단순화하는 데 어떤 역할을 하는가?

주요 결과

  • NVIDIA GPU에서 프레임워크는 CUDA와 OpenCL 모두에서 cuDNN과 경쟁 가능한 성능를 달성하여 효과적인 성능 및 프로그래밍 모델 이식성 입증.
  • Qualcomm 모바일 GPU에서, 전자적 지식이 없는 개발자도 부분 시간으로 몇 주 내로 합리적인 성능를 달성할 수 있도록 지원.
  • AMD GPU에서 기존 코드의 오토튜닝을 통해 최소한의 수동 튜닝으로도 기능적이고 합리적인 성능의 기반을 확보함으로써, 프레임워크가 플랫폼 특화 최적화의 기초로 기능하는 것을 검증.
  • 코드 생성을 위해 C++ 템플릿을 사용한 메타프로그래밍 접근법이 Perl 기반 어셈블리 생성과 같은 저수준 대안보다 더 유지보수성과 디버깅 용이성이 뛰어남을 입증.
  • 프레임워크가 다양한 플랫폼 간에 튜닝된 설정을 재사용할 수 있는 능력이 DNN 커널을 새로운 하드웨어로 이식하는 데 필요한 총 엔지니어링 비용을 크게 감소시킴.
  • 결과적으로 이 프레임워크는 고성능 추론을 위한 기술적 대안으로서, 개방적이고 메이커 중립적인 선택지로서의 가능성을 시사한다.

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

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

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

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