opencl支持函数指针吗?

opencl支持函数指针吗?,opencl,Opencl,有没有办法在OpenCL中使用C风格的函数指针 换句话说,我想用几个值以及指向OpenCL函数的指针来填充OpenCL结构。我不是说从CPU函数到GPU函数,我是说从GPU函数到GPU函数 这可能吗 ---编辑--- 如果没有,有办法解决吗?在CUDA中我们有对象继承,在4.0中我们甚至有虚拟函数。我能找到的实现这种运行时调度的唯一方法是使用if语句,这会很快变得很糟糕。来自: 第6.8节(限制)(a): 指针的使用受到一定的限制。以下规则适用: 在作为指针的程序中声明的内核函数的参数 必须使

有没有办法在OpenCL中使用C风格的函数指针

换句话说,我想用几个值以及指向OpenCL函数的指针来填充OpenCL结构。我不是说从CPU函数到GPU函数,我是说从GPU函数到GPU函数

这可能吗

---编辑---

如果没有,有办法解决吗?在CUDA中我们有对象继承,在4.0中我们甚至有虚拟函数。我能找到的实现这种运行时调度的唯一方法是使用if语句,这会很快变得很糟糕。

来自:

第6.8节(限制)(a):

指针的使用受到一定的限制。以下规则适用:

  • 在作为指针的程序中声明的内核函数的参数 必须使用_全局、_常量或_局部限定符声明
  • A 用_常量、_局部或_全局限定符声明的指针 只能指定给用_常量声明的指针, __本地或 __分别使用全局限定符
  • 指向函数的指针不可用 允许
我通常使用宏来解决这个问题。邪恶,但目前无法逃避。因此,我通常会以这样的方式结束:

#define FEATURENAME_START impl1_start
#define FEATURENAME_END   impl1_end

然后,我要么在编译时将其注入内核,要么将其作为参数传递给OpenCL编译器。它不是一般意义上的运行时,但从主机的角度来看,它仍然可以是运行时,即使不是设备。

AMD有未来的硬件支持计划,因此可能会有未来的扩展。

据我所知,答案是否定的。我将尝试找出一个参考