DirectComputeの最適なnumthreadsセットアップ



Directcompute Optimal Numthreads Setup



解決:

これはかなりGPU固有ですが、NVIDIAハードウェアを使用している場合は、CUDA OccupancyCalculatorを使用してみることができます。

DirectComputeを使用していることは知っていますが、それらは同じ基盤となるハードウェアにマップされます。 FXCの出力を見ると、アセンブリ内のスレッドごとの共有メモリサイズとレジスタがわかります。また、あなたはあなたが持っているカードから計算能力を推測することができます。計算機能は、cs_4_0、cs_4_1、cs_5_0などのプロファイルと同等のCUDAです。



目標は、「占有率」を増やすことです。つまり、占有率== 100%-%idle-due-to-HW-overhead


プロファイリングは、特定のハードウェアで最大のパフォーマンスを保証する唯一の方法です。ただし、原則として、ライブレジスタ数を低く(16以下)維持し、大量の共有メモリを使用しない限り、正確に256スレッドのスレッドグループでほとんどのコンピューティングハードウェアを飽和させることができます(少なくとも8つほどのグループを再ディスパッチします)。