我想澄清OpenCL中的一些结构和语法。目前我正在使用VS2013和OpenCL Emulator-Debugger。我开始与自带的模拟器示范项目工作,并坚持到这一点:OpenCL内核定义语法
__Kernel(hello)
__ArgNULL
{
...
}
只是上面两行有这样的:
//__kernel void
//hello()
什么是它们之间的区别?据我所知,从文档(这里:http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/OpenCL-Emu-Documentation-2.pdf
和这里:https://www.khronos.org/registry/cl/specs/opencl-1.x-latest.pdf)第一个只是在第二个OCL-Emu环境的宏定义,但没有一个明确的答案。这是正确的吗?
内核只是一个普通的C函数(符合一系列的限制条件),其属性为__kernel。 –
@ SK逻辑是的,我知道这一点。我无法弄清楚哪一个是定义一个语法的正确语法,以及我提到的上述语法之间有什么区别。 – Arkoudinos
只有一个语法 - '__kernel'属性。上面的代码显然是一些奇怪的宏,首先扩展宏以查看它实际上在做什么。 –