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

OpenCL中int和cl_int的区别是什么?,opencl,Opencl,OpenCL中有许多数据类型,例如int、cl_int、char、cl_char、'short','cl_short'。但是int和cl_int之间有什么区别,什么时候应该使用cl_int而不是int?在C/C++中,int的大小取决于机器。它保证至少是16位,但现在通常是32位,也可能是64位。在OpenCL中,在主机和设备之间传递数据时会出现问题-如果设备对int的大小有不同的想法,那么将int值传递给设备可能不会产生预期的结果 OpenCL头提供cl_int定义,以提供始终为32位的数据类

OpenCL中有许多数据类型,例如int、cl_int、char、cl_char、'short','cl_short'。但是int和cl_int之间有什么区别,什么时候应该使用cl_int而不是int?

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

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

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

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

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


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

没有任何帮助吗?@DavidRönnqvist实际上我已经阅读了该页,但是我仍然不知道什么时候使用cl_int,什么时候使用int。所以我想知道是否存在约定或最佳实践。可以被视为重复:也许你可以在helpful@Marco13这个问题解决了我的问题。当我搜索google和stackoveflow时,我没有找到这个问题。谢谢。。。。没有任何帮助吗?@DavidRönnqvist事实上我读过那页,但我仍然不知道什么时候使用cl_int和什么时候使用int。所以我想知道是否存在约定或最佳实践。可以被视为重复:也许你可以在helpful@Marco13这个问题解决了我的问题。当我搜索google和stackoveflow时,我没有找到这个问题。谢谢。。。。