Intel® FPGA SDK für OpenCL™ - Support Center

Willkommen auf der Support® Intel® FPGA SDK for OpenCL! Hier finden Sie Informationen zum Emulieren, Kompilieren und Profilieren Ihres Kernels. Es gibt auch Richtlinien zum Optimieren Ihres Kernels sowie Informationen zum Debuggen Ihres Systems beim Ausführen der Hostanwendung. Diese Seite ist basierend auf der Entwicklungsplattform in zwei Hauptkategorien unterteilt: Kernelentwickler für FPGA und Hostcodeentwickler für CPUs.

Genießen Sie Ihre Reise!

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. Die Voraussetzungen finden Sie im Abschnitt Softwareanforderungen weiter unten.

Intel® FPGA SDK für OpenCL herunterladen™

Software-Anforderungen

Sie müssen über Administratorrechte auf dem Entwicklungssystem verfügen, um die für die Entwicklung der Hostsoftware erforderlichen Pakete und Treiber installieren zu können.

Auf dem Hostsystem muss eines der folgenden unterstützten Windows*- und Linux*-Betriebssysteme ausgeführt werden, die auf der Seite Betriebssystemunterstützung aufgeführt sind.

Entwickeln Sie Ihre Hostanwendung für das Intel® FPGA SDK für OpenCL™ mit einer der folgenden Entwicklungsumgebungen:

Windows-Betriebssysteme

  • Intel FPGA SDK für OpenCL
  • Board Support Package (BSP)
  • Microsoft* Visual Studio Professional Version 2010 oder höher.

Linux-Betriebssysteme

  • Intel FPGA SDK für OpenCL
  • BSP
  • RPM (RPM Package Manager; ursprünglich Red Hat Package Manager)
  • C-Compiler im Lieferumfang von GCC enthalten
  • Perl-Befehl Version 5 oder höher

1. Kernel-Entwickler

SDK-Benutzeroberfläche

Intel® FPGA SDK für OpenCL™ bietet Benutzern zwei Entwicklungsmodi. Für Code-Builder sind alle Tools in die GUI integriert, die es ihnen ermöglicht, den Kernel zu entwerfen, zu kompilieren und zu debuggen. Auf der anderen Seite sind die Befehlszeilenoptionen für herkömmliche Benutzer.

  1. GUI/Code-Builder: Momentan nicht verfügbar
  2. Befehlszeilenoption:

Hier sind einige nützliche Befehle für Kernel-Entwickler:

aoc kernel.cl -o bin/kernel.aocx –board=<board_name>

- Kompiliert kernel.cl Quelldatei in eine FPGA-Programmierdatei (kernel.aocx) für das von <board_name> angegebene Board; -o wird verwendet, um den Namen und den Speicherort der Ausgabedatei anzugeben

aoc kernel.cl -o bin/kernel.aocx –board=<board_name> -march=emulator

- Erstellt eine AOCX-Datei für die Emulation, mit der die Funktionalität des Kernels getestet werden kann

aoc -list-boards

- Druckt eine Liste der verfügbaren Boards und Exits aus

aoc -hilfe

- Druckt die vollständige Liste der aoc-Befehlsoptionen und Hilfeinformationen für jede dieser Optionen aus

aocl Version

- Zeigt Versionsinformationen für die installierte Version des Intel FPGA SDK für OpenCL an

aocl installieren

- Installiert Treiber für Ihr Board im aktuellen Host-System

aocl diagnose

- Führt das Testprogramm des Board-Anbieters für das Board durch

aocl Programm

- Konfiguriert ein neues FPGA-Image auf der Platine

aocl Blitz

- Initialisiert den FPGA mit einer angegebenen Startkonfiguration

aocl Hilfe

- Druckt die vollständige Liste der aocl-Befehlsoptionen und Hilfeinformationen für jede dieser Optionen

OpenCL-Spezifikation

Khronos Kompatibilität

Intel® FPGA SDK für OpenCL™ basiert auf einer veröffentlichten Khronos-Spezifikation und wird von vielen Anbietern unterstützt, die Teil der Khronos-Gruppe sind. Intel FPGA SDK für OpenCL hat den Khronos Conformance Testing Process bestanden. Es entspricht dem OpenCL 1.0-Standard und stellt sowohl die OpenCL 1.0- als auch die OpenCL 2.0-Header der Khronos Group bereit.

Aufmerksamkeit: Das SDK unterstützt derzeit nicht alle OpenCL 2.0-APIs (Application Programming Interfaces). Wenn Sie die OpenCL 2.0-Header verwenden und einen Aufruf an eine nicht unterstützte API durchführen, gibt der Aufruf einen Fehlercode zurück, der angibt, dass die API nicht vollständig unterstützt wird.

Das Intel FPGA SDK für OpenCL-Hostlaufzeit entspricht der OpenCL-Plattformschicht und -API mit einigen Klarstellungen und Ausnahmen, die im Abschnitt Support Statuses of OpenCL Features des Intel FPGA SDK for OpenCL Programming Guide zu finden sind.

Weitere verwandte Links:

OpenCL-Erweiterungen

Kanäle (I/Os oder Kernel)

Die Intel® FPGA SDK für OpenCL™Kanalerweiterung bietet einen Mechanismus zum Übergeben von Daten an Kernel und zum Synchronisieren von Kernels mit hoher Effizienz und geringer Latenz. Unter den folgenden Links finden Sie weitere Informationen zum Implementieren, Verwenden und Emulieren von Kanälen:

Hinweis: Wenn Sie die Fähigkeiten von Kanälen nutzen möchten, aber die Möglichkeit haben, Ihr Kernel-Programm mit anderen SDKs auszuführen, implementieren Sie OpenCL-Pipes. Weitere Informationen zu Pipes finden Sie im folgenden Abschnitt zu Pipes.

Dudelsack

Intel FPGA SDK für OpenCL bietet vorläufige Unterstützung für OpenCL-Pipe-Funktionen, die Teil der OpenCL-Spezifikation Version 2.0 sind. Sie bieten einen Mechanismus zum Übergeben von Daten an Kernel und zum Synchronisieren von Kernels mit hoher Effizienz und geringer Latenz.

Das Intel FPGA SDK für die OpenCL-Implementierung von Pipes entspricht nicht vollständig der OpenCL-Spezifikation Version 2.0. Das Ziel der Pipe-Implementierung des SDK ist es, eine Lösung bereitzustellen, die nahtlos auf einem anderen OpenCL 2.0-konformen Gerät funktioniert. Um Pipes für Intel FPGA-Produkte zu aktivieren, muss Ihr Design bestimmte Anforderungen erfüllen.

Weitere Informationen zur Implementierung von OpenCL-Pipes finden Sie unter den folgenden Links:

Emulator

In einem mehrstufigen Design-Flowkönnen Sie die Funktionalität Ihres OpenCL™-Kernels bewerten, indem Sie ihn auf einem oder mehreren Emulationsgeräten auf einem x86-64 Windows*- oder Linux*-Host ausführen. Die Kompilierung des Designs für die Emulation dauert Sekunden, um eine AOCX-Datei zu generieren, und ermöglicht es Ihnen, Ihr Design effektiver zu iterieren, ohne die für die vollständige Kompilierung erforderlichen langen Stunden durchlaufen zu müssen.

Für Linux-Systeme bietet der Emulator symbolische Debug-Unterstützung. Symbolisches Debuggen ermöglicht es Ihnen, die Ursprünge funktionaler Fehler in Ihrem Kernel-Code zu finden.

Der folgende Link gibt einen Überblick über den Designablauf für OpenCL-Kernel und veranschaulicht die verschiedenen Stufen, für die Sie Ihren Kernel emulieren können.

Mehrstufiges Intel® FPGA SDK für OpenCL Design Flow

Der Abschnitt Emulieren und Debuggen Ihres OpenCL-Kernels aus dem Programmierhandbuch enthält weitere Details zu den Unterschieden zwischen dem Kernelbetrieb auf Hardware und der Emulation.

Weitere verwandte Links:

Optimierung

Mit dem Intel® FPGA SDK für OpenCL™ Offline Compiler Technologie müssen Sie Ihren Kernel nicht ändern, um ihn optimal in eine feste Hardwarearchitektur einzufügen. Stattdessen passt der Offline-Compiler die Hardwarearchitektur automatisch an Ihre Kernelanforderungen an.

Im Allgemeinen sollten Sie einen Kernel optimieren, der zuerst auf eine einzelne Recheneinheit abzielt. Nachdem Sie diese Computeeinheit optimiert haben, erhöhen Sie die Leistung, indem Sie die Hardware skalieren, um den Rest des FPGAS zu füllen. Der Hardware-Footprint des Kernels korreliert mit der Zeit, die für die Hardwarekompilierung benötigt wird. Je mehr Optimierungen Sie mit einem kleineren Platzbedarf (d. h. einer einzelnen Recheneinheit) durchführen können, desto mehr Hardwarekompilierungen können Sie in einem bestimmten Zeitraum durchführen.

OpenCL-Optimierung für Intel FPGAs

Um die Implementierung Ihres Designs zu optimieren und die maximale Leistung zu erzielen, verstehen Sie Ihre theoretische maximale Leistung und verstehen Sie, was Ihre Grenzen sind. Führen Sie die folgenden Schritte aus:

  1. Beginnen Sie mit einer einfachen, zweifelsfrei funktionierenden funktionalen Implementierung.
  2. Verwenden Sie einen Emulator, um die Funktionalität zu überprüfen.
  3. Entfernen oder minimieren Sie die Pipelineverzögerungen, die mit dem Optimierungsbericht gemeldet werden.
  4. Planen Sie den Speicherzugriff für eine optimale Speicherbandbreite.
  5. Verwenden Sie einen Profiler, um Leistungsprobleme zu debuggen.

Der Profiler gibt mehr Einblick in die Systemleistung, was Ihnen die Richtung gibt, den Algorithmus bei der Nutzung des Speichers weiter zu optimieren.

Denken Sie daran, dass bei FPGAs je mehr Ressourcen zugewiesen werden können, desto mehr Unrolling, Parallelisierung und höhere Leistung können erreicht werden.

Hilfreiche Berichte und Ressourcen zur Optimierung

Es gibt eine Reihe von systemgenerierten Berichten, die den Benutzern zur Verfügung stehen. Diese Berichte geben Einblick in den Code, die Ressourcennutzung und Hinweise darauf, worauf Sie sich konzentrieren müssen, um die Leistung weiter zu verbessern:

Speicheroptimierung

Das Verständnis von Speichersystemen ist entscheidend, um eine Anwendung mit OpenCL effizient zu implementieren.

Globale Speicherverbindung

Im Gegensatz zu einer GPU kann ein FPGA jede benutzerdefinierte Load-Store-Einheit (LSU) erstellen, die für Ihre Anwendung am optimalsten ist. Daher kann Ihre Fähigkeit, OpenCL-Code zu schreiben, der die idealen LSU-Typen für Ihre Anwendung auswählt, dazu beitragen, die Leistung Ihres Entwurfs erheblich zu verbessern.

Weitere Informationen finden Sie im Abschnitt Global Memory Interconnect des Intel FPGA SDK für das OpenCL Best Practices Guide.

Lokaler Speicher

Der lokale Speicher ist ein komplexes System. Im Gegensatz zu einer typischen GPU-Architektur, bei der es verschiedene Cache-Ebenen gibt, implementiert ein FPGA lokalen Speicher in dedizierten Speicherblöcken innerhalb des FPGA. Weitere Informationen finden Sie im Abschnitt Lokaler Speicher des Intel FPGA SDK for OpenCL Best Practices Guide.

Es gibt eine Reihe von Möglichkeiten, wie der verwendete Speicher optimiert werden kann, um die Gesamtleistung zu verbessern. Weitere Informationen zu einigen der wichtigsten Techniken finden Sie im Abschnitt Zuweisen von ausgerichtetem Speicher im Intel FPGA SDK for OpenCL Best Practices Guide.

Weitere Informationen zu den Strategien zur Verbesserung der Speicherzugriffseffizienz finden Sie im Abschnitt Strategien zur Verbesserung der Speicherzugriffseffizienz des Intel FPGA SDK for OpenCL Best Practices Guide.

Pipelines

Das Verständnis von Pipelines ist entscheidend, um die beste Leistung Ihrer Implementierung zu nutzen. Der effiziente Einsatz von Pipelines verbessert direkt den Leistungsdurchsatz. Weitere Informationen finden Sie im Abschnitt Pipelines des Intel FPGA SDK for OpenCL Best Practices Guide.

Weitere Informationen zur Datenübertragung finden Sie im Abschnitt Übertragen von Daten über das Intel FPGA SDK für OpenCL-Kanäle oder OpenCL Pipes im Handbuch Intel FPGA SDK for OpenCL Best Practices.

Stall, Belegung, Bandbreite

Profilieren Sie Ihren Kernel, um Leistungsengpässe zu identifizieren. Weitere Informationen dazu, wie Profilerstellungsinformationen Ihnen helfen, schlechtes Speicher- oder Kanalverhalten zu identifizieren, das zu einer unbefriedigenden Kernelleistung führt, finden Sie im Abschnitt Profiling Your Kernel to Identify Performance Bottlenecks des Intel FPGA SDK for OpenCL Best Practices Guide.

Schleifenoptimierung

Einige Techniken zur Optimierung der Schleifen sind:

Einige Tipps zum Entfernen von schleifengetragenen Abhängigkeiten in verschiedenen Szenarien für einen einzelnen Arbeitsaufgabenkernel finden Sie im Abschnitt Entfernen der schleifengetragenen Abhängigkeit des Intel FPGA SDK for OpenCL Best Practices Guide.

Weitere Informationen zum Optimieren von Gleitkommavorgängen finden Sie im Abschnitt Optimieren von Gleitkommavorgängen des Intel FPGA SDK for OpenCL Best Practices Guide.

Bereichsoptimierung

Die Flächennutzung ist eine wichtige Designüberlegung, wenn Ihre OpenCL-Kernel auf FPGAs unterschiedlicher Größe ausführbar sind. Wenn Sie Ihre OpenCL-Anwendung entwerfen, empfiehlt Intel, dass Sie bestimmte Entwurfsstrategien zur Optimierung der Hardwarebereichsnutzung befolgen.

Die Optimierung der Kernel-Leistung erfordert im Allgemeinen zusätzliche FPGA-Ressourcen. Im Gegensatz dazu führt die Bereichsoptimierung oft zu einer verminderten Leistung. Während der Kernel-Optimierung empfiehlt Intel, mehrere Versionen des Kernels auf der FPGA-Karte auszuführen, um die Kernel-Programmierstrategie zu bestimmen, die den Kompromiss zwischen Größe und Leistung generiert.

Weitere Informationen zu Strategien zur Optimierung der FPGA-Bereichsnutzung finden Sie im Abschnitt Strategien zur Optimierung der FPGA-Bereichsnutzung des Intel FPGA SDK for OpenCL Best Practices Guide.

Referenz-Design-Beispiele

Einige Entwurfsbeispiele, die die Optimierungstechniken veranschaulichen, sind wie folgt:

Entwurfsbeispiel für Matrixmultiplikation

Dieses Beispiel zeigt die Optimierung des grundlegenden Matrixmultiplikationsvorgangs mithilfe von Schleifenkachelung, um die Vorteile der der Berechnung inhärenten Datenwiederverwendung zu nutzen.

Dieses Beispiel veranschaulicht:

- Gleitkommaoptimierungen mit einfacher Genauigkeit

- Lokale Speicherpufferung

- Kompilieren von Optimierungen (Loop Unrolling, num_simd_work_items Attribut)

- Gleitkomma-Optimierungen

- Ausführung mehrerer Geräte

Entwurfsbeispiel für einen Zeitdomänen-FIR-Filter

Dieses Entwurfsbeispiel implementiert den Zeitbereich FINITE IMPULSE RESPONSE (FIR)-Filter-Benchmark aus der HPEC Challenge Benchmark Suite. Weitere Informationen finden Sie auf der Seite Time-Domain Finite Impulse Response Filter Bank.

Dieses Design ist ein großartiges Beispiel dafür, wie FPGAs eine weitaus bessere Leistung als eine GPU-Architektur für Gleitkomma-FIR-Filter bieten können.

Dieses Beispiel veranschaulicht:

- Gleitkommaoptimierungen mit einfacher Genauigkeit

- Effiziente Implementierung von 1D-Schiebefensterpuffern

- Optimierungsmethoden für einzelne Workitem-Kernel

Designbeispiel für Video-Downscaling

In diesem Entwurfsbeispiel wird ein Video-Downscaler implementiert, der 1080p-Eingangsvideo und 720p-Video mit 110 Bildern pro Sekunde ausgibt. In diesem Beispiel werden mehrere Kernel verwendet, um effizient aus dem globalen Speicher zu lesen und in diesen zu schreiben.

Dieses Beispiel veranschaulicht

- Kernel-Kanäle

- Mehrere gleichzeitige Kernel

- Kernel-zu-Kernel-Kanäle

- Designmuster für Schiebefenster

- Optimierung des Speicherzugriffsmusters

Beispiel für ein optisches Flussdesign

Dieses Designbeispiel ist eine OpenCL-Implementierung des optischen Flussalgorithmus von Lucas Kanade. Eine dichte, nicht iterative und nicht pyramidenförmige Version mit einer Fenstergröße von 52x52 wird auf dem Cyclone® V SoC Development Kit mit über 80 Bildern pro Sekunde ausgeführt.

Dieses Beispiel veranschaulicht:

- Einzelner Work-Item-Kernel

- Designmuster für Schiebefenster

- Techniken zur Reduzierung des Ressourcenverbrauchs

- Visuelle Ausgabe

Ausbildung

Online-Schulungen speziell zur OpenCL-Optimierung mit Designbeispielen finden Sie unter:

Referenzen

Profilieren

Wenn in einem mehrstufigen Designablaufdie geschätzte Kernelleistung aus der Emulation akzeptabel ist, können Sie Informationen darüber sammeln, wie Ihr Design während der Ausführung auf dem FPGA funktioniert.

Sie können den Intel® FPGA SDK für OpenCL™ Offline Compiler anweisen, Leistungsindikatoren im Verilog-Code in der AOCX-Datei mit der Option -profile zu instrumentieren. Während der Ausführung misst und meldet das Intel FPGA SDK for OpenCL Profiler Leistungsdaten, die während der OpenCL-Kernelausführung auf dem FPGA gesammelt werden. Anschließend können Sie die Leistungsdaten in der Profiler-GUI überprüfen.

Der Abschnitt Profiling Your OpenCL Kernel des Intel FPGA SDK for OpenCL Programming Guide enthält weitere Informationen zum Profilieren Ihres Kernels.

Analysieren von Profilerstellungsdaten

Profilerstellungsinformationen helfen Ihnen, schlechtes Speicher- oder Kanalverhalten zu identifizieren, das zu einer unbefriedigenden Kernelleistung führt. Der Abschnitt Profile Your Kernel to Identify Performance Bottlenecks des Intel FPGA SDK for OpenCL Best Practices Guide enthält ausführlichere Informationen zur Dynamic Profiler GUI und zur Interpretation von Profilerstellungsdaten wie Stall, Bandbreite, Cache-Treffer usw. Es enthält auch eine Profiler-Analyse mehrerer OpenCL-Design-Beispielszenarien.

2. Hostcode-Entwickler

Laufzeit-Hostbibliotheken

Intel® FPGA SDK für OpenCL™ bietet einen Compiler und Tools zum Erstellen und Ausführen von OpenCL-Anwendungen, die auf Intel FPGA-Produkte abzielen.

Wenn Sie nur das Intel FPGA SDK für die Kernel-Bereitstellungsfunktionalität von OpenCL benötigen, laden Sie die Intel FPGA Runtime Environment (RTE) für OpenCL herunter und installieren Sie sie.

Der RTE ist eine Teilmenge des Intel FPGA SDK für OpenCL. Im Gegensatz zum SDK, das eine Umgebung bereitstellt, die die Entwicklung und Bereitstellung von OpenCL-Kernelprogrammen ermöglicht, stellt das RTE Tools und Laufzeitkomponenten bereit, mit denen Sie ein Hostprogramm erstellen und ausführen und vorkompilierte OpenCL-Kernelprogramme auf Zielbeschleunigerkarten ausführen können.

Installieren Sie das SDK und den RTE nicht auf demselben Hostsystem. Das SDK enthält bereits die RTE.

Dienstprogramme und Hostlaufzeitbibliotheken

Der RTE für OpenCL stellt Dienstprogramme, Hostlaufzeitbibliotheken, Treiber und RTE-spezifische Bibliotheken und Dateien bereit.

  • Das RTE-Dienstprogramm enthält Befehle, die Sie aufrufen können, um allgemeine Aufgaben auszuführen. Die RTE-Dienstprogramme sind eine Teilmenge des Intel FPGA SDK für OpenCL-Dienstprogramme
  • Die Hostlaufzeit stellt die OpenCL-Hostplattform-API und die Laufzeit-API für Ihre OpenCL-Hostanwendung bereit

Die Hostlaufzeit besteht aus den folgenden Bibliotheken:

  • Statisch verknüpfte Bibliotheken bieten OpenCL-Host-APIs, Hardwareabstraktionen und Hilfsbibliotheken
  • Dynamic Link Libraries (DLLs) bieten Hardwareabstraktionen und Hilfsbibliotheken

Weitere Informationen zu Dienstprogrammen und Host-Laufzeitbibliotheken finden Sie im Abschnitt Inhalt des Intel FPGA RTE für OpenCL des Intel FPGA RTE für OpenCL -Handbuchs .

Daten-Streaming (Host-Kanal)

Sie können jetzt die Systemlatenz Ihrer Systeme mithilfe von Hostkanälen erheblich reduzieren, sodass Streaming-Daten vom Host über die PCIe*-Schnittstelle direkt in den FPGA-Kernel gestreamt werden können, während der Speichercontroller umgangen wird. Der FPGA-Kernel kann sofort mit der Verarbeitung der Daten beginnen und muss nicht warten, bis die Datenübertragung abgeschlossen ist. Hostkanäle werden in den OpenCL-Laufzeit-APIs (Application Programming Interfaces) unterstützt und enthalten Emulationsunterstützung.

Weitere Informationen zu Hostkanälen und Emulationsunterstützung finden Sie im Abschnitt Emulieren von E/A-Kanälen des Intel® FPGA SDK for OpenCL™ Programmierhandbuchs.

Profilierung

Mit der Profilerstellung können Sie erfahren, wo ihr Programm seine Zeit verbracht hat und welche verschiedenen Funktionen aufgerufen werden. Diese Informationen zeigen Ihnen, welcher Teil des Programms langsamer als erwartet ausgeführt wird und möglicherweise neu geschrieben werden muss, um die Programmausführung zu beschleunigen. Es kann Ihnen auch sagen, welche Funktionen mehr oder seltener aufgerufen werden, als Sie erwartet haben.

gprof

Der gprof ist ein Open-Source-Tool, das in Linux*-Betriebssystemen zur Profilerstellung des Quellcodes verfügbar ist. Es funktioniert mit zeitbasierter Stichprobe. In Intervallen wird der Programmzähler abgefragt, um zu entscheiden, an welcher Stelle im Code die Ausführung erfolgt ist.

Um den gprof zu verwenden, kompilieren Sie den Quellcode mit dem Compilerprofilierungsflag -pg neu.

Führen Sie die ausführbaren Dateien aus, um die Dateien mit Profilerstellungsinformationen zu generieren:

Es wird eine bestimmte Datei mit dem Namen "gmon.out" generiert, die alle Informationen enthält, die das gprof-Tool benötigt, um für Menschen lesbare Profilerstellungsdaten zu erstellen. Verwenden Sie nun das gprof-Tool auf folgende Weise:

$ gprof Quellcode gmon.out > profile_data.txt

profile_data.txt ist die Datei, die die Informationen enthält, die das gprof-Tool verwendet, um für Menschen lesbare Profilerstellungsdaten zu erstellen. Diese besteht aus zwei Teilen: flaches Profil und Aufrufgraph.

Das flache Profil zeigt, wie viel Zeit Ihr Programm in jeder Funktion verbracht hat und wie oft diese Funktion aufgerufen wurde.

Das Aufrufdiagramm zeigt für jede Funktion, welche Funktionen sie aufgerufen haben, welche anderen Funktionen sie aufgerufen hat und wie oft. Es gibt auch eine Schätzung, wie viel Zeit in den Unterroutinen jeder Funktion verbracht wurde.

Weitere Informationen zur Verwendung von gprof für das Profiling finden Sie auf der GNU-Website.

Intel® VTune™ Verstärker

Der Intel® VTune™ Amplifier, der für die Profilerstellung verwendet wird, hilft Ihnen, die Ausführung Ihres Codes auf Linux-Embedded-Plattformen, Android* oder Windows* Systemen zu beschleunigen und zu optimieren und bietet die folgenden Arten von Analysen:

  • Performance-Analyse: Finden Sie Engpässe bei seriellem und parallelem Code, analysieren Sie die Auswahl von Algorithmen und die GPU-Engine-Nutzung und verstehen Sie, wo und wie Ihre Anwendung von den verfügbaren Hardwareressourcen profitieren kann.
  • Intel Energy Profiler Analyse: Analysieren Sie Stromereignisse und identifizieren Sie diejenigen, die Energie verschwenden

Weitere Informationen zum Intel V-tune Verstärker finden Sie auf der Website Erste Schritte mit dem Intel VTune Amplifier 2018 für Linux OS.

Multithreading

OpenCL™ Host-Pipeline-Multithread bietet ein Framework, um einen hohen Durchsatz für Algorithmen zu erreichen, bei denen eine große Anzahl von Eingabedaten verarbeitet werden muss und der Prozess für jede Daten in sequenzieller Reihenfolge durchgeführt werden muss. Eine der besten Anwendungen dieses Frameworks ist in heterogenen Plattformen, auf denen Hardware oder Plattform mit hohem Durchsatz verwendet wird, um den zeitaufwändigsten Teil der Anwendung zu beschleunigen. Die verbleibenden Teile des Algorithmus müssen in sequenzieller Reihenfolge auf anderen Plattformen wie CPUs ausgeführt werden, um entweder die Eingabedaten für die beschleunigte Aufgabe vorzubereiten oder die Ausgabe dieser Aufgabe zur Vorbereitung der endgültigen Ausgabe zu verwenden. Obwohl in diesem Szenario die Leistung des Algorithmus teilweise beschleunigt wird, ist der Gesamtsystemdurchsatz aufgrund der sequentiellen Natur des ursprünglichen Algorithmus viel geringer.

In diesem AN 831: Intel FPGA SDK for OpenCL Host Pipelined Multithread Application Note wird ein neues Pipeline-Framework für das Design mit hohem Durchsatz vorgeschlagen. Dieses Framework ist optimal für die Verarbeitung großer Eingabedaten durch Algorithmen, bei denen die Datenabhängigkeit die sequenzielle Ausführung aller Stufen oder Aufgaben des Algorithmus erzwingt.

FPGA-Initiailization vom Host

FPGAs werden im Beschleunigungsbereich stark eingesetzt. OpenCL hat eine bestimmte Möglichkeit, von der CPU verwendet zu werden, um Aufgaben auf FPGA auszulagern. Die unten angehängte Datei enthält die allgemeinen Initialisierungsschritte, die für den Hostcode zum Starten des FPGA-Kernels erforderlich sind. Laden Sie die Datei mit den Initialisierungsschritten hier herunter.

Die init()-Funktion kann von der main()-Funktion aufgerufen werden, um den FPGA zu initialisieren. Der Code findet zuerst das Gerät, auf dem der Kernel ausgeführt wird, und programmiert es dann mit dem aocx, das im selben Verzeichnis wie der Host bereitgestellt wird. Nach den Initialisierungsschritten im Code muss der Benutzer die Kernelargumente entsprechend seinen Entwurfsanforderungen festlegen.

Es gibt auch eine cleanup()-Funktion, die die Ressourcen nach dem Ausführen des Kernels freigibt.

3. Debuggen

Emulation

Das Intel® FPGA SDK für OpenCL™ Emulator kann verwendet werden, um die Funktionalität des Kernels zu überprüfen. Der Benutzer kann die OpenCL-Kernelfunktionalität auch als Teil der Hostanwendung auf Linux*-Systemen debuggen. Die Debugging-Funktion, die mit dem Intel FPGA SDK für OpenCL Emulator bereitgestellt wird, ermöglicht es Ihnen, dies zu tun.

Weitere Informationen finden Sie in den folgenden Abschnitten des Intel FPGA SDK for OpenCL-Programmierhandbuchs:

Profilieren

Weitere Informationen zur Profilerstellung finden Sie in den folgenden Abschnitten im Programmierhandbuch intel® FPGA SDK for OpenCL™:

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 einen Wert von 1 bis 10.000 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 mithilfe des JTAG-Kabels neu zu programmieren, anstatt sie teilweise neu zu konfigurieren.

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.

Diagnosetool für Intel® FPGA SDK für OpenCL™

Das Diagnosetool für Das Intel FPGA SDK für OpenCL hilft bei der Diagnose und Behebung verschiedener Installations-/Einrichtungsprobleme, Hardware- und Softwareprobleme, die bei der Arbeit mit dem Intel FPGA SDK für OpenCL auftreten. Das Tool führt Installationstests, Gerätetests und Linktests durch. Weitere Informationen zum Tool finden Sie in dieser Präsentation. Um das Tool zu verwenden, laden Sie eshier herunter.

Andere Debugging-Techniken

Aufgrund einer Schleife im Host-Programm kann es vorkommen, dass das OpenCL™-System während der Ausführung langsamer wird. Weitere Informationen zu einem solchen Szenario finden Sie im Abschnitt Debuggen Ihres OpenCL-Systems, das sich allmählich verlangsamt im Programmierhandbuch intel® FPGA SDK for OpenCL

Der Intel Code Builder für OpenCL ist ein Softwareentwicklungstool, das als Teil des Intel FPGA SDK für OpenCL verfügbar ist. Es bietet eine Reihe von Microsoft* Visual Studio- und Eclipse-Plug-Ins, die Funktionen zum Erstellen, Erstellen, Debuggen und Analysieren von Windows* und Linux*-Anwendungen ermöglichen, die mit OpenCL beschleunigt werden. Weitere Informationen finden Sie im Abschnitt Entwickeln/Debuggen von OpenCL-Anwendungen mit Intel Code Builder für OpenCL des Intel FPGA SDK für OpenCL-Programmierhandbuchs.

Wissensdatenbank-Lösung

Intel® Arria® 10 Geräte

Intel® Stratix® 10 Geräte

KDB

Titel

Fehler: Assert failure at /XXX/llvm/lib/Transforms/FPGATransforms/TransformPrintf.cpp(715)

Fehler: Unbekannter Geräteteil 1SG280LU2F50E2VG

Segmentierungsfehler in acl_event_is_valid () mit clEnqueueFIllBufer()

** Fehler: ./.. /.. /ip/kernel_system/kernel_system_sys_description_rom/acl_rom_module_10/sim/acl_rom_module.v(77): Modul 'acl_reset_handler' ist nicht definiert.

Verfügbares MLAB im OpenCL-Bericht ist 0

Kann ich vorhandene Synopsys Design Compiler (DC) ASIC-Syntheseskripte für die FPGA-Synthese in der DC-FPGA-Software verwenden?

Kann Intel® Stratix® 10 GX FPGA Development Kit PCIe gen3x16 für OpenCL unterstützen?

Compilerfehler: Nicht erkannter Funktionsaufruf: acl.external.iowr

Compilerfehler: Argument in 'konstant' Der Adressraum kann nicht im heterogenen globalen Speicher gespeichert werden.

Das Kompilieren eines OpenCL-Kernels mit den Befehlsoptionen --profile und -g0 des Intel FPGA SDK für OpenCL Offline Compiler entfernt nicht den Quellcode aus der .aocx-Datei

Unterstützt die printf-Routine im Nios™ Embedded Processor Software Development Kit (SDK) Gleitkomma-Datentypen?

Die Emulation eines OpenCL-Designs kann alle CPU-Ressourcen beanspruchen und einen schwerwiegenden Fehler verursachen

Fehler (13224): Verilog HDL- oder VHDL-Fehler bei . v: ansi port p_avm_printf_addrhello_world_enable kann nicht erneut deklariert werden

Fehler (16045): Instanz "ccip_std_afu|bsp_logic_inst|board_inst" instanziiert undefinierte Entität "Board" Datei

Fehler (16045): Instanz "ccip_std_afu|bsp_logic_inst|board_inst" instanziiert undefinierte Entität "Board" Datei: /home/anchen/Downloads/dla/build/dla/build/bsp_logic.sv Zeile: 133

Fehler (16045): Instanz "ccip_std_afu|bsp_logic_inst|board_inst" instanziiert undefinierte Entität "Board" Datei: /home/anchen/Downloads/dla/build/dla/build/bsp_logic.sv Zeile: 133

Fehler (18212): Endgültiger Snapshot für Partition "root_partition" kann nicht geladen werden

Fehler (18590): Die importierte Netzliste enthält Einstellungen, die von der aktuellen Version der Software nicht unterstützt werden.

Fehler (213009): Dateiname "output_files/afu_import.green_region.pmsf" existiert nicht oder kann nicht gelesen werden

Fehler (297008): Datenbankverzeichnis für Projekt im Projektverzeichnis kann nicht erstellt werden

Fehler (XXXXX): Atom Netlist File kann nicht generiert werden, da die Stratix 10-Familie nicht installiert ist

Fehler (XXXXX): Atom Netlist File kann nicht generiert werden, da die Stratix 10-Familie nicht installiert ist

Fehlermeldung : " Fehler: Optimierer FEHLGESCHLAGEN -dbg-info-enabled --grif --soft-elementary-math=false --fas=false --wiicm-disable=true "kernel_top.1.bc" -o "kernel_top.kwgid.bc"

Fehler: Intel(R) FPGA OpenCL-Plattform kann nicht gefunden werden

Fehler: " X Fehler der fehlgeschlagenen Anforderung: BadValue"

Fehler: alt_pr.avmm_slave (0x0.. 0x3f) liegt außerhalb des Adressbereichs (0x0. 0x7)

Fehler: aoc: Der Intel(R) Kernel Builder für OpenCL(TM) Compiler (ioc64) kann nicht gefunden werden

Fehler: aocl_opt: Zu viele Positionsargumente angegeben. Kann maximal 1 Positionsargumente angeben

Fehler: Assert-Fehler bei /XXX/llvm/lib/Analysis/FPGAAnalysis/MemoryAccessAnalysis.cpp(1537)

Fehler: Fehler bei ACLMemUtils bestätigen.cpp(510)

Fehler: board.pipe_stage_host_ctrl.m0: alt_pr.avmm_slave kann nicht 0xcfb0 sein (0xcf80 oder 0xcfc0 sind akzeptabel)

Fehler: board.pipe_stage_host_ctrl.m0: version_id.s (0xcfc0.. 0xcfc3) überlappt alt_pr.avmm_slave (0xcfb0.. 0xcfef)

Fehler: board_env.xml in BSP-Lokation nicht gefunden

FEHLER: CL_INVALID_KERNEL_NAME

Fehler: Der Anpassungsbericht afu_opencl_kernel.fit.rpt konnte im Kompilierungsverzeichnis nicht gefunden werden

Fehler: Fehler bei der Geräteenumeration

Fehler: Funktion 'read_channel_altera' wird vom Intel(R) FPGA SDK für OpenCL(TM) nicht unterstützt, und es wird keine Benutzerdefinition bereitgestellt

Fehler: Funktion 'write_channel_altera' wird vom Intel(R) FPGA SDK für OpenCL(TM) nicht unterstützt, und es wird keine Benutzerdefinition bereitgestellt

Fehler: ip-generate FAILED

Fehler: kernel_mem_mm_bridge_0: deviceFamily " Arria 10" außerhalb des Bereichs liegt: " Zyklon 10 GX", " Keine", " Unbekannt"

Fehler: kernel_mem_mm_bridge_0: deviceFamily " Arria 10" außerhalb des Bereichs liegt: " Zyklon 10 GX", " Keine", " Unbekannt"

Fehler: OpenCL-Benachrichtigung Rückruf: Globale Arbeitsgröße in einer Dimension überschreitet Gerätegrenzwerte Fehler beim Starten des Kernels

FEHLER: Packager-Tool konnte nicht ausgeführt werden

Fehler: Neudefinition von 'filter_coeffs' konstante int filter_coeffs[2 * 2 * 2 * FILTER_TAPS] = {

Fehler: Systemintegrator FEHLGESCHLAGEN

FEHLER: Altera OpenCL Platform kann nicht gefunden werden

FEHLER: Intel(R) FPGA OpenCL-Plattform kann während der Emulation nicht gefunden werden

Fehler: Unerwartete Verwendung von HDL-Bibliotheksfunktion(en) (möglicherweise aufgrund der Annahme der Adresse der Funktion)!

Fehler: unbekanntes Argument: '--fmax=300'

Fehler: Unbekannter Geräteteil 10AX115S2F45I1SG

Fehler: Unbekannter Geräteteil 10AX115S2F45I1SG

Fehler: Unbekannter Geräteteil 1SG280LU2F50E2VG

FEHLER: NICHT ERKANNTER FEHLERCODE (-1001), Speicherort: .. /common/src/AOCLUtils/opencl.cpp:297, Abfrage der Anzahl der Plattformen fehlgeschlagen

Fehler: WDC_PCiScanDevices fehlgeschlagen.

export ACL_QSH_COMPILE_CMD="quartus_sh --flow recompile top -c flat" funktioniert nicht in 17.0

Externe I/O-Kanäle sind in benutzerdefinierten Plattformen, die von der Altera Stratix V-Netzwerkreferenzplattform portiert wurden, nicht verfügbar

Bei MAX 10-Designs gibt die Quartus II-Software Ausgänge " Fehler (125095): Teilename... ungültig" und " Fehler (281000): Teilename... illegal" Irrtümer

Host-to-Device-Speicherübertragungen von mehr als 8 KB können einen schwerwiegenden Fehler in der Windows-Version der Altera Arria 10 GX FPGA Development Kit-Referenzplattform verursachen

Wie kann der nichtflüchtige Flash programmiert werden, wenn das Intel® SDK für OpenCL™ Befehl "aocl program" den Computer neu startet?

Wie kompiliere ich einen OpenCL-Kernel mit der neuesten Version des Intel® SDK für OpenCL™ mit einem Board Support Package (BSP) aus einer früheren Version?

Wie sollte ich die OpenCL-Funktion clReleaseEvent verwenden, um Speicherlecks zu vermeiden?

Wie kann man feststellen, wie viele FPGA-Boards das System enthält?

Wie gehe ich mit der OpenCL-Bibliothek AVALON_MEM-Element um?

Die Installation eines nicht signierten Treibers kann einen Fehler im Altera SDK für OpenCL unter Windows 8.1 verursachen

Intel FPGA für OpenCL Kernel-Benennungsbeschränkungen

Intel FPGA SDK für OpenCL Version 17.0 unterstützt keine Ubuntu-Betriebssysteme

Interner Compilerfehler: Fehlende Startzyklusinformationen für abgefragten Knoten: sync_out

Interner Fehler: Subsystem: QHD, Datei: /quartus/comp/qhd/qhd_database_model_utils.cpp

Interner Fehler: Subsystem: QSYM, Datei: /quartus/ccl/qsym/qsym_namespace.cpp, Zeile: 264 String-Tabelle für 43 ist 5844 (ID: 721426136, Symbol: 5848)

Interner Fehler: Subsystem: QSYM, Datei: /quartus/ccl/qsym/qsym_namespace.cpp, Zeile: 264 String-Tabelle für 43 ist 5844 (ID: 721426136, Symbol: 5848)

Interner Fehler: Subsystem: VPR20KMAIN, Datei: /quartus/fitter/vpr20k/altera_arch_common/altera_arch_re_network_tools.cpp, Zeile: 883

jtagconfig:Keine JTAG-Hardware verfügbar

Kernel-Ausführung und Speicherdatenübertragung können nicht gleichzeitig ausgeführt werden, auch wenn es keine Ereignisabhängigkeit im Host-Code gibt

Linker Error: undefined reference to nios_output_memory_access', at config/nios/nios.c:2540

Nios II GCC Compiler Optionen: -march, -mbmx, -mno-bmx, -mcdx, -mno-cdx

Keine erwartete Ausgabe beim Ausführen von "aocl env" Bei der Emulation aOCX-Datei

Öffnen Sie CL Kernel Autorun für den Emulatormodus

OpenCL-Fehler: Harte Routing-Einschränkungen für Signal konnten nicht erfüllt werden

OpenCL-Fehler: ip-generate FAILED

Der Technology Map Viewer (Post-Mapping) lädt den Schaltplan der Design-Netzliste nicht, wenn Analysis & Synthese ist abgeschlossen

Autorun-Kernel auf Emulator auf 17.0 kann nicht neu gestartet werden

/intelFPGA_pro/17.1.1/hld/installed_packages kann nicht entsperrt werden

Die Verwendung des Altera SDK für OpenCL Version 16.0.1 zum Kompilieren eines OpenCL-Designs, das auf eine 16.0-Version der Arria 10-Referenz- oder benutzerdefinierten Plattform abzielt, führt zu einem schwerwiegenden Fehler

Warnung: Bitte verwenden Sie -board= statt --board

Warnung: Bitte verwenden Sie -profile anstelle von --profile

Warnung: Bitte verwenden Sie -report anstelle von --report

WARNUNG: Die ausgewählte Datei hat nicht den gleichen Pfad wie der in der .aocx-Datei gespeicherte Pfad der Datei! Kann zu leeren Daten führen

warnung: xx.cl:x:x: Schleife nicht entrollt: Der Optimierer konnte die angeforderte Transformation nicht durchführen; Die Transformation kann deaktiviert oder als Teil einer nicht unterstützten Transformationsreihenfolge angegeben werden

Was bedeutet der "Container" im Bericht.html Container für Intel® FPGA OpenCL™ SDK?

Wenn ich nios-debug oder ein anderes Dienstprogramm ausführe, das die MDI/OCI-Verbindung über die Parallel-Port-Direct-Methode (auch bekannt als parport2k) verwendet, warum sehe ich dann ein Meldungsfeld Driver Load Failed, das weitere Aktionen mit JTAG-Debugging verhindert?

Wo sind die OpenCL™ Board Support Packages (BSP) für die Development Kits?

Wo installiere ich die FCD (FPGA Client Driver) *.fcd Datei mit OpenCL SDK Tools Version 17.0?

Welche Funktion sollte ich verwenden, wenn ich den FCD (FPGA-Client-Treiber) mit der Host-Anwendung verbinde?

Warum sind die Altera OpenCL SDK-Definitionen num_vector_lanes und num_copies nicht in der 13.0sp1-Dokumentation enthalten?

Warum erhalte ich eine schlechte Leistung beim Kompilieren von Vector Add Example Design mit Intel® FPGA SDK für OpenCL™?

Warum erhalte ich Fehler (114016): Beim Kompilieren von Architekturen in der Intel® FPGA Deep Learning Acceleration Suite fehlt der Arbeitsspeicher in Modul quartus_syn?

Warum erhalte ich die unterschiedlich verfügbaren Ressourcen, wenn ich dasselbe OpenCL™Design mit verschiedenen Versionen von Intel® FPGA OpenCL™ SDK kompiliere?

Warum erhalte ich den Fehler "CL_INVALID_ARG_SIZE", wenn ich type long long als OpenCL™ Kernel-Argument im Hostcode verwende?

Warum erhalte ich den Fehler "Keine JTAG-Hardware verfügbar", wenn ich jtagconfig in Linux CentOS oder Ubuntu ausführe?

Warum erhalte ich den Fehler "Die Ausführungsumgebung kann nicht ermittelt werden", wenn ich den Befehl "aocl version" im Intel SDK für OpenCL ausführe?

Zusätzliche Ressourcen

Hier sind einige zusätzliche Links aus der Intel FPGA-Community für spezifische Probleme im Zusammenhang mit Design- und Ausführungsphasen:

4. Designbeispiele

OpenCL-Designbeispiele

Es stehen zahlreiche Designbeispiele zur Verfügung, um verschiedene Anwendungen in OpenCL™ zu beschreiben. Benutzer können diese Designs auf einem Host mit einem FPGA-Board kompilieren und ausführen, das Intel® FPGA SDK für OpenCL unterstützt.

Weitere OpenCL-Designbeispiele finden Sie auf der OpenCL Developer Zone-Website.

OpenCL-Videos

Titel

Beschreibung

Ausführen von Hello World und (anderen Programmen) mit OpenCL™ auf Cyclone® V SoC unter Windows* Teil 1

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

So führen Sie Hello World und (andere Programme) mit OpenCL auf Cyclone V SoC mit Windows Part 2 aus

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.

Ausführen von Hello World und (anderen Programmen) mit OpenCL auf Cyclone V SoC unter Verwendung von Windows Part 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.

Ausführen von Hello World und (anderen Programmen) mit OpenCL auf Cyclone V SoC unter Verwendung von Windows Part 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.

So führen Sie Hello World und (andere Programme) mit OpenCL auf Cyclone V SoC unter Verwendung von Windows Part 5 aus

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) im OpenCL-Kernelcode zu haben. Das Video erläutert das Entwurfsbeispiel, z. B. die Makefiles und Konfigurationsdateien, und erläutert den Kompilierungsablauf. Das Video zeigt auch eine Demo des Designbeispiels.

OpenCL auf Altera® SoC FPGA (Linux* Host) – Teil 1 – Tools Download und Setup

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

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

Dieses Video zeigt Ihnen, wie Sie eine OpenCL-Beispielanwendung herunterladen und kompilieren, die auf den in die OpenCL integrierten Emulator abzielt.

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

Dieses Video zeigt Ihnen, wie Sie den OpenCL-Kernel und den Hostcode kompilieren, der auf den FPGA und den Prozessor des Cyclone V SoC FPGA abzielt.

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

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

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.