3

私が読んでいるすべての論文で、GPUはマルチプロセッサで構成されており、各マルチプロセッサには、単一のワープを並行して実行できる8つのプロセッサがあります。
私が使用しているGPUはNvidia560で、マルチプロセッサは7つしかありませんが、各マルチプロセッサには48のプロセッサがあります。これは、Nvidia 560のすべてのマルチプロセッサが6つのワープを並行して実行できることを意味しますか?
Nvidia 560で並列実行されるスレッドの最大数は、並列で32 * 6 * 7 = 1344スレッドであると言えますか?(32 =ワープ、7 =マルチプライサー、6 =並行して実行されるワープ)

最速のNvidiaGPUにはいくつのマルチプロセッサがありますか?このGPUは何ですか?最大のGPUが持つグローバルメモリの最大量はどれくらいですか?

4

2 に答える 2

3

CUDAプログラミングガイド4.2から:

[...]すべての命令発行時に、ワープスケジューラーは、次の命令を実行する準備ができているスレッド(ワープのアクティブなスレッド)を持つワープを選択し、それらのスレッドに命令を発行します。

したがって、SMごとに同時に実行されるwaprの最大数は、ワープスケジューラ(WS)の数と同じです。

GeForce580には2.1アーキテクチャがあります。

コンピューティング機能2.xのデバイスの場合、マルチプロセッサは次のもので構成されます。[...]2つのワープスケジューラ

つまり、GPUの各SMは2つのワープ= 64スレッドを同時に実行でき、合計448スレッドになります。ただし、それよりもはるかに多くのスレッドを使用することを強くお勧めします。

ワープが次の命令を実行する準備ができるまでにかかるクロックサイクル数はレイテンシーと呼ばれ、すべてのワープスケジューラーが、そのレイテンシー期間中のすべてのクロックサイクルでワープに対して発行する命令を常に持っている場合に完全に利用されます。つまり、レイテンシが完全に「隠されている」場合です。

その他の質問について:GeForceGTX690には3072CUDAコアがあります。ただし、CUDAの場合、それぞれ1536コアの2つの別々のGPUのように見えるため、2つのGeForce 680よりも優れているわけではなく、多数のオンラインレビューから判断すると、後者は簡単にオーバークロックされます。GPUの中で最大のメモリは、nVidia Tesla M2090にインストールされています:GDDR5の6GiB(512 CUDAコア)。GeForce 6xxのようなKeplerアーキテクチャに基づくTeslasの新しいファミリがまもなくリリースされると思いますが、公式の発表は聞いていません。

于 2012-05-15T06:42:58.730 に答える
2

あなたが読んでいる論文は古いです。CUDA GPUの最初の2世代はMPごとに8コアであり、シングルワープから命令を発行します(単純化する場合は、各命令が8コアで4回実行され、シングルワープにサービスを提供します)。

あなたが持っているフェルミカードは新しくて異なっています。マルチプロセッサごとに2つの異なるワープからの命令を「二重発行」します(したがって、各ワープ命令は16コアで2回実行されます)。コードストリームで許可されている場合、これら2つのワープのいずれかからの追加の命令を残りの16コアに発行できます。限定された形式のアウトオブオーダー実行。この後者の機能は、コンピューティング機能2.1デバイスでのみ使用できます。コンピューティング機能2.0デバイスでは、マルチプロセッサあたり32コアしかありません。ただし、任意のシェーダークロックサイクルでのマルチプロセッサごとのMPリタイア命令ごとのワープの数は2つです。かなり深い命令パイプラインがあるため、発行とリタイアの間にかなりのレイテンシがあり、最大48がアクティブであることに注意してくださいマルチプロセッサごとにいつでも。

したがって、採用したい「並列実行」の定義に応じて、GTX560の7つのマルチプロセッサで14ワープまたは336ワープのいずれかが答えになります。私がこれに答えるために使用した情報は、主に現在のプログラミングガイドの付録Fからのものです。

于 2012-05-15T06:43:20.150 に答える