OpenCL™ - BSP - Support Center

Intel® FPGA SDK für OpenCL™ ermöglicht es Softwareentwicklern, ihre Anwendungen zu beschleunigen, indem sie heterogene Plattformen mit Intel-CPUs und FPGAs ansprechen. Intel® FPGA SDK für OpenCL™ kann als Teil der Intel® Quartus® Prime Software oder als separates Paket installiert werden. Sie können das Intel FPGA SDK für OpenCL über den folgenden Link herunterladen.

Intel® FPGA SDK für OpenCL herunterladen™

Willkommen auf der OpenCL™ BSP Support Seite! Hier finden Sie Informationen zur Planung, Gestaltung und Implementierung Ihres OpenCL™ BSP sowie einige Tipps und Tricks zum Debuggen.

Diese Seite ist so eingerichtet, dass sie Sie von Anfang bis Ende durch den Prozess der Entwicklung eines OpenCL™ Board Support Package (BSP) (oder des Entwerfens/Migrierens von OpenCL-Kernel/Algorithmen) führt. Im Abschnitt Ändern eines Referenzdesigns finden Sie Ressourcen zum Ändern der Referenzplattform intel® in Ihre eigene benutzerdefinierte Plattform sowie zum Kompilieren von Flachdesigns ohne Timing-Fehler. Der Abschnitt Grundrissplanung und Zeitschließung enthält Anleitungen, wie Sie Ihr Design partitionieren und eine maximale Betriebsfrequenz erreichen können. Es beschreibt auch die Techniken, um das Timing auf Ihrem Design zu schließen und einen garantierten Timing-Abschluss während des Aufbaus eines BSP zu haben. Der Abschnitt MMD- und OpenCL-Dienstprogramme enthält Schritte zum Neuerstellen der MMD und detaillierte Informationen zu OpenCL-Dienstprogrammen. Der Abschnitt Debuggen enthält einige Tools und Ressourcen zum Debuggen von Problemen, die auftreten können. In allen Abschnitten sind Dokumente und Schulungen aufgeführt, die während des BSP-Entwicklungsprozesses hilfreich sind.

1. Ändern eines Referenzentwurfs

Erste Schritte

Um mit der BSP-Entwicklung zu beginnen, stellen Sie sicher, dass Sie die folgenden Schritte ausführen:

  1. Vergewissern Sie sich, dass die Software Intel® FPGA SDK für OpenCL™ und Intel® Quartus® installiert ist.
  2. Stellen Sie sicher, dass die Tool-Version, die dem OpenCL™ Referenz-BSP entspricht, verfügbar ist.
  3. Bestätigen Sie den Zugriff auf die vollständige Intel® Quartus® Softwarelizenz.

Referenzdesign auswählen

Wählen Sie das Referenzdesign aus, das zu Ihrer benutzerdefinierten Plattform passt

Intel unterstützt die OpenCL™ Referenz-BSP-Designs für die folgenden Plattformen. Sie können auch den OpenCL™ BSP-Portierungsleitfaden für eine bestimmte Plattform anzeigen:

Ändern eines Referenzentwurfs

Beginnen Sie mit der Änderung des Referenzdesigns für Ihre Plattform, indem Sie die Schritte in den OpenCL BSP-Portierungshandbüchern ausführen. Es wird empfohlen, dass Sie nach Abschluss der Designänderungen versuchen, Ihren ersten Kernel zu kompilieren. Im Allgemeinen verwenden wir einen Kernel namens Boardtest, der verschiedene Schnittstellen des BSP testet. Informationen zu Boardtest und generischen BSP-Aufbauschritten finden Sie im folgenden Leitfaden:

Intel® FPGA SDK für OpenCL™ Custom Platform Toolkit Benutzerhandbuch (PDF) ›

Empfohlene Schritte zum Aufbau eines BSP:

  1. Kompilieren Sie den Boardtest in einem "flachen" Fluss, um eine geschlossene ".aocx" -Datei zu generieren
  2. Validieren Sie die ".aocx", indem Sie den Boardtest ausführen und die Bandbreitenerwartungen der Schnittstelle aus dem Test abgleichen
  3. Beginnen Sie mit der Grundrissplanung für den "Basis" -Build, um ein garantiert zeitlich geschlossenes OpenCL-BSP zu erstellen

2. Grundriss und Zeitschließung

Erste Schritte

In OpenCL müssen wir am Timing für zwei verschiedene Revisionen des Projekts arbeiten - die flache und die Basisrevision. Eine flache Revision ist diejenige ohne Partitionen oder logische Sperrbereiche und verwendet die Datei hardware/flat.qsf, um sie zu implementieren. Während die Basisrevision diejenige ist, die die Partitionierung und die Logiksperren enthält und die Datei hardware/base.qsf verwendet, um sie zu implementieren. Wir empfehlen, dass Sie zuerst als guten Start eine Zeitreinigungs-Flachrevision erhalten und dann an der Grundrissplanung arbeiten, um eine zeitlich saubere Grundrevision des Designs zu erhalten.

Weitere Informationen zum Kompilierungsablauf finden Sie im Abschnitt OpenCL™ BSP-Kompilierungsfluss im Intel® FPGA SDK for OpenCL™ Board Support Package Floorplan Optimization Guide.

Grundriss Trennwand

Beginnen Sie mit der flachen Kompilierung, um zu verstehen, wo alle Hauptkomponenten des BSP auf natürliche Weise platziert werden (insbesondere die IP-Blöcke (Intellectual Property) mit E / A-Verbindungen wie PCIe * oder DDR-Speicher).

Weitere Richtlinien hierzu finden Sie im Abschnitt Guidelines for OpenCL™ BSP Floorplanning im Intel® FPGA SDK for OpenCL™ Board Support Package Floorplan Optimization Guide.

Weitere Informationen finden Sie auch im Benutzerhandbuch für die teilweise Neukonfiguration.

PR-Region ändern

Beginnen Sie während der Basiskompilierung mit dem Logic Lock-Bereich auf dem Kernel, der freeze_wrapper_inst|kernel_system_inst enthält. Verwenden Sie den Flachkompilierungs- und Chipplaner, um die Größe und Position der BSP-Hardware zu identifizieren. Versuchen Sie, mithilfe des Logiksperrbereichs mehr Ressourcen für die kernel_system zu reservieren.

Weitere Richtlinien hierzu finden Sie im Abschnitt Guidelines for OpenCL™ BSP Floorplanning im Intel® FPGA SDK for OpenCL™ Board Support Package Floorplan Optimization Guide.

Beheben von Timing-Verstößen

Um Zeitüberschreitungen im Entwurf zu beheben, müssen Sie möglicherweise Pipelinephasen zwischen IP-Kernen hinzufügen.

Weitere Richtlinien finden Sie unter den folgenden Links:

Setup/Hold-Einschränkungen

Die .failing_paths.rpt und .failing_clocks.rpt im Ausgabeverzeichnis listen die wichtigsten Fehler im Entwurf auf. Wenn in einigen Pfaden ein konsistenter Fehler auftritt, sollten Sie eine minimale oder maximale Verzögerungseinschränkung für diesen kritischen Pfad in der Datei /hardware/top.sdc festlegen.

Für verwandte Probleme können Sie sich auf die folgende Problemumgehungsmethode auf der Knowledge Database-Seite beziehen: Wie schließe ich dasTiming bei konkurrierenden Hold- und Setup-Verstößen in Arria 10?

3. MMD- und OpenCL™-Dienstprogramme

MMD-Quellenentwicklung oder -änderung

Die MMD-Softwarebibliothek implementiert grundlegende Ein-/Ausgänge (I/O) zwischen dem Host und der Beschleunigungskarte und stellt Schnittstellen wie Öffnen, Lesen und Schreiben bereit. Der MMD-Bibliothekstreiber wird im Windows* 64- oder Linux* 64-Format gespeichert, und der Quellcode wird im Quellordner gespeichert.

Weitere Informationen finden Sie im Abschnitt Erstellen der MMD-Bibliothek im Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit-Benutzerhandbuch.

Utility-Unterstützung

OpenCL™ Dienstprogramme ermöglichen ihnen den Zugriff auf das Mainboard mit Intel® FPGA SDK für OpenCL™. Dazu gehören aocl install, aocl uninstall, aocl diagnose, aocl program und aocl flash.

Weitere Informationen finden Sie im Abschnitt Bereitstellen des Intel® FPGA SDK für OpenCL™ Utilities Support im Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit User Guide.

Nachdem Sie die Software-Dienstprogramme und die MMD-Schicht erstellt haben, muss der Hardwareentwurf getestet werden. Der Standardweg besteht darin, den Boardtest-Kernel zu generieren und auf dem Board auszuführen.

Weitere Informationen finden Sie im Abschnitt Testen des Hardwaredesigns im Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit User Guide.

4. Debuggen

Board-Bring-up

Dieser Abschnitt hilft Ihnen, Probleme zu beheben, während Sie entweder Intel® FPGA-Entwicklungskits oder Ihre eigenen benutzerdefinierten Boards aufrufen.

Informationen zu bekannten Problemen, die beim Aufrufen Ihrer Mainboards auftreten können, finden Sie in den folgenden Abschnitten in AN 807: Konfigurieren des Intel® Arria® 10 GX FPGA Development Kit für das Intel® FPGA SDK für OpenCL™ Application Note:

Grundriss und Timing

Tipps und Tricks, wie Sie den minimalen Bereich für die statische Logik verwenden und mehr Platz für Ihren OpenCL™Kernel lassen können, finden Sie im AN 824: Intel® FPGA SDK for OpenCL™ Board Support Package Floorplan Optimization Guide.

Laufzeit-Debuggen

Es gibt bestimmte Umgebungsvariablen, die festgelegt werden können, um beim Ausführen der Hostanwendung mehr Debuginformationen abzurufen. Dies sind Intel® FPGA SDK für OpenCL™ spezifische Umgebungsvariablen, die bei der Diagnose von Problemen mit benutzerdefinierten Plattformdesigns helfen können.

In der folgenden Tabelle sind alle diese Umgebungsvariablen aufgelistet und ausführlich beschrieben.

Umgebungsvariable

Beschreibung

ACL_HAL_DEBUG

Legen Sie diese Variable auf den Wert 1 bis 5 fest, um die Debugausgabe von der Hardwareabstraktionsschicht (Hardware Abstraction Layer, HAL) zu erhöhen, die direkt mit der MMD-Schicht verbunden ist.

ACL_PCIE_DEBUG

Legen Sie diese Variable auf den Wert 1 bis 10000 fest, um die Debugausgabe der MMD zu erhöhen. Diese Variableneinstellung ist nützlich, um zu bestätigen, dass das Versions-ID-Register korrekt gelesen wurde und die UniPHY IP-Kerne kalibriert sind.

ACL_PCIE_JTAG_CABLE

Legen Sie diese Variable fest, um das Standardargument quartus_pgm überschrieben, das die Kabelnummer angibt. Der Standardwert ist Kabel 1. Wenn mehrere Intel® FPGA-Downloadkabel vorhanden sind, können Sie ein bestimmtes Kabel angeben, indem Sie diese Variable festlegen.

ACL_PCIE_JTAG_DEVICE_INDEX

Legen Sie diese Variable fest, um das Standardargument quartus_pgm überschrieben, das den FPGA-Geräteindex angibt. Standardmäßig hat diese Variable den Wert 1. Wenn der FPGA nicht das erste Gerät in der JTAG-Kette ist, können Sie den Wert anpassen.

ACL_PCIE_USE_JTAG_PROGRAMMING

Legen Sie diese Variable fest, um die MMD zu zwingen, den FPGA mit dem JTAG-Kabel anstelle der partiellen Neukonfiguration neu zu programmieren.

ACL_PCIE_DMA_USE_MSI

Legen Sie diese Variable fest, wenn Sie MSI für DMA-Übertragungen (Direct Memory Access) unter Windows* verwenden möchten.

Signal Tippen Sie auf Debuggen

Da OpenCL™-Designs keine Simulationsfunktion unterstützen, ist die Verwendung des Signal Tap Logic Analyzer der beste Weg, um diese Designs zu debuggen.

Zum Debuggen eines Designs, bei dem ein Kernel-Hang oder ein Problem im Zusammenhang mit der Speicherschnittstelle oder einem Diagnosefehler auftritt, wird die Verwendung des Signal Tap Logic Analyzer empfohlen.

Weitere Informationen zum Signal Tap Logic Analyzer finden Sie im Abschnitt Entwerfen von Debuggen mit dem Signal Tap Logic Analyzer im Debug Tools-Benutzerhandbuch.

Führen Sie die folgenden Schritte aus, um die Signal Tap-Datei in das BSP-Design einzufügen

1. Öffnen Sie die Signal Tap GUI und fügen Sie alle zu analysierenden Signale hinzu.

2. Speichern Sie die STP-Datei im selben Verzeichnis wie die Intel® Quartus® Software-Projektdatei.

3. Fügen Sie die folgenden Befehlszeilen in Ihre flat.qsf ein:

  • set_global_assignment -name ENABLE_SIGNALTAP ON
  • set_global_assignment -name USE_SIGNALTAP_FILE <file_name>.stp
  • set_global_assignment -name SIGNALTAP_FILE <file_name>.stp

4. Kompilieren Sie den Kernel über die AOCL-Befehlszeile neu.

Bekannte Probleme

5. Empfohlene Lektüre und Schulung

OpenCL™ Videos

Titel

Beschreibung

Erste Schritte mit OpenCL™ Teil 1

In diesem Video wird das Out-of-Box-Verfahren zum Ausführen von zwei Anwendungen, OpenCL™ HelloWorld und OpenCL™ schnellen Fourier-Transformation (FFT) auf dem Cyclone® V-SoC mit einem Windows*-Computer beschrieben.

Erste Schritte mit OpenCL™ Teil 2

In diesem Video wird das sofort einsatzbereite Verfahren zum Ausführen von zwei Anwendungen, OpenCL™ HelloWorld und OpenCL™ FFT auf dem Cyclone® V-SoC mit einem Windows*-Computer beschrieben.

Erste Schritte mit OpenCL Teil 3

In diesem Video wird das sofort einsatzbereite Verfahren zum Ausführen von zwei Anwendungen, OpenCL™ HelloWorld und OpenCL™ FFT auf dem Cyclone® V-SoC mit einem Windows*-Computer beschrieben.

Erste Schritte mit OpenCL Teil 4

In diesem Video wird das sofort einsatzbereite Verfahren zum Ausführen von zwei Anwendungen, OpenCL™ HelloWorld und OpenCL™ FFT auf dem Cyclone® V-SoC mit einem Windows*-Computer beschrieben.

Erste Schritte mit OpenCL Teil 5

In diesem Video wird das sofort einsatzbereite Verfahren zum Ausführen von zwei Anwendungen, OpenCL™ HelloWorld und OpenCL™ FFT auf dem Cyclone® V-SoC mit einem Windows*-Computer beschrieben.

So verpacken Sie benutzerdefinierte Verilog-Module / -Designs als OpenCL™-Bibliotheken

Das Video erläutert, warum Kunden diese Funktion möglicherweise verwenden können, um ihre benutzerdefinierten Verarbeitungsblöcke (RTL) in OpenCL™ Kernelcode zu haben. Das Video erklärt das Designbeispiel wie die Make-Dateien, Konfigurationsdateien und den Kompilierungsablauf. Das Video zeigt auch eine Demo des Designbeispiels.

OpenCL™ auf Intel FPGA SoC FPGA (Linux Host) – Teil 1 – Tools Herunterladen und Einrichten

Dieses Video zeigt Ihnen, wie Sie die Tools herunterladen, installieren und konfigurieren, die für die Entwicklung von OpenCL™-Kernels und Hostcode für Intel FPGA-SoC-FPGAs erforderlich sind.

OpenCL™ auf Intel FPGA SoC FPGA (Linux Host) – Teil 2 – Ausführen des Vector Add Beispiels mit dem Emulator

Dieses Video zeigt Ihnen, wie Sie eine OpenCL™-Beispielanwendung herunterladen und kompilieren, die auf den Emulator abzielt, der in den Intel FPGA OpenCL™ integriert ist.

OpenCL™ auf Intel FPGA SoC FPGA (Linux Host) – Teil 3 – Kernel- und Hostcode-Kompilierung für SoC-FPGA

Dieses Video zeigt Ihnen, wie Sie den OpenCL™-Kernel- und Host-Code kompilieren, der auf den FPGA und den Prozessor des Cyclone® V SoC-FPGAs abzielt.

OpenCL™ auf Intel FPGA SoC FPGA (Linux Host) – Teil 4 – Einrichtung der Laufzeitumgebung

Dieses Video zeigt Ihnen, wie Sie das Cyclone® V SoC-Board einrichten, um die OpenCL™ Beispiel auszuführen und den Hostcode und den Kernel auf dem Board auszuführen.

6. Holen Sie sich Hilfe

OpenCL-zertifizierte Dienstleister

Intel empfiehlt die folgenden zertifizierten Service Provider, die bei der Entwicklung eines OpenCL™-Mainboard-Supportpakets für Intel® FPGA-Mainboards behilflich sein können. Diese Anbieter verfügen über umfangreiche Erfahrung in der Entwicklung hochwertiger OpenCL-Board-Supportpakete, Treiber und Design-Migration für Intel FPGA-Boards:

Terasic Inc

OpenCL und das OpenCL-Logo sind Marken von Apple Inc., die mit Genehmigung von Khronos verwendet werden.

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.