在这个HandsOnOpenCL example中,他们使用类似下面的内容来声明向量。
std::vector<float> h_a(LENGTH); // a vector
std::vector<float> h_b(LENGTH); // b vector
std::vector<float> h_c (LENGTH, 0xdeadbeef); // c vector (result)
唯一使用0xdeadbeef的是结果向量。但我不明白为什么。有什么想法吗?
答案 0 :(得分:6)
OpenCL一般不会将此值用于任何事情。这个使用OpenCL的特定示例使用0xdeadbeef
初始化一些向量。它这样做是为了您可以使用这个众所周知的值来验证计算结果。
每当您看到此值时,它肯定会用于调试或验证目的。如果在执行程序期间没有更改该值,那么您肯定知道出现了问题,并且有一个错误需要修复。