Artikel-ID: 000073931 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 25.10.2019

Warum kompiliert mein OpenCL-Kernel™ erfolgreich in Version 18.1.2 und älter, schlägt aber in Version 19.1 und neuer fehl?

Umgebung

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

    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.

    Lösung

    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

    Zugehörige Produkte

    Dieser Artikel bezieht sich auf 1 Produkte

    Intel® programmierbare Geräte

    Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.