我剛剛注意到,我的CUDA內核使用的空間比'theory'計算的空間大一倍。例如CUDA共享內存佔用比所需空間多兩倍的空間
__global__ void foo()
{
__shared__ double t;
t = 1;
}
PTX信息示出:
ptxas信息:用於_Z3foov功能性質,0字節堆棧幀,0字節溢出存儲,0字節溢出負載
ptxas信息:用於4個寄存器,16個字節SMEM,32個字節CMEM [0]
但是雙重的大小隻有8.
更多例如:
__global__ void foo()
{
__shared__ int t[1024];
t[0] = 1;
}
ptxas info:使用3個寄存器,8192字節smem,32字節cmem [0]
有人可以解釋爲什麼嗎?
@ Fr34K:運行時間設置如何可能與編譯器和彙編器所做的靜態賦值*的大小有關? – talonmies
需要更多解釋。你初始化了多少塊? – Fr34K
@talonmies:感謝您的澄清。我錯過了這一點。 :) – Fr34K