OpenCL中int和cl_int的区别是什么?

YuY*_*ang 1 opencl

有很多数据类型的OpenCL,如int,cl_int,char,cl_char,"短","cl_short".但是int和之间有什么区别,什么cl_int时候应该使用cl_int而不是int

jpr*_*ice 7

intC/C++中的大小取决于机器.它保证至少为 16位,但这些天通常是32位,也可能是64位.这在OpenCL中的主机和设备之间传递数据时会出现问题 - 如果设备对于什么有不同的想法a的大小int,然后将int值传递给设备可能不会产生预期的结果.

OpenCL头提供了cl_int定义,以提供始终为 32位的数据类型,该数据类型与OpenCL设备期望的大小相匹配.这意味着您可以将cl_int值或cl_int值数组从主机传递到设备(并返回),而不会遇到大小不匹配的问题.

因此,无论何时编写处理将传递给设备的值或缓冲区的主机代码,都应始终使用cl_数据类型.