[논문 리뷰] cltorch: a Hardware-Agnostic Backend for the Torch Deep Neural Network Library, Based on OpenCL
cltorch는 Torch 딥러닝 라이브러리용 OpenCL 기반의 하드웨어에 종속되지 않는 백엔드를 제공하며, AMD, NVIDIA, Intel의 다양한 GPU에서 딥 네ural 네트워크의 훈련을 가능하게 한다. 포트폴리블한 OpenCL 커널을 활용하고, 암시적 GEMM 및 GEMM 변형과 같은 기법을 통해 컨볼루션 레이어를 최적화하여 AlexNet, VGG, GoogleNet 등의 모델에서 경쟁 가능한 성능을 달성한다.
This paper presents cltorch, a hardware-agnostic backend for the Torch neural network framework. cltorch enables training of deep neural networks on GPUs from diverse hardware vendors, including AMD, NVIDIA, and Intel. cltorch contains sufficient implementation to run models such as AlexNet, VGG, Overfeat, and GoogleNet. It is written using the OpenCL language, a portable compute language, governed by the Khronos Group. cltorch is the top-ranked hardware-agnostic machine learning framework on Chintala's convnet-benchmarks page. This paper presents the technical challenges encountered whilst creating the cltorch backend for Torch, and looks in detail at the challenges related to obtaining a fast hardware-agnostic implementation. The convolutional layers are identified as the key area of focus for accelerating hardware-agnostic frameworks. Possible approaches to accelerating the convolutional implementation are identified including: implementation of the convolutions using the implicitgemm or winograd algorithm, using a GEMM implementation adapted to the geometries associated with the convolutional algorithm, or using a pluggable hardware-specific convolutional implementation.
연구 동기 및 목표
- 비-NVIDIA GPU에서 Torch가 작동할 수 있도록 하드웨어에 종속되지 않는 백엔드를 제공함으로써.
- CUDA 기반 프레임워크와 비-CUDA 대체 솔루션 간의 GPU 워크로드에서의 성능 격차를 해소함으로써.
- 다양한 GPU 아키텍처 간의 고속 추론 및 훈련을 달성하는 데 도전하는 데서.
- 포트폴리블한 컴퓨팅 프레임워크를 통해 딥러닝 하드웨어 분야의 벤더 경쟁을 촉진함으로써.
- OpenCL 또는 유사 표준을 사용하는 미래의 포트폴리블 딥러닝 프레임워크를 위한 기반을 제공함으로써.
제안 방법
- Khronos 그룹이 규제하는 이식 가능한 병렬 컴퓨팅 언어인 OpenCL을 사용해 Torch용 백엔드를 구현함으로써.
- AMD, NVIDIA, Intel GPU 간의 이식성을 확보하기 위해 OpenCL 커널을 사용해 핵심 딥러닝 연산, 특히 컨볼루션 레이어를 구현함으로써.
- 암시적 GEMM 및 윈오그라드 기반 컨볼루션과 같은 알고리즘 기법을 사용해 컨볼루션 레이어를 최적화함으로써.
- 컨볼루션 레이어의 기하학적 패턴에 맞게 기존 GEMM 구현을 변형하여 성능을 향상시킴으로써.
- 런타임에 로드할 수 있는 플러그인 방식의 하드웨어 전용 컨볼루션 구현을 탐색함으로써 최대한의 최적화를 달성함으로써.
- 일반적인 프레임워크가 Khronos 표준화된 API 계층을 통해 하드웨어 최적화된 컨볼루션 함수를 호출할 수 있도록 런타임 링킹 모델을 제안함으로써.
실험 결과
연구 질문
- RQ1어떻게 다양한 GPU 벤더 간에 성능을 희생시키지 않고 딥러닝 프레임워크를 이식 가능하게 만들 수 있는가?
- RQ2특히 컨볼루션 레이어에서 하드웨어에 종속되지 않는 딥러닝 백엔드의 주요 성능 저하 요인은 무엇인가?
- RQ3OpenCL 기반 구현은 다수의 벤더 하드웨어에서 CUDA 기반 프레임워크와 경쟁 가능한 훈련 속도를 달성할 수 있는가?
- RQ4포트폴리블한 딥러닝 백엔드에서 컨볼루션 연산을 가속화하기 위한 알고리즘적 및 구현 전략은 무엇인가?
- RQ5HCC와 같은 신규 표준은 CUDA와 비-CUDA 코드베이스 간의 격차를 어느 정도 줄일 수 있는가?
주요 결과
- cltorch는 AMD, NVIDIA, Intel GPU에서 OpenCL를 사용해 AlexNet, VGG, Overfeat, GoogleNet과 같은 복잡한 모델의 훈련을 성공적으로 가능하게 했다.
- Chintala의 convnet-benchmarks 페이지에서 cltorch는 하드웨어에 종속되지 않는 머신러닝 프레임워크로 최상위 순위를 기록하여 다른 대안들에 비해 뛰어난 성능을 보임을 시사한다.
- 컨볼루션 레이어는 이식 가능한 딥러닝 백엔드에서 주요 성능 저하 요인으로 규명되었으며, 특수 최적화 전략이 필요하다.
- 암시적 GEMM, 윈오그라드 알고리즘, 컨볼루션 기하학에 맞게 조정된 GEMM 변형과 같은 기법은 OpenCL 환경에서 성능 향상에 상당한 기여를 한다.
- 플러그인 방식의 하드웨어 전용 컨볼루션 구현은 이식성은 유지하면서도 거의 네이티브 수준의 성능을 달성할 수 있는 실현 가능한 길을 제시한다.
- HCC와 같은 신규 표준은 CUDA와 비-CUDA 코드베이스 간의 개발 격차를 줄일 수 있지만, 다수의 벤더에서 장기적으로 보급될 지는 불확실하다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.