-1
最初我在我的代碼中使用了blockIdx.x,但我想刪除它,而是有一個全局值,並在我的塊中使用它而不是blockidx.x。由於我的代碼太大,當我以大輸入尺寸運行代碼時,它會掛起,我認爲它可以提供幫助。我自動增加計數器,但是當我運行代碼時,它會掛起。任何人都可以看看我的代碼,看看我是否做錯了什麼?用計數器替換blockId
__device__ int counter = 0;
__global__ void kernel(int * ginput, int * goutput)
{
const int tid = threadIdx.x;
const int id = threadIdx.x + blockIdx.x * blockDim.x;
in myval = ginput[id];
if (tid == 0) {
atomicAdd(&counter, 1);
}
__syncthreads();
if (counter == 0) {
goutput[tid] = ...;
}
if (counter > 0) {
...
}
}
如果我使用的,而不是在我的代碼計數器blockIdx.x它的工作原理,但我只是想反