When using the Intel® SDK for OpenCL™, “Error: Assert failure at ACLMemUtils.cpp(510)” may be seen during a kernel compilation as shown below:
> aoc kernel.cl -rtl
aoc: Running OpenCL parser....
aoc: OpenCL parser completed successfully.
aoc: Linking Object files....
aoc: Optimizing and doing static analysis of code...
******* Error: Assert failure at ACLMemUtils.cpp(510) *******
The error occurs when the on-chip memory size is (2**n) 1, for n >= 5.
Here is some example kernel code for illustration:
#define n 5
#define size (2**n) 1
__kernel void kernel(__global char * restrict input) {
int mem[size];
for (int i=0; i<size-1; i )
mem[i]=mem[i 1];
mem[size-1] = input i;
}
To work around this problem,
Use a size that is not (2**n) 1
or
Use #pragma unroll on the loop
This problem is fixed, beginning with Intel® Quartus® Prime Software version 18.1