2015-05-14 150 views
4

我正在使用opencl開始我的第一步,現在有一個問題。我使用NVIDIA OpenCL lib和GT540m顯卡。OpenCL:防止內核緩存

現在看來內核在編譯後得到了緩存,並且在我對內核做了一些更改時沒有重新編譯。爲了測試我正在向輸出緩衝區寫入一些值,但是當我在內核中更改這些值時,輸出保持不變。

我該如何防止這種行爲?

非常感謝。 問候羅賓

+1

你用什麼方式編譯內核。是在運行時還是在編譯時編譯? – Christian

+0

相關:http://stackoverflow.com/questions/31338520/opencl-clbuildprogram-caches-source-and-does-not-recompile-if-included-source –

回答

1
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(假);