Deep Learning HDL Toolbox

 

Deep Learning HDL Toolbox

Prototyping 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 des programmierbaren Deep-Learning-Prozessors der Toolbox.

FPGA-basierte Inferenz von Netzwerken durchführen

Verwenden Sie einen programmierbaren Deep-Learning-Prozessor mit generischen Deep-Learning-Schichten, die durch eine Scheduling-Logik gesteuert werden, um die FPGA-basierte Inferenz von Netzwerken durchzuführen (mit der Deep Learning Toolbox). 

Erkennung eines weißen Lastwagens mit einem Begrenzungsrahmen.

Netzwerke kompilieren und bereitstellen

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 Vorhersagen durch, während Sie die tatsächlichen Performance-Metriken auf dem Gerät erfassen. 

Fotos von drei verschiedenen Leiterplatten mit elektronischen Bauteilen, Anschlüssen und Chips.

Erste Schritte: vorgefertigte FPGA-Bitstreams

Erstellen Sie mithilfe verfügbarer vorgefertigter Bitstreams schnell Prototypen von Long Short-Term Memory (LSTM)-Netzwerken. Passen Sie Bitstream-Konfigurationen an, um die Anforderungen an die Ressourcenauslastung zu erfüllen.

Beispiele (AMD | Altera)

Codeausschnitt mit einem Xilinx-Bitstream, der mit einem FPGA-Entwicklungsboard verbunden dargestellt wird.

Netzwerke auf FPGAs bereitstellen

Verwenden Sie die Deep Learning Toolbox, um RNN- und CNN-Netzwerke zu entwickeln oder ein Netzwerk zu importieren. Verwenden Sie anschließend die Funktion deploy, um AMD-FPGAs (mit SoC Blockset) oder Altera-FPGAs zu programmieren. 

MATLAB while-Schleife mit Aufruf der Funktion predict.

FPGA-basierte Inferenz in MATLAB-Anwendungen ausführen

Führen Sie eine vollständige Anwendung in MATLAB aus, einschließlich Ihrer Testumgebung, der Algorithmen zur Vor- und Nachverarbeitung sowie der FPGA-basierten Deep-Learning-Inferenz. Eine einzige Funktion, predict, führt die Inferenz auf dem FPGA aus und gibt die Ergebnisse zurück an den MATLAB Workspace. 

FPGA-Inferenz profilieren und Netzwerkentwürfe optimieren

Optimieren Sie Ihre Netzwerkkonfiguration anhand von Profiling-Metriken, indem Sie bei der Ausführung von Vorhersagen auf dem FPGA die Latenzzeit auf Schichtebene messen, um Performance-Engpässe zu identifizieren.

Netzwerke für die Bereitstellung auf FPGAs komprimieren

Reduzieren Sie die Ressourcenlast durch Komprimierung Ihres Deep-Learning-Netzwerks mithilfe von Quantisierung und Straffung. Analysieren Sie die Kompromisse zwischen Genauigkeit und Ressourcenauslastung mithilfe des Support Packages Deep Learning Toolbox Model Compression Library.

Konfiguration des Deep-Learning-Prozessors anpassen

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.

Synthetisierbaren RTL-Code und IP-Cores generieren

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