Я пытаюсь прояснить некоторые структуры и синтаксис в 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-logic Да, я знаю это. Я не могу прояснить, что является правильным синтаксисом для определения одного и в чем разница между приведенными выше синтаксисами. – Arkoudinos
Существует только один синтаксис - атрибут '__kernel'. Ваш код выше, по-видимому, какой-то странный макрос, сначала откройте макросы, чтобы посмотреть, что он на самом деле делает. –