Wenn Sie die Intel® SDK für OpenCL™ verwenden, kann "Error: Assert failure at ACLMemUtils.cpp(510)" während einer Kernel-Kompilierung wie unten gezeigt angezeigt werden:
> AOC kernel.cl -rtl
aoc: OpenCL-Parser wird ausgeführt....
aoc: OpenCL-Parser erfolgreich abgeschlossen.
aoc: Verknüpfen von Objektdateien....
aoc: Optimierung und statische Analyse von Code ...
Fehler: Fehler bei ACLMemUtils.cpp(510) bestätigen *******
Der Fehler tritt auf, wenn die Größe des On-Chip-Speichers (2**n) 1 ist, für n >= 5.
Hier ist ein Beispiel für Kernel-Code zur Veranschaulichung:
#define n 5
#define Größe (2**n) 1
__kernel void kernel(__global char * restrict input) {
int mem[size];
für (int i=0; i<size-1; i )
mem[i]=mem[i 1];
mem[size-1] = Eingabe i;
}
Um dieses Problem zu umgehen, gehen Sie wie folgt vor:
Verwenden Sie eine Größe, die nicht (2**n) 1 ist
Oder
Verwenden Sie #pragma Abrollen auf der Schleife
Dieses Problem wurde behoben, beginnend mit Intel® Quartus® Prime Software Version 18.1