我想在我的OpenCL内核中使用#include语句,但看起来Apple的OpenCL编译器会缓存内核,因此如果您更改包含文件的内容而不是执行包含的文件的内容,则程序在运行之间不会更改.
我编写了一个例子来说明这一点:http: //github.com/enjalot/adventures_in_opencl/tree/master/experiments/inc/
如果你编译并运行,它应该工作正常.然后,如果你在inc.cl中注释出结构定义,它仍然可以正常运行(或者更改lvl2.cl中的任何内容)
在Ubuntu上使用NVIDIA编译器可以获得预期的行为.
那么有什么办法迫使clBuildProgram重新编译内核?
opencl ×1