Developer Guide

  • 2022.3
  • 10/25/2022
  • Public Content

Optimized PCL Known Limitation

JIT Limitation

Intel’s PCL optimization is implemented with the Intel® oneAPI DPC++ Compiler. The Intel® oneAPI DPC++ Compiler converts a DPC++ program into an intermediate language called SPIR-V (Standard Portable Intermediate Representation). The SPIR-V code is stored in the binary produced by the compilation process. The SPIR-V code has the advantage that it can be run on any hardware platform by translating the SPIR-V code into the assembly code of the given platform at runtime. This process of translating the intermediate code present in the binary is called Just-In-Time (JIT) compilation. Since JIT compilation happens at the beginning of the execution of the first offloaded kernel, the performance is impacted. This issue can be mitigated by setting the system environment variable to cache and reuse JIT-compiled binaries.
  1. Set the system environment variable to cache and reuse JIT-compiled binaries.
  2. Set the environment variable permanently.
    echo "export SYCL_CACHE_PERSISTENT=1" >> ~/.bashrc source ~/.bashrc
  3. Execute the program once to generate the JIT-compiled binaries. Every execution after this first execution reuses the cached JIT-compiled binaries.
To get an accurate PCL optimization performance number, this system environment variable needs to be set, and the program needs to be executed once to generate and cache the JIT-compiled binaries.

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at