[論文レビュー] Efficient and Generic 1D Dilated Convolution Layer for Deep Learning
本論文は、Intel AVX-512およびBFloat16命令を活用し、LIBXSMMのBRGEMMカーネルを用いて最適化された汎用的な1次元拡張畳み込み層を、x86 CPU向けに提示している。Cascade LakeおよびCooper Lake CPUで理論ピーク性能の最大80%を達成し、エンドツーエンドのゲノム解析学習において8つのV100 GPUを上回る最大2.27倍の高速化を実現した。大規模データセットおよび多様なハイパーパrameter設定において線形にスケーリングする性能を示した。
Convolutional neural networks (CNNs) have found many applications in tasks involving two-dimensional (2D) data, such as image classification and image processing. Therefore, 2D convolution layers have been heavily optimized on CPUs and GPUs. However, in many applications - for example genomics and speech recognition, the data can be one-dimensional (1D). Such applications can benefit from optimized 1D convolution layers. In this work, we introduce our efficient implementation of a generic 1D convolution layer covering a wide range of parameters. It is optimized for x86 CPU architectures, in particular, for architectures containing Intel AVX-512 and AVX-512 BFloat16 instructions. We use the LIBXSMM library's batch-reduce General Matrix Multiplication (BRGEMM) kernel for FP32 and BFloat16 precision. We demonstrate that our implementation can achieve up to 80% efficiency on Intel Xeon Cascade Lake and Cooper Lake CPUs. Additionally, we show the generalization capability of our BRGEMM based approach by achieving high efficiency across a range of parameters. We consistently achieve higher efficiency than the 1D convolution layer with Intel oneDNN library backend for varying input tensor widths, filter widths, number of channels, filters, and dilation parameters. Finally, we demonstrate the performance of our optimized 1D convolution layer by utilizing it in the end-to-end neural network training with real genomics datasets and achieve up to 6.86x speedup over the oneDNN library-based implementation on Cascade Lake CPUs. We also demonstrate the scaling with 16 sockets of Cascade/Cooper Lake CPUs and achieve significant speedup over eight V100 GPUs using a similar power envelop. In the end-to-end training, we get a speedup of 1.41x on Cascade Lake with FP32, 1.57x on Cooper Lake with FP32, and 2.27x on Cooper Lake with BFloat16 over eight V100 GPUs with FP32.
研究の動機と目的
- ゲノム解析および音声処理分野におけるCPUベースのディープラーニングワークロードにおける、効率的で汎用的な1次元畳み込み実装の不足に対処すること。
- AVX-512およびBFloat16命令を活用して、x86 CPU向けに1次元拡張畳み込み層を最適化し、パフォーマンスとエネルギー効率を向上させること。
- さまざまな入力幅、フィルターサイズ、拡張率、チャネル設定において高いパフォーマンスを達成すること。
- マルチソケットCPUシステムを用いた大規模ゲノムデータセットにおいて、スケーラビリティと効率性を実証すること。
- 実世界の学習シナリオにおいて、oneDNN やGPUベースの実装を上回る性能を発揮すること。
提案手法
- 単精度(FP32)およびBFloat16(BF16)精度計算に、LIBXSMMのバッチリダクションGEMM(BRGEMM)カーネルを活用する。
- JITコード生成とキャッシュブロッキングを適用し、メモリアクセスパターンを最適化し、データ局所性を向上させる。
- im2col変換を用いて1次元拡張畳み込みをGEMM演算にマッピングし、高度に最適化されたGEMMカーネルの再利用を可能にする。
- AVX-512およびAVX-512 BFloat16命令を活用して、最新のIntel CPUにおけるベクトルレベル並列性を最大限に活用する。
- 可変な入力幅、フィルターサイズ、拡張率、チャネル数をサポートする汎用インターフェースを設計する。
- 最適化されたレイヤーを、AtacWorksのような実世界のゲノムモデル向けのエンドツーエンド学習パイプラインに統合する。
実験結果
リサーチクエスチョン
- RQ1GEMMベースのアプローチと最新の命令セットを用いて、x86 CPU上で汎用的な1次元拡張畳み込みレイヤーを効率的に実装できるか?
- RQ2本実装のパフォーマンスは、さまざまなハイパーパrameter設定において、oneDNNおよびGPUベース(V100)の実装と比較してどの程度異なるか?
- RQ3データセットサイズの増加およびマルチソケットCPU構成において、最適化された1次元畳み込みレイヤーはどの程度スケーリングするか?
- RQ4AVX-512を活用したBFloat16精度は、CPUベースのゲノム解析学習ワークロードでどの程度のパフォーマンス向上をもたらすか?
- RQ5非常に長い入力シーケンスを扱うメモリ制限下のシナリオにおいて、最適化されたレイヤーはメモリ不足エラーを発生させずに処理を実行できるか?
主な発見
- 最適化された1次元畳み込みレイヤーは、Intel Xeon Cascade LakeおよびCooper Lake CPUで理論ピーク性能の最大80%を達成した。
- 16ソケットのCascade Lake CPUでは、AtacWorksモデルを用いたFP32学習において、8つのV100 GPUを上回る1.41倍の高速化を達成した。
- BFloat16精度を用いることで、16ソケットのCooper Lakeは8つのV100 GPUを2.27倍高速化し、CPUにおけるBFloat16の利点を実証した。
- 入力幅、フィルターサイズ、拡張率、チャネル数のすべてのテスト設定において、oneDNNライブラリを上回る性能を発揮した。
- データセットサイズに比例して線形にスケーリングする:トレーニングセットサイズが9.16倍に増加した際、1エポックあたりのトレーニング時間が約9.16倍に増加したが、パフォーマンスは一貫して維持された。
- 60万塩基のシグナルトラックセグメントをメモリ不足エラーなしに正常に学習に成功した一方、V100 GPUはメモリ制限のため失敗した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。