OpenCL C 2.0 でclangのblocks構文が使えるようになっていた https://www.khronos.org/registry/cl/sdk/2.0/docs/man/xhtml/blocks.html というのを知った。 そして、デバイス側からkernelをenqueueできるようになっている。 https://software.intel.com/en-us/articles/sierpinski-carpet-in-opencl-20 おぉ〜