Visible to Intel only — GUID: GUID-A9388E63-B27E-47C8-ACA5-B585B55D517D
Legal Information
Getting Help and Support
Introduction
Check-list for OpenCL™ Optimizations
Tips and Tricks for Kernel Development
Application-Level Optimizations
Debugging OpenCL™ Kernels on Linux* OS
Performance Debugging with Intel® SDK for OpenCL™ Applications
Coding for the Intel® Architecture Processors
Why Optimizing Kernels Is Important?
Avoid Spurious Operations in Kernels
Avoid Handling Edge Conditions in Kernels
Use the Preprocessor for Constants
Prefer (32-bit) Signed Integer Data Types
Prefer Row-Wise Data Accesses
Use Built-In Functions
Avoid Extracting Vector Components
Task-Parallel Programming Model Hints
Common Mistakes in OpenCL™ Applications
Introduction for OpenCL™ Coding on Intel® Architecture Processors
Vectorization Basics for Intel® Architecture Processors
Vectorization: SIMD Processing Within a Work Group
Benefitting from Implicit Vectorization
Vectorizer Knobs
Targeting a Different CPU Architecture
Using Vector Data Types
Writing Kernels to Directly Target the Intel® Architecture Processors
Work-Group Size Considerations
Threading: Achieving Work-Group Level Parallelism
Efficient Data Layout
Using the Blocking Technique
Intel® Turbo Boost Technology Support
Global Memory Size
Visible to Intel only — GUID: GUID-A9388E63-B27E-47C8-ACA5-B585B55D517D
Tools for OpenCL™ Development
Once you get stable performance numbers, you need to decide what to optimize first.
Use the following tools to optimize your OpenCL™ kernels:
- Intel® VTune™ Amplifier XE 2018, which enables you to fine-tune for optimal performance, ensuring the CPU or coprocessor device facilities are fully utilized.
- Intel® Code Builder for OpenCL™ API, which enables you to build and analyze your OpenCL kernels. The tool provides full offline OpenCL language compilation.
- Intel® SDK for OpenCL™ - Offline Compiler command-line tool, which offers full offline OpenCL language compilation, including an OpenCL syntax checker, cross hardware compilation support, Low-Level Virtual Machine (LLVM) viewer, Assembly language viewer, and intermediate program binaries generator.
- Intel® SDK for OpenCL™ Applications – Debugger, which enables you to debug OpenCL kernels with the GNU Project Debugger (GDB).
For more information on the supported tools, refer to the Developer Guide for Intel® SDK for OpenCL™ Applications .