Intel® FPGA SDK for OpenCL™ Pro Edition: Programming Guide

ID 683846
Date 9/26/2022

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

Document Table of Contents

7.15. Disabling Burst-Interleaving of Global Memory (-no-interleaving=<global_memory_type>)

The Intel® FPGA SDK for OpenCL™ Offline 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 -no-interleaving=<global_memory_type> option in your aoc command. Manual partitioning of memory buffers overrides the default burst-interleaved configuration of global memory.
The -no-interleaving option requires a global memory type parameter. If you do not specify a memory type, the offline compiler issues an error message.
  • To direct the offline compiler to disable burst-interleaving for the default global memory, invoke the aoc <your_kernel_filename>.cl -no-interleaving=default command.
    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 offline 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 the aoc <your_kernel_filename>.cl -no-interleaving=DDR command.
      The offline 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 -no-interleaving=<global_memory_type> option for each global memory type.
      For example, to disable burst-interleaving for both DDR and QDR, invoke the aoc <your_kernel_filename>.cl -no-interleaving=DDR -no-interleaving=QDR command.
Do not pass a buffer as kernel arguments that associate it with multiple memory technologies.