私は、データ移動にバインドされた CUDA アプリケーションを持っています (つまり、ホストからデバイスへの大きなメモリコピーで、カーネルで行われる計算は比較的少ない)。古い GPU では計算に依存していましたが (例: QUADRO FX 5800)、Fermi および Kepler アーキテクチャではそうではありません (最適化されたコードの場合)。
コードを GTX 680 に移動したところ、計算パフォーマンスの向上に感銘を受けましたが、ホストと GPU の間の帯域幅が低下したように見えて困惑しました (Fermi M20270 と比較して)。
要するに、既製の SDK 帯域幅テストを実行すると、GTX 680 では ~5000 MB/秒、M2070 では ~5700 MB/秒になります。GTXが「単なるゲーマーカード」であることは認識していますが、バス幅を除いて、GTX 680のスペックはM2070よりも印象的です.
ウィキペディアより: M2070: 102.4 GB/秒、GDDR3、512 ビット バス幅 GTX 680: 192 GB/秒、GDDR5、256 ビット バス幅
書き込み結合メモリを使用するために、「--wc --memory=pinned」を使用して定型テストを実行しています。
このテストで得られた改善された結果は、最適化された CUDA コードで得られた結果に反映されています。
残念ながら、同じマシンでテストを実行することはできません (ビデオ カードを切り替えるだけです)。しかし、古いマシンと新しいマシンで GTX 680 を試してみたところ、同じ「劣化した」結果が得られました (M2070 で得たものと比較して)。 )。
M2070 Quadro で GTX 680 よりも高いスループットのメモリコピーを達成できることを確認できる人はいますか? 帯域幅仕様はバス幅を考慮していませんか? もう1つの可能性は、GTX 680でメモリコピーを正しく/最適に実行していないことですが、その場合、帯域幅テスト用のパッチがあり、680よりも高速にデータを転送していることも示されますM2070に?
ありがとう。