C++ OpenCL中主机和设备的64位数据类型

C++ OpenCL中主机和设备的64位数据类型,c++,opencl,C++,Opencl,我需要一个64位的数据类型用于OpenCL中的位操作。在手册中 他们说ulong是“一个无符号的64位整数”。但是当我准备主机上的数据时, 它的大小不能超过32位无符号 之后,我读到unsignedlong(在主机上)只是一个32位类型,与unsignedint一样 尝试了cl_-ulong,但它似乎也有32位 主机和设备的正确64位数据类型是什么?cl_-ulong是64位数据类型,它与cl-kernel-sideulong匹配。 这是由规范保证的,即使在32位机器上也是如此 它被定义为typ

我需要一个64位的数据类型用于OpenCL中的位操作。在手册中 他们说ulong是“一个无符号的64位整数”。但是当我准备主机上的数据时, 它的大小不能超过32位无符号

之后,我读到unsignedlong(在主机上)只是一个32位类型,与unsignedint一样 尝试了cl_-ulong,但它似乎也有32位


主机和设备的正确64位数据类型是什么?

cl_-ulong
是64位数据类型,它与cl-kernel-side
ulong
匹配。 这是由规范保证的,即使在32位机器上也是如此

它被定义为
typedef uint64_t cl_ulong_______属性((对齐(8))平台.h文件中

你能详细说明为什么你“思考”是32位的吗?
您能显示一些代码吗?

cl_-ulong
是64位数据类型,它与cl内核端的
ulong
相匹配。 这是由规范保证的,即使在32位机器上也是如此

它被定义为
typedef uint64_t cl_ulong_______属性((对齐(8))平台.h文件中

你能详细说明为什么你“思考”是32位的吗?
你能展示一些代码吗?

你能从内核和主机请删除加密标记中放入一些代码吗?不知道为什么会使用这些代码。你能从内核和主机请删除加密标记中放入一些代码吗?不知道为什么会使用这些代码。1)当我打印CL_ULONG_MAX时,我得到4294967295,即2^32-1。2) 当startoffset的值超过2^32时,它不会像预期的那样一直到2^64:while(步骤