Article ID: 000073931 Content Type: Troubleshooting Last Reviewed: 08/09/2023

Why does my OpenCL™ kernel compile successfully in version 18.1.2 and older but fail in version 19.1 and newer?

Environment

  • Intel® Quartus® Prime Pro Edition
  • Intel® FPGA SDK for OpenCL™ Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Description

    If your OpenCL kernel compiles successfully in version 18.1.2 and older but fails in version 19.1 and newer, look for a message similar to the following.

        #aoc: Checking if memory usage is larger than 100%...

        #aoc: Warning RAM Utilization is at 173%!
     

    If the message is displayed, the compile fails because M20K utilization is over 100%.

    In previous versions of Intel® FPGA SDK for OpenCL™, the compiler automatically disabled the local memory replication for all memory systems if it estimated an M20K utilization of over 100%. Beginning in version 19.1, the compiler no longer automatically disables local memory replication.

    Resolution

    Use memory attributes to control the on-chip memory replication, as shown in the example here.

        int __attribute__((memory, numbanks(1),  singlepump, max_replicates(3)))  lmem[1028];

    For more information, see the following section of the Intel FPGA SDK for OpenCL Pro Edition: Best Practices Guide.

        Optimizing Accesses to Local Memory by Controlling the Memory Replication Factor

    Related Products

    This article applies to 1 products

    Intel® Programmable Devices