"Beignet: self-test failed" / no device --------------------------------------- On Haswell (mostly Core ix-4xxx) hardware, shared local memory (__local) does not work at all on Linux <= 4.0, and requires the i915.enable_ppgtt=2 boot parameter (https://wiki.ubuntu.com/Kernel/KernelBootParameters) on Linux 4.1. This will be fixed in Linux 4.2. To avoid silently wrong results, beignet performs a self-test on load and hides devices where __local does not work. If you do not need __local, you can override the self-test with export OCL_IGNORE_SELF_TEST=1 Precision vs. Speed ------------------- Debian's beignet 1.0.2+ (unlike the upstream version) defaults to OpenCL-standard-compliant precision, to avoid breaking applications written on other hardware that may assume this. This slows down some of the math functions as they cannot use the (lower-precision) native instructions: most only moderately (eg. ~30% for sin/cos) but ~10-fold for pow and rootn (though not pown or sqrt). Applications that prefer speed to precision may use the native_* functions.