分析IBM は、機械学習が Google Cloud の TensorFlow よりも POWER サーバー上で高速化されるだけでなく、46 倍も高速化されると自慢しています。
2 月に、Google ソフトウェア エンジニアの Andreas Sterbenz が、大規模な広告や推奨シナリオのクリック予測に Google Cloud Machine Learning と TensorFlow を使用する方法について書きました。
彼は、1 TB を超えるサイズで、何百万ものディスプレイ広告からの特徴値とクリック フィードバックを含む Criteo Labs のクリック ログに基づいて、ディスプレイ広告のクリックを予測するモデルをトレーニングしました。
データの前処理(60分)の後、60台のワーカーマシンと29台のパラメータマシンを用いて実際の学習を行いました。モデルの学習には70分かかり、評価損失は0.1293でした。これは結果の精度を示す大まかな指標であると認識しています。
その後、スターベンツ氏は、より良い結果を得るためにさまざまなモデリング手法を使用し、評価損失を削減しましたが、これらはすべて時間がかかり、最終的には 3 つのエポック (重みを更新するためにすべてのトレーニング ベクトルが 1 回使用される回数の測定) を持つディープ ニューラル ネットワークを使用しました。これには 78 時間かかりました。
しかしIBMはそれに興味がなく、POWER9サーバーとGPUで実行される自社のトレーニングフレームワークが、基本的な初期トレーニングにおいてGoogle Cloud Platformの89台のマシンよりも優れたパフォーマンスを発揮できることを示したいと考えていた。
チューリッヒのIBMリサーチのトーマス・パーネル氏とセレスティン・デュナー氏は、同じソースデータ(Criteoテラバイトクリックログ、42億のトレーニングデータと100万の特徴量)と、同じロジスティック回帰という機械学習モデルを使用しましたが、機械学習ライブラリは異なっていました。その名は「Snap Machine Learning」です。
彼らは、Power System AC922サーバー4台(POWER9 CPU 8基とNvidia Tesla V100 GPU 16基)上で稼働するSnap MLを使用してセッションを実行しました。70分かかっていたセッションは、91.5秒で完了し、46倍の速度となりました。
彼らは、Snap ML、Google TensorFlow、および他の 3 つの結果を示すグラフを準備しました。
TensorFlow と比べて46倍の速度向上は侮れない成果です。その成果は何によるものなのでしょうか?
Snap MLは、クラスタ内の異なるノード間でワークロードを分割するための階層的な並列処理レベルを備えており、アクセラレータユニットを活用し、個々のコンピューティングユニットでマルチコア並列処理を活用するとしている。
- まず、データはクラスター内の個々のワーカーノードに分散されます。
- ノード上では、データはホストCPUと加速GPUの間で分割され、CPUとGPUは並列に動作します。
- データはGPUの複数のコアに送信され、CPUのワークロードはマルチスレッド化されます。
Snap ML には、これら 3 つのレベルの並列処理を活用するための階層型アルゴリズム機能がネストされています。
IBM の研究者は、TensorFlow が並列処理を活用していないとは主張しておらず、その点に関して Snap ML と TensorFlow を比較していません。
しかし、彼らはこう言っています。「私たちは、GPU の超並列アーキテクチャを活用しながら、GPU メモリ内のデータの局所性を尊重し、大きなデータ転送オーバーヘッドを回避するように設計された特殊なソルバーを実装しています。」
論文によると、NVLink 2.0インターフェースを搭載したAC922サーバーは、Tesla GPUへのPCIeインターフェースを備えたXeonサーバー(Xeon Gold 6150 CPU @ 2.70GHz)よりも高速です。「PCIeベースのセットアップでは実効帯域幅が11.8GB/秒、NVLinkベースのセットアップでは実効帯域幅が68.1GB/秒でした。」
トレーニングデータはGPUに送信され、そこで処理されます。NVLinkシステムはPCIeシステムよりもはるかに高速にチャンクをGPUに送信し、318ミリ秒ではなく55ミリ秒で処理します。
IBM チームはまた、「スパースデータ構造に適用する場合、システムで使用されるアルゴリズムにいくつかの新しい最適化を採用しています」と述べています。
全体的に見ると、Snap MLはNVIDIA GPUをより有効に活用でき、汎用x86サーバーのPCIeリンク経由よりもNVLink経由の方が高速にデータを転送できるようです。POWER9 CPUとXeon CPUの速度比較は不明です。IBMは、POWER9とXeon SPの直接的な比較データをまだ公表していません。
また、同一のハードウェア構成で 2 つのツールを実行してみなければ、Snap ML が TensorFlow よりどれだけ優れているかはわかりません。
理由が何であれ、46 倍の削減は印象的であり、IBM が POWER9 サーバーを Nvidia GPU に接続し、Snap ML ライブラリを実行して機械学習を行う場所として推進する余地を大きく広げることになります。®