聲明變量假設你在CUDA內核聲明一個新的變量,然後在多線程使用它,比如:在CUDA內核
__global__ void kernel(float* delt, float* deltb) {
int i = blockIdx.x * blockDim.x + threadIdx.x;
float a;
a = delt[i] + deltb[i];
a += 1;
}
和內核調用看起來像下面,多線程和塊:
int threads = 200;
uint3 blocks = make_uint3(200,1,1);
kernel<<<blocks,threads>>>(d_delt, d_deltb);
- 是 「A」 存儲在堆棧上?
- 是一個新的「一」爲每個線程創建時被初始化?
- 或者將每個線程獨立訪問「一」在一個未知的時間,有可能搞亂的算法?