Developer Guide

Contents

Disable Burst-Interleaving of Global Memory (
-Xsno-interleaving=<global_memory_type>
)

The
Intel® oneAPI
DPC++/C++
Compiler
cannot burst-interleave global memory across different memory types. You can disable burst-interleaving for all global memory banks of the same type and manage them manually by including the
-Xsno-interleaving=<global_memory_type>
option in your
dpcpp
command.
Manual partitioning of memory buffers overrides the default burst-interleaved configuration of global memory.
The
-Xsno-interleaving
option requires a global memory type parameter. If you do not specify a memory type, the
Intel® oneAPI
DPC++/C++
Compiler
issues an error message.
  • To direct the
    Intel® oneAPI
    DPC++/C++
    Compiler
    to disable burst-interleaving for the default global memory, invoke the following command:
    dpcpp -fintelfpga -Xshardware <source_file>.cpp -Xsno-interleaving=default
  • Your accelerator board might include multiple global memory types. To identify the default global memory type, refer to board vendor's documentation for your Custom Platform.
  • For a heterogeneous memory system, to direct the
    Intel® oneAPI
    DPC++/C++
    Compiler
    to disable burst-interleaving of a specific global memory type, perform the following tasks:
    1. Consult the
      board_spec.xml
      file of your Custom Platform for the names of the available global memory types (for example, DDR and quad data rate (QDR)).
    2. To disable burst-interleaving for one of the memory types (for example, DDR), invoke:
      dpcpp -fintelfpga -Xshardware <source_file>.cpp -Xsno-interleaving=DDR
      The
      Intel® oneAPI
      DPC++/C++
      Compiler
      enables manual partitioning for the DDR memory bank and configures the other memory bank in a burst-interleaved fashion.
    3. To disable burst-interleaving for more than one type of global memory buffers, include a
      -Xsno-interleaving=<global_memory_type>
      option for each global memory type. For example, to disable burst-interleaving for both DDR and QDR, invoke the following command:
      dpcpp -fintelfpga -Xshardware <source_file>.cpp -Xsno-interleaving=DDR -Xsno-interleaving=QDR
Do not pass a buffer as a kernel argument that associates it with multiple memory technologies.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.