CUDA カーネルが「理論」で計算されたスペースのちょうど 2 倍を使用していることに気付きました。例えば
__global__ void foo( )
{
__shared__ double t;
t = 1;
}
PTX 情報の表示:
ptxas 情報: _Z3foov の関数プロパティ、0 バイトのスタック フレーム、0 バイトのスピル ストア、0 バイトのスピル
ロード
しかし、double のサイズは 8 しかありません。
より多くの例:
__global__ void foo( )
{
__shared__ int t[1024];
t[0] = 1;
}
ptxas info : 3 つのレジスタを使用、8192 バイトの smem、32 バイトの cmem[0]
誰かが理由を説明できますか?