Skip to main content
QUICK REVIEW

[論文レビュー] maxDNN: An Efficient Convolution Kernel for Deep Learning with Maxwell GPUs

Andrew Lavin|arXiv (Cornell University)|Jan 27, 2015
Speech and Audio Processing参考文献 2被引用数 32
ひとこと要約

maxDNN は、NVIDIA Maxwell GPU 向けに高度に最適化された畳み込みカーネルであり、cuda-convnet2 のメモリアクセスパターンと Maxas SGEMM の低レベルアセンブリ最適化を組み合わせることで、Overfeat で 96.3%、AlexNet v.2 で最大 95.5% の計算効率を達成している。128ビットテクスチャロード、デュアルバッファリング、共有メモリタイリングを活用することで、この高い性能を実現した。このカーネルは、手動最適化アセンブリがディープラーニングワークロードにおける高度に最適化された BLAS カーネルと同等の性能を発揮できることを示している。

ABSTRACT

This paper describes maxDNN, a computationally efficient convolution kernel for deep learning with the NVIDIA Maxwell GPU. maxDNN reaches 96.3% computational efficiency on typical deep learning network architectures. The design combines ideas from cuda-convnet2 with the Maxas SGEMM assembly code. We only address forward propagation (FPROP) operation of the network, but we believe that the same techniques used here will be effective for backward propagation (BPROP) as well.

研究の動機と目的

  • NVIDIA Maxwell GPU におけるディープラーニングのための高効率な畳み込みカーネルを開発すること。これは、高いピークスループットにもかかわらず計算効率の欠如というギャップに対処することを目的としている。
  • Maxas SGEMM で用いられる低レベルアセンブリ最適化が、畳み込みカーネルに効果的に適用可能であることを示すこと。
  • 計算効率(FLOPs per clock として測定)を、cuDNN などの既存ライブラリよりも顕著に向上させること。特に、多様なネットワークアーキテクチャにおいてその向上を示すこと。
  • 同様の最適化手法が畳み込みニューラルネットワーク(CNN)の逆誤差伝搬(BPROP)に拡張可能であることを証明するための概念実証を提供すること。

提案手法

  • maxDNN は、Maxas SGEMM64 カーネルをベースとし、各出力マップ座標を入力パッチとフィルタ重みの行列乗算として扱うことで畳み込みを実行するように変更している。
  • インデックスのオーバーヘッドを低減し、最大配列サイズを増やし、メモリコalescingを向上させ、グローバルメモリのレイテンシを隠すために 128 ビットテクスチャロードを採用している。
  • グローバルメモリと共有メモリのロードをデュアルバッファリングすることで、メモリレイテンシを隠し、ワープ同期の必要性を減らし、割り当て効率(occupancy)を向上させている。
  • 共有メモリを用いて出力値を再編成することで、コalescedグローバルメモリ書き込みを可能にし、128 ビット共有メモリロードによるレジスタのゼロ初期化を実現している。
  • 1 回のイテレーションで 8 列のタイリングを実施し、8x8 レジスタブロッキングを採用。計算強度を最大化するために 64x64 の共有メモリタイルを用いている。
  • 計算効率を再定義し、直接畳み込みアルゴリズムに厳密に必要な FLOPs のみに報いるようにし、余分な演算を除外している。

実験結果

リサーチクエスチョン

  • RQ1SGEMM で用いられる低レベルアセンブリ最適化技術が、畳み込みカーネルに効果的に適用可能であり、Maxwell GPU で高い計算効率を達成できるか。
  • RQ2cuDNN が同じネットワークの異なるレイヤー間で計算効率に顕著なばらつきを示す理由は何か。カスタムチューニングされたカーネルによってこの問題を軽減できるか。
  • RQ3計算効率が共有メモリブロッキングサイズやフィルタサイズにどれほど依存するか。
  • RQ4フォワードプロパゲーションで用いられた同様の最適化戦略を、CNN の逆誤差伝搬(BPROP)に拡張可能か。
  • RQ5タイルサイズの倍数でない値(例:64 でない値)が計算効率に与える影響は何か。また、その影響を最小限に抑える方法はあるか。

主な発見

  • Overfeat ネットワークでは maxDNN が 96.3% の計算効率を達成した。これは、cuDNN がレイヤーごとに 39.6% から 74.0% の範囲にとどまるのと比べて顕著な優位性を示している。
  • AlexNet v.2 では、maxDNN が 93.4% から 95.5% の効率を達成した。これに対して cuDNN は 32.5% から 57.6% の範囲であり、一貫した高い性能を示した。
  • Overfeat の最初のレイヤーでは、フィルタ数(96)が 64×64 ブロックサイズの倍数でないため、計算効率がわずか 70.3% にとどまった。これは、アライメントに敏感であることを示している。
  • 不要な FLOPs を除外するように計算効率の指標を再定義した結果、フィルタサイズとバッチサイズがタイルサイズと整合している場合、maxDNN の効率は安定していることが明らかになった。
  • L2 キャッシュの高いヒットレートは、デバイスメモリ帯域幅がボトルネックではないことを示しており、他のブロックサイズを用いた最適化の余地があることを示唆している。
  • 著者らは、maxDNN が、手動最適化アセンブリにより Maxwell GPU で高効率な畳み込みが実現可能であることを証明したと結論づけている。これは、最良の SGEMM 実装でさえも凌駆する性能を発揮している。

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

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

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

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