カーネルからエラーが発生しています: このプロセスでデバイスがアクティブな間は設定できません。
どういう意味か教えていただけませんか?
カーネルは の代替ですcudaMemset()
。カーネルは よりも高速である必要がありますcudaMemset()
。
カーネル:
__global__ void kernelMemSet ( float *sSum, float *cSum, int length ){
int idx = blockIdx.x * blockDim.x + threadIdx.x;
int idy = blockIdx.y * blockDim.y + threadIdx.y;
int tid = idx*length + idy;
cSum[idx] = 0.0f;
sSum[idx] = 0.0f;
}
カーネルはサイクルで呼び出され、最初の呼び出しでのみエラーが発生し、カーネルが 2 回目、3 回目に呼び出されると、エラーは発生しません。
cudaSetDevice()
beforeへの呼び出しによってエラーが発生する可能性はありますcudaGLSetDevice()
か? - 相互に排他的であるという回答が見つかりましたが、これが問題の原因ではありません。