[論文レビュー] Scaling GRPC Tensorflow on 512 nodes of Cori Supercomputer
本稿は、Cori スーパーコンピュータの最大512ノードのIntel Xeon Phiノード上で、ResNet-50およびHEP-CNNモデルを用いて、GRPCベースの分散TensorFlowのスケーラビリティを評価している。通信ボトルネックは、GRPCの非効率な使用、パラメータサーバーの負荷不均衡、および最適でないインターコネクト利用に起因しており、高帯域幅インターコネクトを備えながらも、512ワーカーでのスケーリング効率はたったの23%にとどまっている。
We explore scaling of the standard distributed Tensorflow with GRPC primitives on up to 512 Intel Xeon Phi (KNL) nodes of Cori supercomputer with synchronous stochastic gradient descent (SGD), and identify causes of scaling inefficiency at higher node counts. To our knowledge, this is the first exploration of distributed GRPC Tensorflow scalability on a HPC supercomputer at such large scale with synchronous SGD. We studied scaling of two convolution neural networks - ResNet-50, a state-of-the-art deep network for classification with roughly 25.5 million parameters, and HEP-CNN, a shallow topology with less than 1 million parameters for common scientific usages. For ResNet-50, we achieve >80% scaling efficiency on up to 128 workers, using 32 parameter servers (PS tasks) with a steep decline down to 23% for 512 workers using 64 PS tasks. Our analysis of the efficiency drop points to low network bandwidth utilization due to combined effect of three factors. (a) Heterogeneous distributed parallelization algorithm which uses PS tasks as centralized servers for gradient averaging is suboptimal for utilizing interconnect bandwidth. (b) Load imbalance among PS tasks hinders their efficient scaling. (c) Underlying communication primitive GRPC is currently inefficient on Cori high-speed interconnect. The HEP-CNN demands less interconnect bandwidth, and shows >80% weak scaling efficiency for up to 256 nodes with only 1 PS task. Our findings are applicable to other deep learning networks. Big networks with millions of parameters stumble upon the issues discussed here. Shallower networks like HEP-CNN with relatively lower number of parameters can efficiently enjoy weak scaling even with a single parameter server.
研究の動機と目的
- Coriスーパーコンピュータのような大規模HPCシステムにおける、GRPCベース分散TensorFlowの弱スケーリング特性を評価すること。
- 特に通信プロトコルとパラメータサーバーアーキテクチャに関連する、大規模分散学習におけるパフォーマンスボトルネックを同定すること。
- 同じ条件下で、深層ネットワーク(ResNet-50)と軽量ネットワーク(HEP-CNN)のスケーリングを比較すること。
- パラメータサーバー数と負荷不均衡が、インターコネクト利用度と学習効率に与える影響を分析すること。
提案手法
- ResNet-50にはtf_cnn_benchmarkingスクリプトを、HEP-CNNにはtf.train.Supervisor APIを変更して使用し、Cori上での分散学習を可能にした。
- すべてのワーカーおよびパラメータサーバー(PS)を別々のKNLノードに配置し、最適化されたスレッドアフィニティとソースからコンパイルしたMKL最適化TensorFlowを設定した。
- I/Oボトルネックを排除するため、ダミーデータを用い、通信および同期オーバーヘッドにのみ注目した。
- 固定ミニバッチサイズ(128)の同期的確率的勾配降下法を用い、弱スケーリング効率を評価した。
- ワーカー数およびPSタスク数を変化させ、単一ノードパフォーランスに対する相対的なスケーリング効率を測定した。
- 通信パターン、PSタスク間の負荷分布、インターコネクト利用度を分析し、パフォーマンスボトルネックを特定した。
実験結果
リサーチクエスチョン
- RQ1同期的SGDを用いた512ノードのCoriスーパーコンピュータ上で、GRPCベース分散TensorFlowの弱スケーリング効率はどの程度か?
- RQ2パラメータサーバー数と負荷不均衡は、大規模スケーリングにおける通信効率と全体のスケーリングにどのように影響するか?
- RQ3高帯域幅インターコネクトを備えながらも、ResNet-50では128ワーカーを超えるとスケーリング効率が著しく低下するのはなぜか?
- RQ4HEP-CNNは1つのパラメータサーバーのみを用いても、256ワーカーまで高い効率を維持するのはなぜか?
- RQ5最適なall-reduce実装と比較して、GRPC通信プロトコルは帯域幅利用度をどの程度制限しているか?
主な発見
- ResNet-50は、32パラメータサーバーを用いて最大128ワーカーまでに80%以上のスケーリング効率を達成したが、512ワーカー(64 PSタスク)では23%に低下した。
- 大規模スケーリングにおけるパフォーマンス低下の主な要因は、Coriの高速インターコネクト上でGRPCの非効率さに起因する低帯域幅利用度であった。
- PS数が54を超えると、ResNet-50のパラメータの99%が54個の大きなテンソルに集中しており、負荷不均衡が主要なボトルネックとなった。
- HEP-CNNは、1つのパラメータサーバーのみを用いても、256ワーカーまでに80%以上の弱スケーリング効率を維持した。これは通信量が少ないためである。
- ResNet-50においてPS数を32から64に増加させても、パフォーマンス向上はほとんど得られず、負荷不均衡とプロトコル制限による収益逓減の兆候が見られた。
- 粗い推定では、ResNet-50の実際の通信パフォーマンスとピーク到達可能なパフォーマンスとの間に5〜6倍の差があると推定され、通信スタックにおける大幅な最適化の余地があることが示唆された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。