[論文レビュー] Computational Performance Predictions for Deep Neural Network Training: A Runtime-Based Approach
本論文では、1つの基準GPUを用いて、さまざまなGPUアーキテクチャにおける深層ニューラルネットワーク(DNN)学習性能を実行時ベースで予測する手法を提案する。波のスケーリングまたは事前学習済みの多層パーセプトロンを用いて1イタレーションの実行時間をスケーリングすることで、ResNet-50 や Transformers などのモデルについて、6つのGPUアーキテクチャにおいて正確で低コストな性能予測が可能となる。この手法は、PyTorch用のオープンソースライブラリである Surfer に実装されている。
Deep learning researchers and practitioners usually leverage GPUs to help train their deep neural networks (DNNs) faster. However, choosing which GPU to use is challenging both because (i) there are many options, and (ii) users grapple with competing concerns: maximizing compute performance while minimizing costs. In this work, we present a new practical technique to help users make informed and cost-efficient GPU selections: make performance predictions using the help of a GPU that the user already has. Our technique exploits the observation that, because DNN training consists of repetitive compute steps, predicting the execution time of a single iteration is usually enough to characterize the performance of an entire training process. We make predictions by scaling the execution time of each operation in a training iteration from one GPU to another using either (i) wave scaling, a technique based on a GPU's execution model, or (ii) pre-trained multilayer perceptrons. We implement our technique into a Python library called Surfer and find that it makes accurate iteration execution time predictions on ResNet-50, Inception v3, the Transformer, GNMT, and DCGAN across six different GPU architectures. Surfer currently supports PyTorch, is easy to use, and requires only a few lines of code.
研究の動機と目的
- 性能とコストの両立を図る中で、DNN学習に最適なGPUを選定する課題に対処すること。
- 広範なベンチマークを実施する必要を減らし、1つの基準GPUのみを用いて正確な性能予測を可能にすること。
- PyTorch などの人気深いディープラーニングフレームワークをサポートする実用的で使いやすいツールの開発。
- 多様なDNNアーキテクチャとGPUハードウェアに適用可能なスケーラブルなソリューションの提供。
提案手法
- DNN学習の繰り返しの性質を活用し、1イタレーションの実行時間に基づいて、全学習の性能を予測する。
- GPU実行モデルに基づく波のスケーリングという技術を用い、基準GPUからターゲットGPUへの性能を外挿する。
- 測定された実行時間に基づいて多層パーセプトロンを学習させ、GPU間の性能スケーリングパターンを学習する。
- 予測パイプラインを、PyTorchモデルを最小限のコード変更でサポートするPythonライブラリ「Surfer」に統合する。
- 1つのGPUからの測定されたランタイムデータを用いて、他のアーキテクチャの予測をキャリブレーションし、完全な学習走行を必要としない。
- ハードウェアモデルの可用性に応じて、理論的(波のスケーリング)および学習済み(MLP)の両方のアプローチをサポートする。
実験結果
リサーチクエスチョン
- RQ11つのGPUのイタレーション実行時間が、他のGPUアーキテクチャにおける学習性能を信頼性高くスケーリングできるか。
- RQ2波のスケーリングと学習済みモデルは、多様なDNNに対してGPU間の性能をどれほど正確に予測できるか。
- RQ3提案手法によって、複数のGPUにおける完全なベンチマークの必要性はどの程度削減できるか。
- RQ4ResNet-50、Transformers、GANs などの異なるDNNアーキテクチャに、予測はどの程度一般化可能か。
- RQ5実際のディープラーニングワークフローに統合された際、この手法は実用的にどの程度の性能を示すか。
主な発見
- 提案手法は、6種類の異なるGPUアーキテクチャにおいて、DNN学習性能の予測において高い正確性を達成した。
- Surferを用いることで、数行のコードと1つの基準GPUのみで正確な予測が可能になった。
- 波のスケーリングと事前学習済みMLPの両方が信頼性のある性能予測を提供し、後者は多様なハードウェアに適応可能である。
- 本手法は、ResNet-50、Inception v3、Transformers、GNMT、DCGANの実行時間を成功裏に予測した。
- 時間のかかる完全な学習ベンチマークの必要性を顕著に削減し、コスト効率の良いGPU選定が可能になった。
- Surferライブラリは、PyTorchベースのディープラーニングワークフローにおいて実用的で効果的であることが実証された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。