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

时间:2017-01-06 16:21:40

标签: c++ opencl

我需要64位数据类型来进行OpenCL中的位操作。在手册中 https://www.khronos.org/registry/cl/sdk/1.0/docs/man/xhtml/scalarDataTypes.html 他们说ulong是“无符号的64位整数”。但是当我在主机上准备数据时, 它不能超过32位无符号。

之后,我读到unsigned long(在主机上)只是一个32位Type,就像unsigned int一样。我也 试过cl_ulong,但它似乎也有32位。

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

1 个答案:

答案 0 :(得分:2)

cl_ulong是64位数据类型,它匹配cl内核端ulong。 即使在32位机器上,也可以通过规范确保这一点。

platform.h 文件中定义为typedef uint64_t cl_ulong __attribute__((aligned(8)));

你能否详细解释为什么你会这样做?#34;是32位? 你能展示一些代码吗?