Wenn Ihr OpenCL-Kernel in Version 18.1.2 und älter erfolgreich kompiliert wird, aber in Version 19.1 und neuer fehlschlägt, suchen Sie nach einer Meldung ähnlich der folgenden.
#aoc: Prüfen, ob die Speicherauslastung größer als 100 % ist ...
#aoc: Warnung, dass die RAM-Auslastung bei 173% liegt!
Wenn die Meldung angezeigt wird, schlägt die Kompilierung fehl, da die M20K-Auslastung über 100 % liegt.
In früheren Versionen Intel® FPGA SDK für OpenCL™ deaktivierte der Compiler automatisch die lokale Speicherreplikation für alle Speichersysteme, wenn eine M20K-Auslastung von über 100 % geschätzt wurde. Ab Version 19.1 deaktiviert der Compiler die lokale Speicherreplikation nicht mehr automatisch.
Verwenden Sie Speicherattribute, um die On-Chip-Speicherreplikation zu steuern, wie im Beispiel hier gezeigt.
int __attribute__((Speicher, Numbanks(1), Singlepump, max_replicates(3))) LMem[1028];
Weitere Informationen finden Sie im folgenden Abschnitt des Intel FPGA SDK für OpenCL Pro Edition: Best Practices Guide.
Optimierung der Zugriffe auf den lokalen Speicher durch Steuerung des Speicherreplikationsfaktors