Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Eingebettet

CPU-FPGA-Co-Design beschleunigen: Praktischer Flow für Software-Entwickler

Kürzlich leitete Brian Bailey einen Roundtable, der im zweiteiligen Artikel Supporting CPUs + FPGAs mündete. Experten diskutierten die sich wandelnde Realität von Systemen, die FPGAs mit CPUs verschmelzen, und beleuchteten, wie neue Design-Flows Software-Entwicklern ermöglichen, CPU-plus-FPGA-Plattformen schneller in den Markt zu bringen.

Einführung

Der Anstieg künstlicher Intelligenz, die Explosion vernetzter Geräte und die Beschleunigung von Rechenzentrums-Workloads zeigen einen gemeinsamen Treiber: Software-Entwickler suchen Geschwindigkeit. Low-Latency-Links zwischen FPGAs und CPUs, gekoppelt mit den moderaten Leistungsbudgets moderner FPGAs, machen hybride CPU-FPGA-Systeme zur natürlichen Wahl für anspruchsvolle Performance. Doch die inhärente Komplexität der FPGA-Technologie bremst Entwickler oft aus.

High-Level Synthesis (HLS) Tools haben sich stark weiterentwickelt und erleichtern das Mapping von C/C++ in Hardware. Dennoch sind sie primär IP-zentriert und greifen zu kurz bei System-Level-Entscheidungen – Abwägung Software vs. Hardware, Wahl zwischen gepipelter oder paralleler Ausführung, Tuning der Datengranularität oder Auswahl optimaler Kommunikationsmechanismen.

Was Software-Ingenieure brauchen, ist ein vereinheitlichter Design-Flow, der sich wie eine Standard-Software-IDE anfühlt, aber hardware-bewusstes Feedback liefert. Jüngste kommerzielle Lösungen beginnen, diese Lücke zu schließen, indem sie Low-Level-Details abstrahieren, während sie die Kontrolle bewahren, die Entwickler fordern. Diese Tools basieren auf der System-Level-Design-Philosophie, die in ESL Models and Their Application dargelegt wird.

System-Level-Design-Flow verstehen

System-Level-Design operiert auf höherer Abstraktionsebene, validiert, verfeinert und integriert Systemkomponenten vor der Implementation. Die meisten Designer starten auf algorithmischer Ebene und schreiben C/C++/SystemC-, MATLAB-, Simulink- oder LabVIEW-Modelle, die das vollständige Systemverhalten erfassen.

Wir fokussieren einen C/C++-zentrierten Flow (siehe Abbildung 1). Die erste Stufe – Application Profiling – identifiziert Funktionen oder Loops, die von Hardware-Beschleunigung profitieren könnten. Als Nächstes wird die Ziel-CPU/FPGA-Plattform spezifiziert (z. B. ARM Cortex-A53 + FPGA) und deren Parameter (Takt, Cache, Interconnects) konfiguriert. Schließlich werden die profilierten Tasks zwischen Software und Hardware gemappt, was in einer ausführbaren Architektur mündet.

CPU-FPGA-Co-Design beschleunigen: Praktischer Flow für Software-Entwickler
Abbildung 1. Typischer System-Level-Design-Flow für CPU/FPGA (Quelle: Space Codesign Systems, Inc.)

Der zweite Block von Abbildung 1 deckt Architektur-Optimierung ab – manchmal architektonische Exploration oder Performance-Verifikation genannt – detaillierter in Abbildung 2 gezeigt.

CPU-FPGA-Co-Design beschleunigen: Praktischer Flow für Software-Entwickler
Abbildung 2. Architektur-Optimierungsprozess (Quelle: Space Codesign Systems, Inc.)

Drei Schlüssel-Estimatoren speisen diese Stufe:

Aggregierte Ergebnisse bevölkern eine Datenbank, die Entwicklern ermöglicht zu verifizieren, ob System-Level-Ziele erreicht werden. Architekturen, die die Kriterien erfüllen, gehen weiter; andernfalls werden weitere Optimierungs-Iterationen ausgelöst.

Der finale Block von Abbildung 1 betrifft Architektur-Implementation: High-Level-Designs werden mittels Vendor-Tools wie Xilinx Vivado oder Intel Quartus Prime in FPGA-Bitstreams übersetzt, was ein vollständig synthetisiertes und testbares System für Deployment produziert.

System-Level-Optimierung

Das Fehlen automatisierter End-to-End-Optimierungstools war lange ein Flaschenhals im FPGA-basierten Computing. Die Komplexität, mehrere Design-Dimensionen auszubalancieren, macht manuelle Exploration mühsam, selbst für erfahrene Designer.

Abbildung 3 illustriert einen typischen Optimierungs-Workflow für eine Bildverarbeitungs-Anwendung mit sechs C/C++-Funktionen auf einer Zynq-7000-Plattform. Acht Kandidaten-Architekturen werden betrachtet, aber Time-to-Market-Zwänge verlangen schnelle Auswahl des besten Kompromisses zwischen Performance, Area und Power.

CPU-FPGA-Co-Design beschleunigen: Praktischer Flow für Software-Entwickler
Abbildung 3. Architektur-Exploration mit System-Level-Entscheidungen hervorgehoben (Quelle: Space Codesign Systems, Inc.)

Kommerzielle Lösungen wie Xilinx SDSoC/SDAccel, Falcon Computings Merlin Compiler und Space Codesigns SpaceStudio bieten nun End-to-End-Support. Sie spiegeln den Flow aus Abbildungen 1 und 2 wider, während sie automatisierte Entscheidungslogik injizieren:

Blick auf das kommerzielle Ökosystem

Abbildung 4 präsentiert einen geschichteten Blick auf das Ökosystem rund um CPU/FPGA-Plattform-Design. Die obere Schicht zeigt algorithmische Einstiegspunkte; die mittlere Schicht hostet Tools, die System-Level-Optimierungen ab C/C++ unterstützen; die untere Schicht enthält Vendor-Synthese-Tools, die Bitstreams produzieren. Repräsentative CPU/FPGA-Plattformen sind an der Basis illustriert.

CPU-FPGA-Co-Design beschleunigen: Praktischer Flow für Software-Entwickler
Abbildung 4. Kommerzielles Ökosystem für CPU/FPGA-Plattformen (Quelle: Space Codesign Systems, Inc.)

Tabelle 1 listet Schlüssel-Commercial-Automation-Tools für CPU/FPGA-Plattform-Design.

CPU-FPGA-Co-Design beschleunigen: Praktischer Flow für Software-Entwickler
Tabelle 1. Kommerzielle Automatisierungstools (*Hinweis: Eine Liste wird in diesem Review vorgeschlagen)

Fazit

Demokratisierung der CPU-plus-FPGA-Entwicklung ist das ultimative Ziel, um einer breiteren Schicht von Software-Entwicklern Hardware-Beschleunigung zu ermöglichen. Wie die Software-Industrie sich über fünf Jahrzehnte von Assembler zu Python und Swift entwickelte, durchläuft FPGA-Programmierung eine ähnliche Reifung. Der Aufstieg von System-Level-Tools wie SpaceStudio, SDSoC und Merlin Compiler signalisiert einen entscheidenden Wandel – doch volle Automatisierung und nahtlose Optimierung über Compiler hinweg bleiben zukünftige Meilensteine.

Guy Bois, Ing., PhD ist Gründer von Space Codesign Systems und Professor am Department of Software and Computer Engineering an der Polytechnique Montréal. Mit umfangreicher F&E-Erfahrung neben Industriegrößen – STMicroelectronics, Grass Valley, PMC Sierra, Design Workshops Technologies, Cadabra Systems – führte Guys Expertise in Hardware/Software-Co-Design zur Kommerzialisierung von SpaceStudio und der Gründung von Space Codesign Systems Inc.

Eingebettet

  1. AMendate-CEO Thomas Reiher: Wie automatisierte Topologieoptimierung den 3D-Druck revolutioniert
  2. Altairs Ravi Kunju zu simulationsgetriebenem Design & neuem Inspire Print3D für 3D-Druck
  3. 5 Fragen an Stefan Ferber, CEO von Bosch.IO
  4. VE-VIDES Initiative enthüllt Trustworthy Design & Verification Framework für IoT Security
  5. Cadence startet ML-gestütztes Cerebrus-Tool: 10× Design-Produktivität, 20% PPA-Verbesserung
  6. Cadence und UMC zertifizieren 28HPC+ AMS Design Flow für beschleunigte Automotive, IoT & AI Chip-Entwicklung
  7. Low-Cost-Roboterplattformen mit neuer 7. Achse und kostenloser Digital-Twin-Programmiersoftware aufwerten
  8. Infineon & Elektrobit liefern Next-Gen Security für Connected Cars
  9. Omron stellt Flow Core vor: Fortschrittliche Software für mehr Zuverlässigkeit & Flexibilität mobiler Roboter
  10. Die neue Fertigungslandschaft meistern: Strategien für Erfolg