我想澄清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'屬性。上面的代碼顯然是一些奇怪的宏,首先擴展宏以查看它實際上在做什麼。 –