1
我在启用了printf扩展的ATI卡上使用OpenCL。我写了一个函数来打印变量:传递给函数的char *自变量带有ATI OpenCL printf扩展问题
void printVar(constant char* name, float var)
{
printf("%s: %f\r\n", name, var);
}
此代码的工作时,作为普通的C编译如预期,但如果我的OpenCL与
printVar("foo", 0.123);
调用它的结果总是有些随意char后跟0.123而不是“foo:0.123”。我猜编译器在识别char *字符串时遇到了问题,是否有解决方法或修复方法,以便我可以使用该函数?
我也得到了这种行为。值得注意的是,如果内核运行在我的CPU上(使用AMD APP SDK 2.3),而不是在我的HD 5870上运行,那么它的工作方式和预期一样。我想这可能是GPU上的缺陷或printf的未记录限制。 – Quantumboredom 2011-04-06 18:52:37
为了完整:我刚刚阅读了AMD APP SDK 2.4开发人员发行说明,他们声明printf目前不支持打印字符串。 – Quantumboredom 2011-04-07 09:18:07