OpenCL:防止内核缓存

OpenCL: Prevent kernel caching

我正在使用 opencl 迈出第一步,但现在遇到了问题。我正在使用带有 GT540m 显卡的 NVIDIA OpenCL 库。

现在看来,内核在编译后被缓存起来,并且在我对内核进行一些更改时不会重新编译。为了测试我正在将一些值写入输出缓冲区但是当我在内核中更改这些值时输出保持不变。

我怎样才能防止这种行为?

非常感谢。 问候罗宾

void enable_cuda_build_cache(bool enable)
{
#ifdef _MSC_VER
    if (enable)
        _putenv("CUDA_CACHE_DISABLE=0");
    else
        _putenv("CUDA_CACHE_DISABLE=1");
#else // GCC
    if (enable)
        putenv("CUDA_CACHE_DISABLE=0");
    else
        putenv("CUDA_CACHE_DISABLE=1");
#endif
}

禁用缓存调用:enable_cuda_build_cache(false);