OpenCL 内联函数可以返回 OpenCL 类型吗?

Posted

技术标签:

【中文标题】OpenCL 内联函数可以返回 OpenCL 类型吗?【英文标题】:Can OpenCL inline functions return OpenCL types? 【发布时间】:2011-04-04 07:46:26 【问题描述】:

我知道 OpenCL 支持内联函数,但这些函数可以接受和返回 OpenCL 类型吗?

具体来说,我对此签名感兴趣: float4 func(float4 x, float4 y)

【问题讨论】:

【参考方案1】:

是的,对于大多数 GPU,所有函数都是内联的,即使您没有指定它。

【讨论】:

据我所知,出于性能原因,ATI 和 NVidia 的 CL 编译器总是内联。硬件可以支持函数调用,但是速度很慢。【参考方案2】:

只有内核函数有一个特定的返回类型,它是 void。任何其他函数都可以返回任何有效的 OpenCL 类型。

【讨论】:

以上是关于OpenCL 内联函数可以返回 OpenCL 类型吗?的主要内容,如果未能解决你的问题,请参考以下文章

OpenCL:如何避免重复的标量/向量函数?

结合 OpenMP 和 OpenCL

使用通过引用传递的参数(通过指针)优化 OpenCL 函数中的指针访问

OpenCL中的popcnt?

OpenCL C

为啥 OpenCL 没有矩阵数据类型?