OpenCL:防止内核缓存

5
我正在学习OpenCL,并遇到了一个问题。我使用带有GT540m图形卡的NVIDIA OpenCL库。
现在看来,内核在编译后被缓存,并且当我对内核进行更改时不会重新编译。为了测试,我将一些值写入输出缓冲区,但是当我在内核中更改这些值时,输出保持不变。
我该如何防止这种行为发生?
非常感谢。 问候Robin

1
你是以何种方式编译内核的?是在运行时还是在编译时编译的? - Christian
相关链接:https://dev59.com/7Izda4cB1Zd3GeqPsN9Y - Ciro Santilli OurBigBook.com
1个回答

6
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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接