Build & Run OpenCL Applications on Intel® Platforms
- Intel® SDK for OpenCL™ Applications
- Intel® Graphics Driver and OpenCL™ Runtime: Download
The drivers and runtimes for OpenCL applications are packaged separately from the SDK to minimize the size of the installation package. The SDK package contains the development components. There are several variations and driver versions, depending on the hardware in your configuration.
- Workflow support allowing build, execution and analysis of applications with several kernels in the project wizard
- Kernel development framework
- Syntax highlighting
- Code auto-completion
- SPIR* and SPIR-V* generation and consumption
- API debugging and call tracing
- Image and memory viewer
- Step-through kernel debugging
- API call and memory command analysis
- Kernel occupancy and latency analysis
OpenCL Platform Benefits
SPIR* and SPIR-V*
Standard Portable Intermediate Representation (SPIR) and its evolution, SPIR-V, are intermediate languages for parallel compute developed by the Khronos Group*.
To enable runtime device independence, the OpenCL platform uses a just-in-time (JIT) compilation of the kernel source code to the target device. The disadvantage is that this offers no IP protection. The alternative is to provide a precompiled kernel binary for each device that runs your application.
SPIR and SPIR-V provide device flexibility while protecting the IP with device-independent intermediate kernel binaries (using JIT compilation as needed).
Shared Virtual Memory (SVM)
SVM is a feature in the OpenCL platform 2.0 standard and later, which provides a coherent and consistent shared memory space between the host and the device. In addition to guaranteeing the same address for shared memory between host and device, SVM provides coherency and atomic operations, allowing safe simultaneous access for SVM allocations.
The advantage is that you can write code that uses pointer-like data structures, such as linked lists or trees shared between the host and the device side of an OpenCL application. This results in less engineering time for restructuring data, and the ability to create more sophisticated cooperative kernels that improve overall application performance.
The ability to create shared physical memory buffers, known as zero copy buffers, is a feature available in the OpenCL platform 1.2 standard and later.
Extra memory copies can be detrimental to application performance when offloading compute to accelerators, such as Intel® Graphics Technology. Using zero copy buffers helps reduce application memory usage and improves performance by enabling the host and device to access the same physical memory instead of copying duplicate data between memory spaces.
Related Tools and Libraries
Boost performance, power efficiency, and reliability for system and IoT device applications with this all-in-one development tool suite. The latest Intel SDK for OpenCL applications is bundled in this studio to help you create your own heterogeneous designs that run on Intel® Graphics Technology.
A toolkit for developing and deploying computer vision solutions on platforms from Intel, including smart cameras, robotics, office automation, and more. This SDK supports heterogeneous execution across processors and SoC accelerators and includes tools that unleash inference performance on deep learning deployment.
Develop enterprise-grade media applications and solutions for data center, cloud and network usages. The Intel SDK for OpenCL Applications is bundled in this studio to help you create your own media filters running on Intel Graphics Technology.
A cross-platform API for developing media applications. Versions are available for Embedded Linux*, Windows*, and open-source platforms. Get complete control over the media pipeline and programmable access to the execution units (EU) and other graphics processor blocks.
Deliver CPU and GPU performance tuning, multicore scalability, bandwidth, and more. Trace inside OpenCL kernels and get details on OpenCL program activity on the GPU.
Capture and view the distribution of OpenCL program commands (kernels and memory operations) across CPUs and GPUs from Intel.