【问题标题】:OpenCL casting when accessing array访问数组时的 OpenCL 强制转换
【发布时间】:2013-10-26 13:26:02
【问题描述】:

我正在阅读 Apple 的 OpenCL reduction example,并注意到有一个用于访问数组元素的宏:

#define LOAD_GLOBAL_F1(s, i) \
((__global const float*)(s))[(size_t)(i)]

它是这样使用的:

float a = LOAD_GLOBAL_F1(input, i);

其中input__global const float * 类型,isize_t

为什么这里没有使用float a = input[i]?谢谢!

【问题讨论】:

  • 似乎可以。也许宏是需要强制转换的东西遗留下来的。

标签: opencl


【解决方案1】:

在此示例中,代码代码未按照您的建议使用宏编写。为什么使用宏是任何人的猜测:从其他地方重用的代码;基于 C 的内核测试框架;代码作者觉得它提高了可读性;等等等等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    相关资源
    最近更新 更多