验证内核是否在CUDA中执行的方法
当我调用一个参数设置不正确的内核时(例如,每个块超过512个线程),或者当内核中的操作需要的比我的设备提供的更多时(例如,太多的寄存器),内核就不会执行。但没有异常或返回值来指示发生了什么 我想知道是否有办法验证是否执行了内核。试试这个验证内核是否在CUDA中执行的方法,cuda,Cuda,当我调用一个参数设置不正确的内核时(例如,每个块超过512个线程),或者当内核中的操作需要的比我的设备提供的更多时(例如,太多的寄存器),内核就不会执行。但没有异常或返回值来指示发生了什么 我想知道是否有办法验证是否执行了内核。试试这个 kernel<<<blocks, threads>>>(params); cudaError_t err = cudaGetLastError(); if (err != cudaSuccess) printf("E
kernel<<<blocks, threads>>>(params);
cudaError_t err = cudaGetLastError();
if (err != cudaSuccess)
printf("Error: %s\n", cudaGetErrorString(err));
内核(params);
cudaError_t err=cudaGetLastError();
if(err!=cudaSuccess)
printf(“错误:%s\n”,cudaGetErrorString(err));
这会给你一个错误的细节
编辑:以下是有关如何正确检查CUDA中错误的更详细答案:
- 您还可以从内核打印一些内容。这可能对调试有用。谢谢这是我的问题!