2

コンピューティング機能 3.5 (GK110) を備えた nvidia GPU について話しています。

各 GPU コアには最大 64 のアクティブなワープがありますが、ハードウェアはワープのリタイアをどのように処理しますか? 異なるグリッド ブロックからのワープやストリームでさえ、GPU の単一のコアで同時に動作できますか (コアとはマルチプロセッサを意味します。本質的にマルチコア GPU のコアであるためです)。

コアは、終了したワープをストリームからすばやくリタイアし、他のストリームから同じコアに他のワープをロードできますか?

私がこれを尋ねた理由は、下すのが難しい決定があるからです。

(1) さまざまなストリームから多くのスレッドを起動するコードを書くことができ、起動されたワープの約 2/3 は基本的に何もせず、すぐにリタイアします。

また:

(2) 必要な数のスレッドを正確に起動するコードを作成できますが、各スレッドは非常に重いインデックス計算で構成されます (いくつかのインデックス方程式を解くことにより、正しいインデックスを計算するためだけに必要な計算量は、 、それ以上でない場合は、(1) の実際の計算)。

したがって、GK110 が空のワープをすぐに廃棄して新しいワープに置き換えることができれば、不要なインデックス計算を完全に回避できるため、(1) の方が (2) よりも優れています。

これまでのところ、自明なケーステストでは2つの作品がほぼ同じであることが示されていますが、(1)が自明でないケースでより優れているかどうかはわかりません。

4

1 に答える 1

2

各GPUコアには、最大64のアクティブなワープがあります。ハードウェアはワープリタイアメントをどのように処理しますか?異なるグリッドブロックまたはストリームからのワープは、GPUのシングルコアで同時に機能しますか(コアとは、本質的にマルチコアGPUのコアであるため、マルチプロセッサを意味します)?

はい、異なるスレッドブロックからのワープは共存でき、単一のSMで実行する準備ができています。これらの異なるスレッドブロックは、同じカーネルまたは異なるカーネル、異なるストリームからのものである可能性があります。ここでは、同時に実行されるさまざまなカーネルのスレッドブロックについて説明します

コアは、完成したワープをストリームからすばやくリタイアし、他のワープを他のストリームから同じコアにロードできますか?

はい。ワープの割り当てが発生する前に、作業の分割は最初にスレッドブロックによって処理されます。最初にスレッドブロックがSMでスケジュールされ、次に実行するワープを選択するプロセスが発生します。SMに使用可能なスレッドブロックスロットがある限り(共有メモリやレジスタの使用など、スケジューリングに対する他の制限がない限り)、使用可能なカーネルからの新しいスレッドブロックをcc3.5SMでスケジュールできます。

于 2013-03-11T04:06:59.290 に答える