何が良いですか?カーネルがある前にいくつかの待ち時間があり、各ステップ大きなカーネルまたはcudaストリームを使用する方が良いですか?
のために1つのカーネルで 1)を使用し、一つの大きなカーネル 2)を使用したストリーム:私はいくつかのステップでデータを処理する必要があり、それは私が2つのオプションをしたように私には見えますこの場合は本当に問題になるのでしょうか?大きなカーネルの待ち時間は、いくつかの小さなカーネルの待ち時間の合計と同じですか?
他の方法と比べて利点がありますか?
ありがとうございます。
大きなカーネルには大きなレジスタフットプリントもあり、パフォーマンスに大きな影響を及ぼします。 – talonmies
私はチェックしていませんが、理論的には、チェーン内のステップ間で変数が共有されていない場合、コンパイラはレジスタの再使用を維持して、レジスタ使用量の合計が使用するステップの使用量と同じになるようにします。それでも、それは良い点であり、共有メモリの使用はおそらく同じ方法で考慮されるべきです。つまり、チェーン内の1ステップのリソース使用率が他のステップよりもはるかに高い場合、他のステップで占有率が低下する可能性があるため、別々に実行するほうがよいでしょう。 –
ありがとう、私はデバイス機能と1つの大きなカーネルを使用します。 – zitmen