コンピューティング機能 3.5 (GK110) を備えた nvidia GPU について話しています。
各 GPU コアには最大 64 のアクティブなワープがありますが、ハードウェアはワープのリタイアをどのように処理しますか? 異なるグリッド ブロックからのワープやストリームでさえ、GPU の単一のコアで同時に動作できますか (コアとはマルチプロセッサを意味します。本質的にマルチコア GPU のコアであるためです)。
コアは、終了したワープをストリームからすばやくリタイアし、他のストリームから同じコアに他のワープをロードできますか?
私がこれを尋ねた理由は、下すのが難しい決定があるからです。
(1) さまざまなストリームから多くのスレッドを起動するコードを書くことができ、起動されたワープの約 2/3 は基本的に何もせず、すぐにリタイアします。
また:
(2) 必要な数のスレッドを正確に起動するコードを作成できますが、各スレッドは非常に重いインデックス計算で構成されます (いくつかのインデックス方程式を解くことにより、正しいインデックスを計算するためだけに必要な計算量は、 、それ以上でない場合は、(1) の実際の計算)。
したがって、GK110 が空のワープをすぐに廃棄して新しいワープに置き換えることができれば、不要なインデックス計算を完全に回避できるため、(1) の方が (2) よりも優れています。
これまでのところ、自明なケーステストでは2つの作品がほぼ同じであることが示されていますが、(1)が自明でないケースでより優れているかどうかはわかりません。