Knowledge Base Article

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

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

Updated 5 days ago
Version 3.0
No CommentsBe the first to comment