web-dev-qa-db-ja.com

TensorFlowを介して機械学習を行うためにGeForceまたはQuadro GPUを選択する

Quadro GPUとGeForce GPUを使用する場合、TensorFlowのパフォーマンスに顕著な違いはありますか?

たとえば、GeForceカードのドロップを引き起こす倍精度演算または他の何かを使用しますか?

TensorFlow用のGPUを購入しようとしていますが、GeForceで問題ないかどうか知りたいと思いました。ご協力ありがとうございます

30
user2771184

GeForce TITANは素晴らしいと思い、機械学習(ML)で広く使用されています。 MLでは、ほとんどの場合、単精度で十分です。

GTXライン(現在はGeForce 10)のパフォーマンスの詳細については、Wikipediaで here をご覧ください。

ウェブ上の他のソースはこの主張をサポートしています。ここに引用があります 2013年のdoc-okからpermalink )。

比較のために、「エントリーレベル」の700ドルのQuadro 4000は、少なくともいくつかのVruiアプリケーションを使用した私の測定によると、530ドルのハイエンドGeForce GTX 680よりも大幅に遅く、GeForce GTX 680に最も近いパフォーマンスなんと3660ドルのQuadro 6000でした。

ディープラーニングを含むML固有の このテーマに特化したKaggleフォーラムディスカッション (2014年12月、 パーマリンク )があり、Quadro、GeForce、およびテスラシリーズ:

Quadro GPUは科学計算用ではなく、Tesla GPUがあります。 QuadroカードはCADを高速化するように設計されているため、ニューラルネットのトレーニングには役立ちません。それらはおそらくその目的のためにうまく使用できますが、それはお金の無駄です。

Teslaカードは科学計算用ですが、かなり高価になる傾向があります。幸いなことに、GeForceカードよりもTeslaカードが提供する機能の多くは、ニューラルネットワークのトレーニングには必要ありません。

たとえば、Teslaカードには通常、ECCメモリがあります。これは、必要ではありませんが、必要なものです。また、倍精度計算のサポートがはるかに優れていますが、ニューラルネットワークのトレーニングには単精度で十分であり、そのためのGeForceカードとほぼ同じパフォーマンスを発揮します。

Teslaカードの便利な機能の1つは、同等のGeForceカードよりも多くのRAMを持つ傾向があることです。より大きなモデルをトレーニングする(またはFFTベースの畳み込みのようなRAMを大量に使用する計算を使用する)場合は、RAMを増やしてください。

QuadroとGeForceを選択する場合は、間違いなくGeForceを選択してください。 TeslaとGeForceを選択する場合は、多額の資金があり、実際に追加のRAMを使用できる場合を除き、GeForceを選択してください。

注:作業しているプラ​​ットフォームとそのデフォルトの精度に注意してください。たとえば、 ここCUDAフォーラム (2016年8月)、1人の開発者が2つのTitan X(GeForceシリーズ)を所有しており、RまたはPythonのいずれでもパフォーマンスの向上が見られません_スクリプト。これは、Rがデフォルトで倍精度に設定された結果として診断され、CPU(Xeonプロセッサ)よりも新しいGPUのパフォーマンスが低下します。 Tesla GPUは、倍精度の最高のパフォーマンスとして引用されています。この場合、すべての数値をfloat32に変換すると、1つのTITAN Xでgmatrix + float32sを使用したnvBLAS 0.324で12.437sからパフォーマンスが向上します(最初のベンチマークを参照)。このフォーラムの議論から引用:

Titan Xの倍精度のパフォーマンスはかなり低いです。

34
Patric