在下面的代码片段中,我尝试printf()
在代码中使用来尝试打印input[i]
计算结果,以便我可以看到它工作正常。
然而,这并没有像我希望的那样工作,因为引号printf()
与内核的字符串格式混淆,因此整个程序将无法编译。我尝试使用转义字符\"
,它确实允许我为内核键入字符串,但是编译时会给我预期的表达式和缺少字符的错误。
有谁知道如何解决这个问题?这是检查内核代码结果的最佳方法吗?
const char *KernelSource = "\n"
"__kernel void relax( \n"
" __global double* input, \n"
" __global double* output, \n"
" __global int N) \n"
"{ \n"
" int i = get_global_id(0); \n"
" if(i > 0 && i < N-1){ \n"
" input[i] = 0.25*input[i-1]+0.5*input[i]+0.25*input[i+1]; \n"
" printf("input[%d] %f \n", i, input[i] )\n"
" } \n"
"} \n"
"\n";