Intel® SDK for OpenCL™ Applications 2019 represents a significant departure and refactor effort over Intel® SDK for OpenCL™ Applications 2017. View the Intel® SDK for OpenCL™ Applications 2019 portal. Intel® Graphics Compute Runtime for OpenCL™ Driver users on Linux* OS or through Intel® Graphics Technology driver on Windows* OS should develop with the 2019 SDK. Developers with an older OpenCL™ implementation should expect limited functionality with the 2019 SDK and may wish to consider the 2017 SDK.
Intel® SDK for OpenCL™ Applications 2017 is the primary development vehicle to unlock OpenCL™ development on Intel® Graphics Technology and Intel® CPUs. The SDK includes three layers of components to enable the developer stack.
The Intel® SDK for OpenCL™ Applications does not contain any kernel mode components.
1. Basic Example
A basic, functioning OpenCL™ application can be built with the SDK components like so:
There are more considerations and options when executing OpenCL applications. The reader is encouraged to explore the Khronos* reference on OpenCL™ registry page and the Intel® SDK for OpenCL™ Applications release notes for more detail.
2. Example Developer Configurations
The following three examples describe SDK setup for possibilities for different OpenCL™ target devices. More detail is shown for the components at each layer. Note: FPGA devices are not mentioned here. For FPGA developer resources and guidance, see the fpgasoftware.intel.com portal.
The first example shows CPU targeting. This system has the CPU targeted OpenCL™ runtime suitable for application deployment. Note: this scenario applies similarly to both supported Windows* OS and supported Linux* OS:
The user application can select the OpenCL™ CPU platform provided by the Intel® CPU OpenCL™ Runtime 16.1.2 (Standalone, deployment suitable). For more information about the Intel® CPU OpenCL™ Runtime 16.1.2 Standalone please see the Intel® article for OpenCL™ deployments.
Graphics / Windows* OS
This second example shows the Intel® SDK for OpenCL™ Applications 2017 targeting Intel® Graphics Technology with Windows* OS.
Component boxes highlighted in:
For programs on Windows* OS targeting Intel® Graphics Technology, the OpenCL™ program will select the platform afforded by the Intel® Graphics Compute Runtime for OpenCL™ Driver. This OpenCL™ implementation is distributed as part of the Intel® Graphics Technology driver package for Windows* OS. The Intel® graphics driver package for Windows* OS also contains the CPU Standalone distribution described in the first example. See more information on Intel® Graphics Technology deployment section at the deployment page.
Graphics / Linux* OS
The third example shows SDK development targeting Intel® Graphics Technology on Linux* OS:
See more about obtaining the Intel® SRB5.0 Runtime for OpenCL™ applications on the legacy deployment page. Notice that to execute with the OpenCL™ platform provided by the SRB5.0 deployment, a patched kernel is expected.
The Linux* OS article SDK getting started guide has some recommendations for configuring prerequisites for CentOS* and Ubuntu* OS development setup, including guidance for creation of the patched kernel for SRB5.0. The base kernels supported for SRB5.0 were 4.4 and 4.7, geared toward Intel® Media Server Studio 2017 R3 and OpenCL™ enablement respectively. Continue to the 2017 version SDK for Linux* OS getting started guide to setup development for targeting systems using the SRB5.0 runtime.
3. Misc and Next Steps
The Intel® Graphics Compute Runtime for OpenCL™ Driver, known as “NEO”, is an opensource, actively maintained OpenCL™ implementation. It was introduced for Intel® Graphics Technology GEN8 microarchitecture Broadwell processors as well as GEN9 platforms and later. Intel® SDK for OpenCL™ Applications 2019 is intended to support development with the NEO implementation and move away from the SRB5.0 implementation. For more on NEO, view the Intel® deployment page for OpenCL™ runtimes and the NEO github portal.
The Intel® SDK for OpenCL™ Applications 2019 is offered as a subcomponent for Intel® System Studio 2019. The Beta program for Intel® System Studio 2019 ended September 17, 2018 and beta licenses expire on October 23, 2018.
For more tools capable of heterogeneous analysis and profiling assistance consider Intel® VTune™ Amplifier, as found:
ioc64 is a command line utility to build OpenCL™ kernels offline as opposed to at runtime. Ioc64 supports various iterations of SPIR (Standard Portable Intermediate Representation) targeting. ioc64 serves as a pass through to the OpenCL™ implementations available on the system.
For an authoritative reference of Intel® Processor SKU’s featuring Intel® Graphics Technology, please see the ark database.
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804