Deep Learning HDL Toolbox

 

Deep Learning HDL Toolbox

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

Screenshots vom Prototyping und der Implementierung von Deep-Learning-Netzwerken auf FPGAs für Edge Deployment.
Blockdiagramm eines programmierbaren Deep-Learning-Prozessors.

Verwendung eines FPGA-basierten Deep-Learning-Prozessors

Die Toolbox enthält einen Deep-Learning-Prozessor mit generischen Deep-Learning-Schichten, die von einer Planungslogik gesteuert werden. Dieser Prozessor führt eine FPGA-basierte Inferenz von Netzwerken mithilfe der Deep Learning Toolbox durch.

Erkennung eines weißen Lastwagens mit einem Begrenzungsrahmen.

Kompilieren und Bereitstellen von Netzwerken

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

Erste Schritte mit vorgefertigten Bitstreams

Sie können in kürzester Zeit einen Prototyp eines Long Short Memory (LSTM)-Netzwerks mithilfe der verfügbaren vorgefertigten Bitstreams erstellen. Erstellen Sie ganz individuelle Bitstream-Konfigurationen, um die Anforderungen an die Ressourcennutzung zu erfüllen.

Code Snippet mit einem an ein FPGA-Entwicklungsboard angeschlossenen Xilinx-Bitstream.

Bereitstellung von Netzwerken auf FPGAs

Verwenden Sie die Deep Learning Toolbox, um RNN- und CNN-Netzwerke zu entwickeln oder ein Netzwerk zu importieren. Programmieren Sie anschließend ein FPGA mithilfe des deploy-Befehls, um auf AMD- oder Intel-FPGAs zu implementieren.

While-Schleife des MATLAB Programmcodes für den prädiktiven Aufruf.

FPGA-basierte Inferenz in MATLAB-Anwendungen

Führen Sie eine komplette Anwendung in MATLAB aus, 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.

Profiling von FGPA-Inferenzierung und Optimierung von Netzwerkdesigns

Führen Sie Prognosen auf dem FPGA aus, um Leistungsengpässe zu ermitteln und nutzen Sie Profilmetriken wie die Latenzzeit auf Schichtebene, um Ihre Netzwerkkonfiguration abzustimmen.

Komprimierung von Deep-Learning-Netzwerken zur Bereitstellung auf FPGA-Ebene

Reduzieren Sie die Ressourcenlast durch Komprimierung Ihres Deep-Learning-Netzwerks mithilfe von Quantisierung und Straffung. Abwägung der Ansätze in Bezug auf Genauigkeit und Ressourcenauslastung mit dem Support-Paket der Model Quantization Library.

Individuelle Anpassung der Prozessorkonfiguration für Deep Learning

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

Screenshot der individuellen Bitstream-Codierung.

Generierung von synthetisierbarem RTL und von IP-Cores

Verwenden Sie den HDL Coder, um aus dem Deep-Learning-Prozessor synthetisierbaren RTL-Code zu erzeugen. Generieren Sie einen IP-Core mit standardmäßigen AXI-Schnittstellen zur Integration in SoC-Designs von AMD und Intel.