Deep Learning HDL Toolbox

 

Deep Learning HDL Toolbox

Prototypisierung und Bereitstellung von Deep Learning-Netzen auf FPGAs und SoCs

Jetzt beginnen:

Deep Learning-Inferenz auf FPGAs

Prototypisierung und Implementierung von Deep Learning-Netzen auf FPGAs für Edge Deployment.

Programmierbarer Deep Learning-Prozessor

Die Toolbox enthält einen Deep Learning-Prozessor mit generischer Faltung und vollständig verbundenen Schichten, die durch eine Scheduling-Logik gesteuert werden. Dieser Deep Learning-Prozessor führt FPGA-basierte Inferenzierung von Netzen durch, die mit der Deep Learning Toolbox™ entwickelt wurden. Speicherschnittstellen mit hoher Bandbreite beschleunigen die Speicherübertragung von Layer- und Gewichtsdaten.

Der Deep Learning-Prozessor verfügt über generische Faltung und vollständig verbundene Verarbeitungsmodule, die so programmiert sind, dass sie das angegebene Netz verarbeiten.

Architektur für den Deep Learning-Prozessor.

Kompilierung und Bereitstellung

Kompilieren Sie Ihr Deep Learning-Netz in eine Reihe von Anweisungen, die vom Deep Learning-Prozessor ausgeführt werden sollen. Stellen Sie sie auf dem FPGA bereit und führen Sie die Prognosefunktion aus, während Sie die tatsächlichen Leistungsmetriken auf dem Gerät erfassen.

Kompilieren Sie Ihr Deep-Learning-Netz in eine Reihe von Anweisungen, die auf dem Deep-Learning-Prozessor bereitgestellt werden sollen.

Kompilieren und Bereitstellen eines YOLO v2-Netzes.

FPGA-basierte Inferenz in MATLAB

Mit MATLAB Deep Learning-Inferenzierung auf FPGAs durchführen.

Erstellen eines Bereitstellungsnetzwerkes

Zunächst nutzen Sie die Deep Learning Toolbox zum Entwickeln, Trainieren und Analysieren Ihres Deep Learning-Netzes für Aufgaben wie Objekterkennung oder -klassifizierung. Sie können als Erstes auch ein trainiertes Netz oder Schichten aus anderen Frameworks importieren.

Bereitstellen Ihres Netzes auf dem FPGA

Sobald Sie ein trainiertes Netz haben, programmieren Sie mit dem deploy-Befehl den FPGA mit dem Deep Learning-Prozessor zusammen mit der Ethernet- oder JTAG-Schnittstelle. Verwenden Sie dann den compile-Befehl, um einen Befehlssatz für Ihr trainiertes Netz zu generieren, und zwar ohne den FPGA neu zu programmieren.

Konfiguration der Karte und der Schnittstelle, Kompilierung des Netzes und Bereitstellung auf dem FPGA mit MATLAB.

Mit MATLAB können Sie Karte und Schnittstelle konfigurieren, das Netz kompilieren und es auf dem FPGA bereitstellen.

Ausführen von FPGA-basierter Inferenzierung als Teil Ihrer MATLAB-Anwendung

Ausführen Ihrer gesamten Anwendung in MATLAB®, einschließlich des Prüfstands, der Vor- und Nachverarbeitungsalgorithmen und der FPGA-basierten Inferenz für Deep Learning. Ein einziger MATLAB-Befehl, nämlich predict, führt die Inferenzierung auf dem FPGA durch und gibt die Ergebnisse an den MATLAB-Workspace zurück.

MATLAB-Schleife, die ein Bild erfasst, es durch Größenanpassung für AlexNet vorverarbeitet, auf dem FPGA Deep Learning-Inferenzen ausführt und dann die Ergebnisse nachbearbeitet und anzeigt.

Führen Sie MATLAB-Anwendungen aus, die Deep Learning-Inferenzen auf dem FPGA durchführen.

Netzanpassung

Optimieren Sie Ihr Deep Learning-Netz, um anwendungsspezifische Anforderungen auf Ihrem Ziel-FPGA oder SoC-Gerät zu erfüllen.

Profil-FPGA-Inferenzierung

Messen Sie die Latenzzeit auf Schichtebene, während Sie Prognosen auf dem FPGA ausführen, um Leistungsengpässe zu finden.

Deep Learning Inferenz-Profiling-Metriken.

Profil Deep Learning-Netz-Inferenz auf einem FPGA von MATLAB.

Abstimmen des Netzdesigns

Abstimmen Ihrer Netzkonfiguration mithilfe der Profilmetriken mit der Deep Learning Toolbox. Mit dem Deep Network Designer können Sie beispielsweise Schichten hinzufügen, entfernen oder neue Verbindungen erstellen.

Einsatz von benutzerdefinierten RTL-Implementierungen

Bereitstellen von benutzerdefinierten RTL-Implementierungen des Deep Learning-Prozessors auf jedem FPGA-, ASIC- oder SoC-Baustein mit dem HDL Coder.

Benutzerdefinierte Konfiguration des Deep Learning-Prozessors

Spezifizieren von Hardware-Architekturoptionen für die Implementierung des Deep Learning-Prozessors, wie z.B. die Anzahl paralleler Threads oder die maximale Schichtgröße.

Synthetisierbares RTL erzeugen

Erzeugen von synthetisierbarem RTL mit dem HDL Coder aus dem Deep Learning-Prozessor zum Einsatz in einer Vielzahl von Implementierungs-Workflows und -Geräten. Wiederverwenden des gleichen Deep Learning-Prozessors für den Prototypen- und Produktionseinsatz.

Die dlhdl.BuildProcessor-Klasse generiert synthetisierbare RTL aus dem benutzerdefinierten Deep Learning-Prozessor.

Generieren von synthetisierbarem RTL aus dem Deep Learning-Prozessor.

Generieren von IP-Cores für die Integration

Wenn der HDL Coder RTL aus dem Deep Learning-Prozessor generiert, erzeugt er auch einen IP-Kern mit Standard AXI-Schnittstellen zur Integration in Ihr SoC-Referenzdesign.

HDL Coder generiert einen IP-Kern, der die Ein- und Ausgänge von Deep-Learning-Prozessoren auf AXI-Schnittstellen abbildet.

Die Schnittstellen-Tabelle der Zielplattform zeigt die Zuordnung zwischen E/A- und AXI-Schnittstellen.