Visible to Intel only — GUID: GUID-08476157-649A-473E-A45F-98699C9341F8
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-08476157-649A-473E-A45F-98699C9341F8
Start a Debugging Session
The standard GDB* or LLDB* commands are used to debug OpenCL(TM) programs:
gdb --args ./host_program
Breakpoints and stepping functionality are fully supported.
For more information about GDB* or LLDB* debuggers, see the See Also section below.
- Start debugging a program:
gdb --args ./host_program
- Set a breakpoint in a kernel:
(gdb) break kernel.cl:5 Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (kernel.cl:5) pending.
- Run the host program. The execution stops once the debugger hits the breakpoint in the kernel:
(gdb) run Thread 19 "debugger_test_t" hit Breakpoint 1, foo (c=9 '\t') kernel.cl:5 5 d = d + 2;
See Also
- For more information on the GNU* Project Debugger, see https://www.gnu.org/software/gdb/
- For more information on the LLDB* Debugger, see https://lldb.llvm.org/lldb-gdb.html