查看有关CUDA问题的答案和评论,以及CUDA标记维基,我发现通常建议每个API调用的返回状态都应该检查错误.API文档包括像功能cudaGetLastError,cudaPeekAtLastError以及cudaGetErrorString,但什么是把这些结合在一起,以可靠地捕捉和无需大量额外的代码报告错误的最好方法?
我有以下代码使用循环展开:
#pragma unroll
for (int i=0;i<n;i++)
{
....
}
Run Code Online (Sandbox Code Playgroud)
这里如果n是一个定义的常量,一切正常.但是,如果n是变量,则性能会大幅降低.我注意到发出并执行了大约3次指令.我想我正在寻找一种在运行时进行循环展开的方法,可能这是不可行的.