[論文レビュー] Parallel Multi Channel Convolution using General Matrix Multiplication
本論文は、入力画像を複製しないで直接処理することで、メモリを多く消費する im2col 変換を回避する GEMM に基づくマルチチャネルマルチカーネル(MCMK)畳み込み手法を提案する。入力を再配置せずに、局所性を向上させた GEMM 操作のシーケンスとして畳み込みを再構成することで、さまざまな CNN アーキテクチャにおいて CPU および組み込み ARM プロセッサの両方で im2col よりも高速な推論を実現した。
Convolutional neural networks (CNNs) have emerged as one of the most successful machine learning technologies for image and video processing. The most computationally intensive parts of CNNs are the convolutional layers, which convolve multi-channel images with multiple kernels. A common approach to implementing convolutional layers is to expand the image into a column matrix (im2col) and perform Multiple Channel Multiple Kernel (MCMK) convolution using an existing parallel General Matrix Multiplication (GEMM) library. This im2col conversion greatly increases the memory footprint of the input matrix and reduces data locality. In this paper we propose a new approach to MCMK convolution that is based on General Matrix Multiplication (GEMM), but not on im2col. Our algorithm eliminates the need for data replication on the input thereby enabling us to apply the convolution kernels on the input images directly. We have implemented several variants of our algorithm on a CPU processor and an embedded ARM processor. On the CPU, our algorithm is faster than im2col in most cases.
研究の動機と目的
- ディープラーニングフレームワークにおける im2col 変換が引き起こす高いメモリフットプリントと悪いデータローカリティを解消すること。
- データ複製なしに最適化された GEMM ライブラリを効果的に活用できる MCMK 畳み込みの実装を可能にすること。
- メモリ制限のあるシステム、特に組み込みプロセッサにおいて、メモリトラフィックを削減し、データ再利用を増やすことでパフォーマンスを向上させること。
- 異なる CNN レイヤーおよびハードウェアプラットフォームにおける GEMM に基づく MCMK 畳み込みのパフォーマンスを評価すること。
- アーキテクチャ的文脈に基づいて最適な MCMK 畳み込み実装を選択するためのコストモデルを開発すること。
提案手法
- 入力を列行列に展開せずに、MCMK 畳み込みを 1 回以上の GEMM 操作として定式化し、データ複製を回避する。
- 1 回の GEMM 呼び出しと、部分結果を統合する後処理の積み上げステップを実行する kn2row アルゴリズムを導入する。
- 入力特徴マップへの直接アクセスを維持することで、空間的局所性を保ち、メモリトラフィックを削減する。
- CPU および ARM Cortex-A57 プロセッサ向けに、高度に最適化された GEMM ライブラリを用いて、複数のアプローチのバリエーションを実装・チューニングした。
- ハードウェアレベルの並列処理とメモリ階層を効果的に活用できる、既存の事前チューニング済み GEMM ルーチンを活用する。
- im2col の Toeplitz 行列構築を避ける代わりに、最小限のデータ移動で畳み込み操作を直接 GEMM にマッピングする。
実験結果
リサーチクエスチョン
- RQ1im2col 変換を回避することで、メモリフットプリントを削減し、データローカリティを向上させた GEMM を用いた MCMK 畳み込みは、効率的に実装可能か?
- RQ2異なる CNN アーキテクチャおよびハードウェアプラットフォームにおいて、GEMM に基づく MCMK 畳み込みのパフォーマンスは、im2col と比べてどうか?
- RQ3CPU および組み込み ARM プロセッサにおいて、どの GEMM に基づく MCMK バリエーションが最高のパフォーマンスを発揮するか?
- RQ4畳み込み層の種類(例:初期層 vs. 後期層)によって、GEMM に基づく MCMK 畳み込みのパフォーマンスに顕著な差が生じるか?
- RQ5特定のハードウェアおよびネットワーク構成において、最適な MCMK 実装の選定を決定づける要因は何か?
主な発見
- 提案された GEMM に基づく MCMK 畳み込み手法は、CPU および ARM プロセッサの両方で、テストされた大多数のシナリオにおいて im2col を上回るパフォーマンスを達成した。
- Intel i5-4570 CPU では、ほとんどのネットワーク層およびカーネルサイズにおいて、新しい手法が im2col よりも高速な推論を実現した。
- ARM Cortex-A57 組み込みプロセッサでは、GEMM に基づくアプローチが im2col と比較して顕著にメモリ圧力を軽減し、パフォーマンスを向上させた。
- パフォーマンスは、異なる CNN レイヤー間で顕著に変動し、どの手法も普遍的に最適とは限らないことが明らかになった。
- 1 回の GEMM 呼び出しとその後の積み上げ処理を実行する kn2row バリエーションは、高いデータローカリティと優れたパフォーマンスを実現した。
- 結果から、ハードウェアおよびネットワークの文脈に基づいて MCMK 畳み込み実装を選択するためのコストモデルの構築が不可欠であることが示された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。