为什么 OpenCL 在 cpp 中使用 0xdeadbeef?
Why is OpenCL in cpp using 0xdeadbeef?
在这个 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 的是结果向量。但我不知道为什么。有什么想法吗?
OpenCL 通常不会将此值用于任何事情。这个使用 OpenCL 的特定示例使用 0xdeadbeef
来初始化一些向量。它这样做是为了让您可以使用这个众所周知的值来验证计算结果。
只要您看到这个值,它肯定是用于调试或验证目的。如果在程序执行期间该值没有改变,那么您肯定知道出了问题并且有一个错误需要修复。
在这个 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 的是结果向量。但我不知道为什么。有什么想法吗?
OpenCL 通常不会将此值用于任何事情。这个使用 OpenCL 的特定示例使用 0xdeadbeef
来初始化一些向量。它这样做是为了让您可以使用这个众所周知的值来验证计算结果。
只要您看到这个值,它肯定是用于调试或验证目的。如果在程序执行期间该值没有改变,那么您肯定知道出了问题并且有一个错误需要修复。