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:
uint Description 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:
Macro Intel Microarchitectures __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.
Check out the release notes for the previous release here.