我最近几个月一直在使用英特尔GPU上的Open Cl C ++。我把断点放在__kernel
函数上。断点工作正常,但即使内核函数中存在断点,也会执行内核函数内的打印函数。我在AMD上尝试了相同的例子,它运行得很好。在英特尔,为什么打印数据,即使我在内核中设置了断点。
以下是一个例子:
// at kernel side code
__kernel void hello()
{
print("hello\n"); ---> Line 1
print("hi\n"); ---> Line 2
}
我在英特尔GPU上的第1行添加了断点。当我开始观察命令提示符或文本文件时,它将打印数据两到三次或有时多三次。即使在我的内核函数中添加断点之后,有人可以帮我解释为什么要打印数据。 提前感谢您对此问题的任何帮助。