-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を使用している場合、それは動作しますが、私はちょうどカウンターで