For general questions, see the main FAQ.
See README.md.
OpenCL compliance of a driver built from open-source components should not be assumed by default. Intel will clearly designate / tag specific builds to indicate production quality including formal compliance. Other builds should be considered experimental.
Intel's former open-source Beignet driver provided sharing capabilities with MESA OpenGL driver.
NEO supports platforms starting with Gen8 graphics (formerly Broadwell). For earlier platforms, please use Beignet driver.
See the enabling guide.
This is a mechanism to cache binary representations of OpenCL kernels provided in text form by the application. By storing the binary representations, compiling is required only the first time, which improves performance.
Detailed description in programmers-guide/COMPILER_CACHE.md
Current implementation of out of order queues allows multiple kernels to be run concurently. This allows for better device utilization in scenarios where single kernel doesn't fill whole device.
More details can be found here:
- Turning on profiling on out of order command queue serializes kernel execution.
- Blocking command queue with user events blocks all further submissions until event is unblocked.
- Commands blocked by user events, when unblocked are serialized as well.
By default NEO driver enables double precision operations only on platforms with supporting hardware. This is signified by exposing the "cl_khr_fp64" extension in the extension string. For other platforms, this support can be emulated by the compiler (IGC).
FP64 emulation can only be enabled on Linux. There are two settings that have to be set.
There are two ways you can enable this feature in NEO:
-
Set an environment variable OverrideDefaultFP64Settings to 1:
OverrideDefaultFP64Settings=1
-
In igdrcl.config configuration file in the same directory as application binary (you may have to create this file) add a line as such:
OverrideDefaultFP64Settings = 1
IGC reads flags only from environment, so set IGC_EnableDPEmulation to 1 as such:
IGC_EnableDPEmulation=1
After both settings have been set you can run the application normally.
Intel does not claim full specification conformance when using emulated mode. We reserve the right to not fix issues that appear only in emulation mode. Performance degradation is to be expected and has not been measured by Intel.