2

私は、データ移動にバインドされた 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に?

ありがとう。

4

1 に答える 1

3

Robert Crovella が既にコメントしているように、ボトルネックは PCIe 帯域幅であり、GPU メモリ帯域幅ではありません。

GTX 680 は、M2070 の PCIe 2.0 インターフェイスで帯域幅を 2 ​​倍にする PCIe 3.0 をサポートしているため、M2070 を 2 倍上回る可能性があります。ただし、そのためには PCIe 3.0 をサポートするメインボードが必要です。

GPU メモリのバス幅は、GPU メモリ帯域幅にバインドされているプログラムであっても、それ自体は問題になりません。Nvidia は、GTX 680 のメモリ バスで使用される周波数を大幅に増加させることに成功しました。これは、M2070 に比べて減少したバス幅を補う以上のものです。

于 2012-10-15T18:10:01.377 に答える