我想在CPU上使用OpenCL作为简单的C运行时JIT。因为内核是ASCII,我可以在运行时修改它们,并编译/执行代码。这部分很简单。
但是,我希望函数指针可以访问生成的编译内核,因此可以通过C代码按常规调用它,而不必通过openCL API访问内核。
显然这仅适用于共享内存的CPU。
看来这应该是可能的,有什么想法吗?
答案 0 :(得分:1)
不,它无法完成。您需要使用clEnqueueTask。如果您以某种方式获取CPU内核的地址并对传递的参数进行反向工程,则可能会随着驱动程序更新而发生变化。
如果需要运行时编译,请查看链接到LLVM或类似内容。