小编Shu*_* Li的帖子

启动大量线程和块时,CUDA printf()崩溃

我正在使用CUDA 6.5 + VS2013 + GTX Titan黑色.我观察到当线程总数大于65536时,以下打印代码将崩溃.我googled了一下但没有看到任何有用的东西.有没有其他人观察到同样的行为?还是有人可以提供一些解释吗?非常感谢你!

__global__ void testKernel(int val)
{
    int X = blockDim.x * blockIdx.x + threadIdx.x;
    int Y = blockDim.y * blockIdx.y + threadIdx.y;
    printf("[%d, %d]:\t" "\tValue is:%d\n", X, Y, val);
}

void main(){

    dim3 block(16,16);
    dim3 grid(16,16);
    testKernel << <grid, block >> >(10);
    cudaDeviceSynchronize();
    cudaGetLastError();

    cudaDeviceReset();
}
Run Code Online (Sandbox Code Playgroud)

当我使用块(32,16)和网格(16,16)时,我收到以下错误消息:

Gpu API调用(启动超时并终止)...

printf cuda

1
推荐指数
2
解决办法
1181
查看次数

标签 统计

cuda ×1

printf ×1