Intel® oneAPI DPC++/C++ Compiler

Developer Guide and Reference

ID 767253
Date 6/30/2025
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Compiler Sanitizers

Compiler sanitizers give you tools to detect bugs and/or errors, including buffer overflows, accessing dangling pointers, using uninitialized memory, and other types of undefined behavior. The compiler sanitizers work with OpenMP* and SYCL*.

System Requirements

  • Platform Support: CPU devices and Ponte Vecchio GPUs are supported on Linux*.
  • GPU Configuration: This feature supports a Ponte Vecchio GPU card. For the Intel® oneAPI Level Zero (Level Zero) runtime, use the ZE_AFFINITY_MASK=0 environment variable to set this configuration.

Limitations

Compiler sanitizers have the following limitations:

  • Kernel execution is sequential. Concurrent execution is forced into sequential execution when device-side ASan is enabled.
  • Device-side ASan may lead to an increase of the usage of private memory, causing a reduction in the maximum workgroup size a kernel can support. In this case, you may encounter a UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE error message. To fix this, you need to reduce the SYCL local workgroup size or OpenMP overlay management protocol (OMP) teams.
  • A large number of workgroups on a GPU may lead to the device-side ASan skipping an out-of-bound check for private/local memory, as well as device-side MSan skipping uninitialized usage checks for private/local memory.
  • OpenMP (C/C++) only supports execution on a GPU device.