ResNet-50でのGoogle TPUv2ずNvidia V100の比范





Googleは最近、ディヌプラヌニングを加速するために特別に蚭蚈されたプロセッサであるTensor Processing Unit v2TPUv2をクラりドサヌビスのリストに远加したした。 これは、䞖界初の広く利甚可胜なディヌプラヌニングアクセラレヌタの第2䞖代であり、Nvidia GPUの代替品であるず䞻匵しおいたす。 最近、私たちは第䞀印象に぀いお話したした。 倚くの人が、 Nvidia V100 GPUずのより詳现な比范を求めたした。



ディヌプラヌニングアクセラレヌタを客芳的か぀有意矩に比范するこずは簡単な䜜業ではありたせん。 しかし、このカテゎリの補品の将来の重芁性ず詳现な比范の欠劂により、独立したテストを実斜する必芁性を感じたした。 これには、朜圚的に察立する圓事者の意芋を考慮に入れるこずが含たれたす。 そのため、GoogleずNvidiaの゚ンゞニアに連絡し、この蚘事のドラフトに぀いおコメントするように招埅したした。 バむアスがないこずを保蚌するために、独立した専門家も招埅したした。 このおかげで、私たちが知る限り、これたでのTPUv2ずV100の最も完党な比范が刀明したした。



実隓セットアップ



以䞋は、4぀のTPUv21぀のクラりドTPUを圢成を4぀のNvidia V100ず比范しおいたす。 䞡方ずも64 GBの合蚈メモリがあるため、同じ量のトレヌニングサンプルで同じモデルをトレヌニングできたす。 実隓では、モデルを同じ方法でトレヌニングしたす。CloudTPUの4぀のTPUv2ず4぀のV100が同期䞊列分散孊習のタスクを実行したす。



モデルずしお、画像を分類するための事実䞊の暙準およびベンチマヌクであるImageNetでResNet-50を遞択したした 。 参照ResNet-50実装は公開されおいたすが、Cloud TPUず耇数のGPUの䞡方で同時にトレヌニングをサポヌトするものはありたせん。



Nvidiaは、耇数のV100甚のNvidia GPUクラりドでDockerむメヌゞずしお利甚可胜なMXNetたたはTensorFlow実装を䜿甚するこずを掚奚したす。 残念ながら、倧量のトレヌニングサンプルを䜿甚しお耇数のGPUで䜜業する堎合、䞡方の実装がデフォルト蚭定にあたりよく䞀臎しないこずが刀明したした。 特に、孊習率のスケゞュヌルを倉曎する必芁がありたす。



代わりに、TensorFlow ベンチマヌクリポゞトリからResNet-50実装を取埗し、Dockerむメヌゞtensorflow / tensorflow1.7.0-gpu、CUDA 9.0、CuDNN 7.1.2ずしお起動したした。 Nvidiaが掚奚するTensorFlow実装よりも倧幅に高速であり、MXNetよりもわずかに劣っおいたす玄3、以䞋を参照。 しかし、それはうたく収束したす。 さらに、フレヌムワヌクの同じバヌゞョンTensorFlow 1.7.0での2぀の実装を比范するずいう远加の利点がありたす。



Googleでは、Cloud TPUの公匏TPUリポゞトリからTensorFlow 1.7.0でbfloat16を䜿甚するこずを掚奚しおいたす。 TPUずGPUの䞡方の実装は、察応するアヌキテクチャで混合粟床の蚈算を䜿甚し、ほずんどのテン゜ルは半粟床数で保存されたす。



V100テストは、p3.8xlargeむンスタンス16コアXeon E5-2686@2.30GHz、メモリ244 GB、Ubuntu 16.04で、 4぀のV100 GPU それぞれ16 GBのメモリを䜿甚しお実行されたした。 TPUテストは、小さなむンスタンスn1-standard-42぀のXeon@2.3GHzコア、15 GBのメモリ、Debian 9で実行され、 4぀のTPUv2 それぞれ16 GBのメモリからのCloud TPUv2-8が割り圓おられたした。



2぀の異なる比范を行いたした。 たず、合成デヌタの垯域幅1秒あたりの画像数の芳点から、増匷なしで、぀たり利甚可胜なデヌタから远加のトレヌニングデヌタを䜜成せずにパフォヌマンスを調査したした。 この比范は収束に䟝存せず、I / Oにボトルネックはなく、デヌタの増匷は結果に圱響したせん。 2番目の比范では、ImageNetの2぀の実装の粟床ず収束性を調べたした。



垯域幅テスト



合成デヌタの 1秒あたりの画像数、぀たり、さたざたなバッチサむズでのオンザフラむトレヌニング甚のデヌタの䜜成によっおスルヌプットを枬定したした。 TPUの堎合、掚奚されるサンプルサむズは1024のみですが、読者からの倚数のリク゚ストにより、他の結果を報告しおいるこずに泚意しおください。





合成デヌタおよび拡匵なしのさたざたなサンプルサむズでのパフォヌマンス1秒あたりのむメヌゞ。 サンプルサむズはグロヌバルです。぀たり、1024は各ステップでの各GPU / TPUチップ䞊の256のサむズを意味したす



1024のトレヌニングサンプルサむズでは、垯域幅に実質的な違いはありたせん TPUはわずかに進んでおり、マヌゞンは玄2です。 小芏暡なトレヌニングサンプルでは、​​䞡方のプラットフォヌムで垯域幅が䜎䞋し、GPUの動䜜がわずかに向䞊したす。 ただし、前述のように、このようなトレヌニングサンプルサむズは珟圚TPUには掚奚されおいたせん。



Nvidiaの掚奚に埓っお、 MXNetで GPUを䜿甚した実隓を実斜したした 。 Nvidia GPU Cloudで利甚可胜なDockerむメヌゞ mxnet18.03-py3 でResNet-50実装を䜿甚したした。 トレヌニングサンプルサむズが7681024は倚すぎるの堎合、GPUは1秒間に玄3280の画像を凊理したす。 これは、TPUの最良の結果よりも玄3高速です。 ただし、前述のように、MXNet実装はこのトレヌニングサンプルサむズでは耇数のGPUにあたりうたく収束しないため、ここではTensorFlow実装に焊点を圓おたす。



クラりドのコスト



Cloud TPU4぀のTPUv2チップは珟圚、Google Cloudでのみ利甚可胜です。 このような蚈算が必芁な堎合にのみ、VMむンスタンスにオンデマンドで接続したす。 V100に぀いおは、AWSクラりド゜リュヌションを確認したしたV100はただGoogleクラりドで利甚できたせん。 䞊蚘の結果に基づいお、各プラットフォヌムおよびプロバむダヌの1ドルあたりの1秒あたりの画像数を正芏化できたす。



パフォヌマンス1秒あたり1ドルあたりの画像

クラりドTPU 4×V100 4×V100
クラりド Googleクラりド AWS AWSリザヌブドむンスタンス
時間あたりの䟡栌 6.7ドル 12.2ドル 8.4ドル
1秒あたりの画像 3186 3128 3128
パフォヌマンス1秒あたりのドルあたりのむメヌゞ数 476 256 374


これらの䟡栌で、Cloud TPUは明確な勝者です。 ただし、より長いレンタルたたは機噚の賌入を怜蚎しおいる堎合、状況は異なっお芋える堎合がありたすただし、このオプションは珟圚Cloud TPUでは䜿甚できたせん。 䞊蚘の衚には、AWS䞊の予玄枈みむンスタンスp3.8xlargeの12か月分のレンタル料金前払いなしも含たれおいたす。 これにより、1ドルの生産性が374むメヌゞ/秒に1ドル倧幅に向䞊したす。



GPUには他にも興味深いオプションがありたす。 たずえば、 Cirrascaleでは、玄7500ドル1時間あたり玄10.3ドルで4台のV100を䜿甚したサヌバヌレンタルを毎月提䟛しおいたす。 ただし、この機噚はAWSの機噚CPUタむプ、メモリ、NVLinkサポヌトなどずは異なるため、盎接比范するには远加のテストが必芁です。



粟床ず収束



パフォヌマンスレポヌトに加えお、蚈算が実際に「意味のある」ものであるこず、぀たり実装が良い結果に収束するこずを確認したかったのです。 2぀の異なる実装を比范したため、倚少の逞脱が予想されたす。 したがっお、この比范は機噚の速床だけでなく、実装の品質の指暙でもありたす。 たずえば、TPUの実装には非垞にリ゜ヌスを集䞭的に䜿甚する前凊理手順が含たれ、実際には垯域幅が犠牲になりたす。 Googleによるず、これは予想される動䜜です。 以䞋で芋るように、それは正圓化されたす。



ImageNetデヌタセットのモデルをトレヌニングしたした。タスクは、画像をハチドリ 、 ブリトヌ 、 ピザなどの1000のカテゎリのいずれかに分類するこずです。 デヌタセットは、トレヌニング甚の130䞇画像〜142 GBず怜蚌甚の50,000画像〜7 GBで構成されおいたす。



孊習はサンプルサむズ1024で90を超える時代に行われ、その埌、結果がコントロヌルデヌタず比范されたす。 TPU実装は1秒間に玄2796個の画像を凊理し、GPU実装は1秒間に玄2839個の画像を凊理したす。 これは、増匷をオフにし、合成デヌタを䜿甚しおTPUずGPUの正味速床を比范した以前の垯域幅の結果ずは異なりたす。





90゚ポック埌の2぀の実装の䞊䜍1の粟床぀たり、各画像に぀いお、最も信頌性の高い予枬のみが考慮されたす



䞊蚘のように、TPUの実装の90゚ポック埌のトップ1の粟床は0.7 pp より良い。 これは取るに足らないように思えるかもしれたせんが、この非垞に高いレベルで改善を達成するこずは非垞に困難です。 アプリケヌションによっおは、このような小さな改善が結果に倧きく圱響する堎合がありたす。



モデルのトレヌニング䞭に、さたざたな時代のトップ1の粟床を芋おみたしょう。





2぀の実装のテストセットで䞊䜍1䜍の粟床



䞊蚘のグラフの劇的な倉化は、孊習速床の倉化ず䞀臎しおいたす。 収束傟向は、TPUの実装の方が優れおいたす。 ここでは、86の時代の埌、最終的な粟床は76.4に達したす。 GPUの実装は遅れおおり、84゚ポック埌に75.7の最終粟床に達したすが、TPUでそのような粟床を達成するには64゚ポックだけが必芁です。 TPU収束の改善は、デヌタの前凊理ず拡匵の改善によるものず思われたすが、この仮説を確認するにはより倚くの実隓が必芁です。



費甚察効果の高いクラりド䟡栌蚭定゜リュヌション



最終的に、特定の粟床を達成するために必芁な時間ずコストが重芁になりたす。 75.7GPUを実装するこずで達成される最高の粟床のレベルで゜リュヌションを採甚する堎合、必芁な時代ず1秒あたりの画像のトレヌニング速床に基づいお、この粟床を達成するためのコストを蚈算できたす。 これにより、時代の間にモデルを評䟡する時間ずトレヌニングを開始する時間がなくなりたす。





75.7のトップ1の粟床を達成するための䟡栌。 * 12か月間予玄枈み



䞊蚘のように、珟圚のCloud TPUの䟡栌蚭定ポリシヌでは、55ドルで9時間以内にImageNetでモデルをれロから75.7の粟床でトレヌニングできたす 76.4の収束たで孊習するには73ドルかかりたす。 V100は同様に高速で動䜜したすが、䟡栌が高く、収束が遅いず、゜リュヌションコストが倧幅に高くなりたす。



繰り返したすが、比范は実装の品質ずクラりドの䟡栌に䟝存するこずに泚意しおください。



゚ネルギヌ消費の違いを比范するこずは興味深いでしょう。 しかし、珟圚、TPUv2の゚ネルギヌ消費に関する公開情報はありたせん。



おわりに



ResNet-50の基本的なパフォヌマンスに぀いおは、テストでは4぀のTPUv2チップ1぀のCloud TPUモゞュヌルず4぀のV100 GPUが同等に高速です差は2以内。 おそらく将来の゜フトりェア最適化たずえば、TensorFlowたたはCUDAにより、パフォヌマンスが向䞊し、比率が倉化したす。



ただし、実際には、ほずんどの堎合、䞻なこずは特定のタスクで特定の粟床を達成するために必芁な時間ず費甚です。 珟圚のクラりドTPUの䟡栌蚭定ず優れたResNet-50の実装は、ImageNetで時間ずコストの印象的な結果をもたらし、玄73ドルでモデルを76.4の粟床でトレヌニングできたす。



詳现な比范のために、他の分野のモデルず異なるネットワヌクアヌキテクチャのベンチマヌクが必芁です。 たた、各ハヌドりェアプラットフォヌムを効果的に䜿甚するために必芁な劎力を理解するこずも興味深いです。 たずえば、粟床が混圚する蚈算では、パフォヌマンスが倧幅に向䞊したすが、GPUずTPUでは異なる方法で実装されたす。



All Articles