Skip to main content
QUICK REVIEW

[論文レビュー] cltorch: a Hardware-Agnostic Backend for the Torch Deep Neural Network Library, Based on OpenCL

Hugh Perkins|arXiv (Cornell University)|Jun 15, 2016
Advanced Neural Network Applications参考文献 27被引用数 11
ひとこと要約

cltorchは、TorchディープラーニングライブラリのためのOpenCLベースでハードウェアに依存しないバックエンドを提供し、AMD、NVIDIA、IntelのさまざまなGPU上でディープニューラルネットワークの学習を可能にします。ポータブルなOpenCLカーネルを活用し、暗黙のGEMMやGEMMの変形といった技術によって畳み込み層を最適化することで、AlexNet、VGG、GoogleNetなどのモデルで競争力ある性能を達成しています。

ABSTRACT

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やWinogradベースの畳み込みといったアルゴリズム的手法を用いて畳み込み層を最適化すること。
  • 畳み込み層の幾何的パターンに合わせて、既存のGEMM実装を変更してパフォーマンスを向上させること。
  • 実行時ロード可能な、ハードウェア固有の畳み込み実装を検討し、最適化を最大化すること。
  • 汎用フレームワークがKhronosが標準化したAPIレイヤー経由でハードウェア最適化された畳み込み関数を呼び出すランタイムリンクモデルを提案すること。

実験結果

リサーチクエスチョン

  • RQ1パフォーマンスを損なわせることなく、多様なGPUベンダ間でポータブルなディープラーニングフレームワークを実現するにはどうすればよいか?
  • RQ2特に畳み込み層において、ハードウェアに依存しないディープラーニングバックエンドの主なパフォーマンスボトルネックは何か?
  • RQ3OpenCLベースの実装は、マルチベンダハードウェア上でCUDAベースのフレームワークと同等の学習速度を達成できるか?
  • RQ4ポータブルなディープラーニングバックエンドにおける畳み込み演算の高速化に向けた、アルゴリズム的および実装戦略は何か?
  • RQ5HCCのような新規標準は、CUDAと非CUDAコードベースの間の格差をどれほど縮小できるか?

主な発見

  • cltorchは、AMD、NVIDIA、IntelのGPUを用いて、AlexNet、VGG、Overfeat、GoogleNetといった複雑なモデルの学習をOpenCLを介して成功裏に実行可能にした。
  • フレームワークは、Chintalaのconvnet-benchmarksページで、ハードウェアに依存しない機械学習フレームワークとして最高評価を獲得しており、他の代替品と比較して優れたパフォーマンスを示している。
  • 畳み込み層は、ポータブルなディープラーニングバックエンドにおける主なパフォーマンスボトルネックと特定され、特別な最適化戦略の必要性が示された。
  • 暗黙のGEMM、Winogradアルゴリズム、畳み込みの幾何的パターンに適合したGEMMの変形といった技術は、OpenCL上でパフォーマンスを顕著に向上させた。
  • プラグイン可能でハードウェア固有の畳み込み実装は、ポータビリティを維持しつつネイティブに近いパフォーマンスを達成する実現可能な道筋を示している。
  • HCCのような新規標準は、CUDAと非CUDAコードベースの開発格差を縮小する可能性を示しているが、複数ベンダでの長期的採用は不確かである。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。