Skip to main content
QUICK REVIEW

[論文レビュー] Deep Tensor Convolution on Multicores

David Budden, Alexander Matveev|arXiv (Cornell University)|Nov 20, 2016
Tensor decomposition and applications参考文献 32被引用数 7
ひとこと要約

本論文は、CPU固有のメモリアクセスパターンとベクトル化を活用して、深層学習ワークロード向けにN次元Winogradベースの畳み込みを高度に最適化したマルチスレッドCPU実装を提案する。これにより、最先端のCPUフレームワークと比較して5–25倍の高いスループットを達成した。この手法により、GPUのメモリ制限を克服し、単一ノードシステム上での大規模3次元ConvNetの実行が可能になった。

ABSTRACT

Deep convolutional neural networks (ConvNets) of 3-dimensional kernels allow joint modeling of spatiotemporal features. These networks have improved performance of video and volumetric image analysis, but have been limited in size due to the low memory ceiling of GPU hardware. Existing CPU implementations overcome this constraint but are impractically slow. Here we extend and optimize the faster Winograd-class of convolutional algorithms to the $N$-dimensional case and specifically for CPU hardware. First, we remove the need to manually hand-craft algorithms by exploiting the relaxed constraints and cheap sparse access of CPU memory. Second, we maximize CPU utilization and multicore scalability by transforming data matrices to be cache-aware, integer multiples of AVX vector widths. Treating 2-dimensional ConvNets as a special (and the least beneficial) case of our approach, we demonstrate a 5 to 25-fold improvement in throughput compared to previous state-of-the-art.

研究の動機と目的

  • 動画およびボリュームメトリック画像解析における3次元ConvNetのサイズと表現力に制限を受けるGPUのメモリ上限を解消する。
  • 既存のCPUベースのConvNet実装が極めて遅いため、その問題を克服する。
  • マルチコアCPUアーキテクチャを活用して、3次元およびそれ以上の次元のConvNetを大規模かつ単一ノードで実行可能にする。
  • CPU最適化性能を実現するため、Winogradスタイルの高速畳み込みアルゴリズムをN次元カーネルへ一般化する。

提案手法

  • Winograd高速畳み込みフレームワークをN次元カーネルへ拡張し、3次元およびそれ以上の次元の畳み込みを効率的に計算可能にする。
  • CPUのメモリの緩い制約と効率的なスパースアクセスパターンを活用することで、手動によるアルゴリズム最適化の必要性を排除する。
  • 入力データおよびカーネルデータをキャッシュフレンドリーかつAVXアラインドな行列形式に変換し、ベクトル化とCPU利用率を最大化する。
  • 中国剰余定理を用いた行列分解により、スライディングウィンドウ畳み込みをスパースな要素ごとの積に変換する。
  • カーネルおよびデータ変換(C、B)と逆変換(A)を適用することで、畳み込みを行列-ベクトル演算に還元し、重複計算を最小限に抑える。
  • データレイアウトおよびメモリアクセスパターンを最適化し、マルチコア環境におけるデータ局所性を向上させ、遅延を低減する。

実験結果

リサーチクエスチョン

  • RQ1手動最適化なしに、CPUアーキテクチャ向けにN次元Winogradスタイル畳み込みを効率的かつ自動的に生成可能か?
  • RQ2CPUのメモリ特性とベクトル化能力をどれほど活用すれば、メモリ制限があるがGPU最適化された実装を上回れるか?
  • RQ3本手法は、既存のディープラーニングフレームワークと比較して、マルチコアシステム上でどの程度スケーリングするか?
  • RQ4CPUとGPUの3次元ConvNet実装間の性能差を著しく縮小でき、大規模な実用的推論を可能にするか?

主な発見

  • 1コアでのスループットは0.89 MVox/sに達し、TensorFlow(0.18 MVox/s)およびCaffe(0.19 MVox/s)と比較して4.9倍の向上を達成した。
  • 18コアを用いることでスループットは10.9 MVox/sに達し、TensorFlow(1.77 MVox/s)と比較して5.8倍、Caffe(0.41 MVox/s)と比較して26.6倍の向上を達成した。
  • マルチコアスケーラビリティは68%を示し、TensorFlow(55%)およびCaffe(12%)を著しく上回った。
  • GPUのメモリ制限を克服することで、単一ノードシステム上での大規模3次元ConvNetの実用的デプロイメントを可能にした。
  • 2次元ConvNetは特殊ケースとして本アプローチに一般化され、異なるネットワークタイプにおいても高いパフォーマンスを維持した。
  • パフォーマンス向上の要因は、効率的なメモリアクセス、AVXベクトル化、および手動最適化カーネルへの依存度の低減にある。

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

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

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

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