For more information on
- driver/runtime packages see OpenCL™ Drivers and Runtimes for Intel® Architecture.
- SDK packages:
OpenCL™ development components have been added to Intel® System Studio 2019 Beta. This is a new inclusion within the Intel® System Studio product line. Please see the portal page for more information.
Intel® SDK for OpenCL™ Applications 2017 is the latest general availability SDK version. Please visit http://software.intel.com/intel-opencl to download. For a complete list of new features and changes, read the release notes.
Latest GPU/CPU implementations
There are two offerings available publicly:
First, the new Intel OpenCL GPU driver (NEO) driver is now available on github (https://github.com/intel/compute-runtime). Going forward this driver replaces both the SRB5 closed-source driver (aka Classic) and the Beignet open-source driver.
- To learn about our motivation for this change, visit http://01.org/compute-runtime. For more information on this driver, source code, and binary releases, please visit our github page. We invite you to post any questions and issues there as well.
- Note: the functional delta relative to SRB5.0 is posted at https://github.com/intel/compute-runtime/blob/master/documentation/LIMIT....
Second, The intel-opencl-r5.0 (SRB5.0) Linux driver package is the previous closed source GPU driver/CPU runtime package:
- This has bug fixes/functional quality improvements above SRB4.1 and includes the following new features introduced since the standalone intel-opencl-r4.1 release:
- cl_intel_va_api_media_sharing – added new full NV12 format support
- Added Centos 7.3 support
- Added experimental support Ubuntu 16.04.2 with default 4.8 kernel – no kernel patching needed
- For more info, see the Release Notes.
Latest CPU-only implementation
The OpenCL™ Runtime 16.1.2 for Intel® Core™ and Intel® Xeon® Processors is the latest CPU-only runtime package.
The 16.1.2 release update includes:
- New optional __attribute__((intel_vec_len_hint(<uint>)))
- This attribute can be used to provide a hint to the compiler that the kernel will perform best if vectorized to the specified vector length.
- You can specify one of the following lengths for this attribute:
- 0 - The compiler uses heuristics to decide whether to vectorize the kernel, and if so, which vector length to use. This is the default behavior.
- 1 - No vectorization is performed by the compiler. Explicit vector data types in kernels are left intact.
- 4 - Disables heuristics and vectorizes to the length of 4 respectively.
- 8 - Disables heuristics and vectorizes to the length of 8 respectively.
- New OpenCL™ C predefined macro __INTEL_OPENCL_CPU_<CPUSIGN>
- This macro can be used to fine tune the kernel for a specific CPU device microarchitecture. <CPUSIGN> is the CPU signature of a device.
- You can specify one of the following values for this macro:
- __INTEL_OPENCL_CPU_SKL__ - Intel® microarchitecture code name Skylake
- __INTEL_OPENCL_CPU_SKX__ - Intel® microarchitecture code name Skylake on Intel Xeon® processor family
- __INTEL_OPENCL_CPU_BDW__ - Intel® microarchitecture code name Broadwell
- __INTEL_OPENCL_CPU_BDW_XEON__ - Intel® microarchitecture code name Broadwell on Intel Xeon® processor family
- __INTEL_OPENCL_CPU_HSW__ - Intel® microarchitecture code name Haswell
- __INTEL_OPENCL_CPU_HSW_XEON - Intel® microarchitecture code name Haswell on Intel Xeon® processor family
- __INTEL_OPENCL_CPU_IVB__ - Intel® microarchitecture code name Ivy Bridge
- __INTEL_OPENCL_CPU_IVB_XEON__ - Intel® microarchitecture code name Ivy Bridge on Intel Xeon® processor family
- __INTEL_OPENCL_CPU_SNB__ - Intel® microarchitecture code name Sandy Bridge
- __INTEL_OPENCL_CPU_SNB_XEON__ - Intel® microarchitecture code name Sandy Bridge on Intel Xeon® processor family
- __INTEL_OPENCL_CPU_WST__ - Intel® microarchitecture code name Westmere
- __INTEL_OPENCL_CPU_WST_XEON__ - Intel® microarchitecture code name Westmere on Intel Xeon® processor family
- __INTEL_OPENCL_CPU_UNKNOWN__ - Unknown microarchitecture
- Improved heuristics for choosing local size when ndrange is enqueued to the command queue that was created with CL_QUEUE_THREAD_LOCAL_EXEC_ENABLE_INTEL property (extension https://www.khronos.org/registry/OpenCL/extensions/intel/cl_intel_thread_local_exec.txt).
- A fix for a previous issue where an incorrect library was loaded when running on Intel® microarchitecture code name Skylake.