PTXAS -v
カーネル スタックの使用状況とレジスタ スピル (sm_35 アーキテクチャの場合) に関する CUDAの情報を完全に理解しようとしています。私のカーネルの1つでは、次のものが生成されます。
3536 bytes stack frame, 3612 bytes spill stores, 6148 bytes spill loads
ptxas info : Used 255 registers, 392 bytes cmem[0]
スタック フレームは、ローカル メモリに割り当てられます。ローカル メモリは、グローバル メモリがある場所に物理的に存在し、各スレッドにプライベートです。
私の質問は次のとおりです。
- レジスタ スピルに必要なメモリもローカル メモリに割り当てられていますか?
- レジスタのスピルとスタックの使用に必要なメモリの合計量は、[スレッド数]x[3536 バイト] に等しくなります。したがって、レジスタ流出ロード/ストアはスタック フレームで動作しますか?
- スピルストア/ロードの数は、転送のサイズの詳細を示していません。これらは常に 32 ビット レジスタですか? したがって、64 ビット浮動小数点数のスピルは 2 つのスピル ストアとしてカウントされますか?
- スピル ストア/ロードは L2 キャッシュにキャッシュされますか?