推論にはGPUまたはCPUを使用する必要がありますか?


11

GPUによってトレーニングされたディープラーニングニューラルネットワークを実行しています。これを複数のホストに展開して推論します。問題は、推論にGPUとCPUのどちらを使用するかを決定するための条件は何ですか?


以下のコメントから詳細を追加します。

私はこれが初めてなので、指導に感謝します。

  • メモリ:GPUはK80

  • フレームワーク:CudaおよびcuDNN

  • ワークロードあたりのデータサイズ:20G

  • 消費するノードの計算:スケールオプションを検討したいが、ジョブごとに1つ

  • コスト:理由が理にかなっている場合は、GPUオプションを購入できます

  • 展開:クラウドではなく、ホストされた独自のベアメタルサーバーで実行します。

現在、アプリケーションが正常に実行されているという理由だけでCPUで実行しています。しかし、その理由以外に、なぜGPUを検討するのかさえわかりません。


2つの潜在的なアプローチの比較についてアドバイスするには、他の人があなたのタスクの詳細を知っていると役に立ちます。たとえば、データのサイズ、GPUのメモリ容量、使用を計画しているコンピューティングノードの数、そしておそらくマップリデュースフレームワークも考えています。
ダイナミックスターダスト

@DynamicStardust ...そしてコスト。安価なEC2 CPUノードまたは高価なECW GPUノード?これは曖昧すぎる質問です。
スペースマン

回答:


7

@Dan @SmallChess、私は完全に同意しません。トレーニングでは、GPUが多くの視差を活用できるため、トレーニングがはるかに高速になります。推論の場合、この視差ははるかに少なくなる可能性がありますが、CNNはこれから利点を得て推論を高速化します。さて、あなたは自分自身に問いかける必要があります。この追加の依存関係(適切なGPU、適切なファイルのインストールなど)が必要ですか?

速度が問題でない場合は、CPUを使用してください。ただし、GPUを使用すると、私の経験ではGPUを1桁速くできることに注意してください。


興味深い点として、推論中の並列処理がCNNにメリットをもたらすのはなぜですか?
Dan

1
トレーニングを行うと、並列計算が明白になる場合があります。複数の入力があり、それぞれが完全に互いに独立してフィードフォワードする必要があります。たたみ込みの場合、カーネルは複数の入力「パッチ」で乗算されます。これらも並行して行うことができます。これがCNNを非常に強力にする理由です。トレーニングするために必要なパラメーターが少ないだけでなく、並列化も進んでいるため、GPUは非常に強力です。私はあなたが何に取り組んでいるのかわかりませんが、画像のセグメンテーション(ピクセルごとの分類)に取り組んでおり、推論にGPUを使用すると、速度が大幅に向上します(> x10)。
Laurens Meeus 2017

@LaurensMeeus私もこのスペクトルに不慣れで、クラウドVMのコスト分析を行っています。画像ではなくテキスト分析のみをトレーニングする場合でも、トレーニングにGPUを使用できますか?
Squ1rr3lz

1
@ Squ1rr3lz私はあなたがすべき95%です。あらゆる形態の並列コンピューティングは、GPUで有利になるはずです。私はこの分野の専門家ではありませんが、テキスト分析もたたみ込みレイヤー(2Dではなく1D)で行われることを考えると、これは既に高速化できる/するべき1つの理由です。可能であれば、GPUの有効化/無効化にどのような影響があるかを自分で試してください。
Laurens Meeus

5

CPUの代わりにGPUで推論を実行すると、トレーニングの場合とほぼ同じスピードアップが得られ、メモリのオーバーヘッドが少し減ります。

ただし、あなたが言ったように、アプリケーションはCPU上で問題なく実行されます。推論速度がアプリケーションのボトルネックになるところまで来たら、GPUにアップグレードするとそのボトルネックが緩和されます。


完全に同意する。それでも、CPUポストがトッピングされている理由はわかりません。
Laurens Meeus、2017年

1
NVIDIAの自身のブログから-はるかに低いトレーニング中に達成スピードアップよりもだこと-のGeForce GTXタイタンXは、16コアのIntel Xeon E5 CPUよりも5.3の間と6.7倍のパフォーマンスを提供します。devblogs.nvidia.com/...
seanhalle

4

深層学習では最適なソリューションに到達するために大量の計算が必要になるため、トレーニングにはGPUのみを使用します。ただし、デプロイに GPUマシンは必要ありません。

Appleの新しいiPhone Xを例にとってみましょう。新しいiPhone Xには、ファクシミリ検出のための高度な機械学習アルゴリズムがあります。Appleの従業員は、トレーニングと検証のためにマシンのクラスターを持っている必要があります。しかし、iPhone Xはモデルを実行するためだけにGPUを必要としません。


その説明をありがとう。そのとき私が理解していないのは、CPUが問題なく実行できる場合、推論の最良の解決策としてNvidiaがGPUの使用を促進する理由です。また、GoogleがCPUを使用してTPUを推し進めているのはなぜですか?並列計算とは何か関係がありますか?
Dan

3
@SmallChessは、iPhone Xに純粋に推論のための高度なTPUのようなプロセッサを搭載していませんでしたか?Extremetech.com/mobile/…–
Laurens Meeus

3
@SmallChessしかし、なぜそれができないのですか?多分私は完全に理解していません。まだ速度が向上していませんか?
Laurens Meeus 2017

2
正直なところ、NVidiaには素晴らしいマーケティング部門があり、推論にNVidia GPUの使用を促進することは彼らの最善の利益です。それはあなたのものではなく、彼らの最善の利益のためです。
seanhalle

1
NVIDIAのブログから:i7の6700K CPU対NVIDIAのTegraのX1のための"第二の258対242枚の画像/"推論を実行するとき:devblogs.nvidia.com/...を
seanhalle
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.