我有一个CUDA代码,如:
__global__ void test()
{
for (unsigned int loop = 1; loop < MAX_LOOP; loop++)
{
unsigned char hash[32];
MD5Ctx ctx;
md5_init(&ctx);
md5_update(&ctx, "123", 3);
md_final(&ctx, hash);
}
}
然后我只用一个这样的线程启动内核:
cudaError_t status;
test<<<1, 1>>>();
cudaThreadSynchronize();
status = cudaGetLastError();
如果我将MAX_LOOP设置为3000,则一切都成功运行。当我将MAX_LOOP更改为5000甚至更大时,cudaGetLastError将返回错误:cudaErrorLaunchFailure(4)。