Die Deep Learning HDL Toolbox bietet Funktionen und Tools für das Prototyping und die Implementierung von Deep-Learning-Netzwerken auf FPGAs und SoCs. Sie stellt vorgefertigte Bitstreams zur Ausführung von Deep-Learning-Netzwerken auf unterstützten FPGAs und SoCs bereit (mit SoC Blockset für AMD-Geräte und HDL Coder für Altera-Geräte). Mithilfe von Profiling- und Schätztools können Sie Ihr Deep-Learning-Netzwerk anpassen, indem Sie Kompromisse zwischen Entwurf, Performance und Ressourcenauslastung untersuchen.
Mit der Toolbox können Sie die Hardwareimplementierung Ihres Deep-Learning-Netzwerks individuell anpassen. Darüber hinaus können Sie portablen, synthetisierbaren Verilog®-, SystemVerilog- und VHDL®-Code für die Bereitstellung auf beliebigen FPGA- oder SoC-Komponenten generieren (mit HDL Coder und Simulink).
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).
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.
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.
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.
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.
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.