2

TCC モードのテスラ (フェルミまたはケプラー) と WDDM の Geforce (同世代) を比較しますか?

私が書いたプログラムは、カーネルを繰り返し起動する必要があるため、カーネルのオーバーヘッドに非常に深刻な問題があります。オーバーヘッドが非常に大きいため、多くのカーネルをまとめてマージし、カーネルの起動を減らすためにメモリスペースを交換する必要がありますが、これまでのところしか機能しません。 GPUメモリストレージの壮大なサイズに。

TCC モードはオーバーヘッドが少ないと聞きましたが、オーバーヘッドのパフォーマンスを CPU レベルにまで引き上げることはできますか?

いくつかのベンチマークを読んだので、少なくとも Geforce 280 GTX の場合、カーネル呼び出しのオーバーヘッドは CPU の関数呼び出しのオーバーヘッドよりも何千倍も長く、大量の繰り返し反復を必要とするメソッドの場合、ここで大きなパフォーマンスの違いが生じます。

4

2 に答える 2

1

WDDM ドライバーは、カーネルの起動をまとめてバッチ処理し、オーバーヘッドを削減します。したがって、カーネルを一緒にマージして起動のオーバーヘッドを削減できる場合は、WDDM ドライバーも同様になります (間に CUDA 呼び出しを使用してバッチ処理を防止しない限り)。したがって、TCC モードに切り替えても、この特定のユース ケースではあまり効果がありません。

問題は起動のオーバーヘッドであり、他の何かではありませんか? 起動する個別のカーネルの数と、これにかかる時間は?
(特に、起動オーバーヘッドが顕著になる非常に小さなカーネルの場合) カーネルを一緒にマージすると、コンパイラがカーネルをより適切に最適化できるようになる可能性があります。

于 2013-03-15T11:15:46.663 に答える
0

16 個のカーネルを起動していて、一度に起動するすべてのカーネルをマージしたときの速度は X でした。速度は 10 倍でしたが、カーネルをマージするとオーバーヘッドが発生しましたが、結果は素晴らしかったです。

これを利用できない (最大のジョブ サイズを起動する) 場合、これはメニー コア アーキテクチャであり、カーネルを起動するためにかかったオーバーヘッドを無駄にしています。

これがお役に立てば幸いです。

于 2013-03-15T08:45:54.537 に答える