Begginer question: native kernel vs OpenCL kernel


in the OpenCL specification it’s writen: “For example, these native kernels could be functions defined in
application code or exported from a library”, but what are in fact native kernels? Typical programming functions meant to be executed by the CPU?

It’s code you want to execute in an OpenCL computation flow, but you don’t want to have as an explicit kernel. There are limitations on the data types they can access and how they execute. Most people will not need them.