https://arrayfire.com/ is a great library providing an abstraction layer for different kinds of acceleration technologies: CPU, OpenCL and CUDA. You write your code once and the code will be compiled with a JIT and executed on the active backend.
Sometimes you need to dig a little deeper to figure out what’s going on. There is an environment variable you can set before starting your process AF_JIT_KERNEL_TRACE
The expected values are:
- AF_JIT_KERNEL_TRACE = stdout
- AF_JIT_KERNEL_TRACE = stderror
- AF_JIT_KERNEL_TRACE = path to an existing folder on the file system