如何强制Apple的OpenCL编译器重新编译缓存的内核?

时间:2010-09-16 22:51:19

标签: opencl

我想在我的OpenCL内核中使用#include语句,但看起来Apple的OpenCL编译器会缓存内核,因此如果您更改包含文件的内容而不是执行包含的文件,则程序在运行之间不会更改。 / p>

我编写了一个例子来说明这一点: http://github.com/enjalot/adventures_in_opencl/tree/master/experiments/inc/

如果你编译并运行,它应该可以正常工作。然后,如果你在inc.cl中注释掉结构定义,它仍然可以正常运行(或者在lvl2.cl中更改任何内容)

在Ubuntu上使用NVIDIA编译器可以获得预期的行为。

那么迫使clBuildProgram重新编译内核吗?

1 个答案:

答案 0 :(得分:3)

我从perfoptimization-dev@apple.com邮件列表中得到了答案

  

sudo killall cvmsServ

看起来不是很优雅,但是很好