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

时间:2014-09-04 07:48:23

标签: opencl

OpenCL中有许多数据类型,例如intcl_intcharcl_char,'短',' cl_short&#39 ;.但是intcl_int之间有什么区别,我应该何时使用cl_int代替int

1 个答案:

答案 0 :(得分:7)

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

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

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