Skip to content

Opencl weirdness, and how to get around it

Eric Holk edited this page Oct 2, 2013 · 2 revisions

We're regularly developing under 3 different OpenCL implementations: Apple's, Intel's, and NVIDIA's. Each one behaves differently, which may affect the end user/developer experience. Here are some issues we've run in to, and workarounds if we know of them.

Apple's implementation seems to be the most forgiving, so our code usually works best there. So far, Intel's seems the most picky.

NVIDIA Header Caching

NVIDIA caches header files and doesn't bother to see if they change. This means if we make substantive changes to gpu_common.h, our code will break in frustrating ways. You can get around it by setting the environment variable CUDA_CACHE_DISABLE=1, or by deleting the files in ~/.nv/ComputeCache.