Kurzübersicht:
BittWare entwickelt seit über 20 Jahren FPGA-basierte Beschleunigerlösungen mit Intel FPGAs. Im Rahmen seiner jüngsten Migration auf die neuesten Intel Agilex® 7 FPGAs möchte BittWare bei seinen FPGA-Lösungen Unterstützung für oneAPI bieten. Zu diesem Zweck entschied sich BittWare für den Open FPGA Stack (OFS) und dessen Open-Source oneAPI Accelerator Support Package (ASP), um die Kompilierung von High-Level-Design-Kernels (HLD) für Anwendungen auf ihren Plattformen mit Intel Agilex FPGA zu ermöglichen.
Hintergrund und Herausforderungen
Intel führte die Produktreihe Intel Agilex 7 im Jahr 2019 ein. Seitdem wurde die Intel Agilex Produktreihe um mehrere FPGAs mit geringem bis hohem Leistungsbedarf und unterschiedlichen Logikdichten für verschiedenste Anwendungen erweitert. Die Intel Agilex 7 FPGA-Reihe ist die ursprüngliche, hochleistungsfähige Intel Agilex FPGA-Produktreihe. Die FPGA-Reihe umfasst die leistungsstärksten FPGAs der Branche, die etwa die 2-fache Fabric-Verarbeitungsleistung pro Watt1 von FPGAs neuester Generation der Konkurrenz bieten. Die neuen Intel Agilex FPGAs sind leistungsstärker, verbrauchen weniger Energie und bieten I/O-Funktionalität wie PCIe* 4.0 und 5.0, was für eine Vielzahl von bandbreiten-, rechen- und speicherintensiven Anwendungen wichtig ist.
Diese Leistungsverbesserungen bringen den Kunden von BittWare einen höheren Nutzen, sei es mehr Verarbeitungsleistung pro Watt für Edge-Systeme oder höhere Rechendichte für das Rechenzentrum. Für HPC-Anwendungen (High-Performance-Computing) ermöglichen FPGAs maßgeschneiderte Anwendungen, mit denen Workloads und Halbleitertechnik besser aufeinander abgestimmt werden können als mit Universalbeschleunigern. Intel und BittWare kooperierten bei der Portierung eines HPC-Workloads vom Barcelona Supercomputing Center auf die IA-840f-Karte mittels oneAPI, was eine Beschleunigung auf das 233-Fache erbrachte. Dieses Projekt wird im On-demand-Webinar von BittWare mit dem Titel Hochleistungsberechnungen mit Intel Agilex FPGAs der nächsten Generation thematisiert.
BittWare bietet außerdem Ressourcen für hochwertige Programmiertools, wie etwa Whitepaper mit herunterladbarem Beispielcode. Diese Ressourcen zeigen, wie hochwertige Tools den Entwicklungsprozess beschleunigen und gleichzeitig die hohe Leistung von Intel Agilex 7 FPGAs nutzen.
Tools wie oneAPI stellen eine parallele Programmiersprache bereit, die eine Abstraktion der FPGA-Entwicklung ermöglicht, um die Entwicklungs- und Debug-Zeit zu reduzieren. Vergleichbar mit NVIDIAs CUDA* oder AMDs ROCm*, bietet oneAPI eine parallele Programmiersprache, Data Parallel C++ (DPC++), die das SYCL-Programmiermodell implementiert. Intels oneAPI-Distribution ist jedoch auch eine Lösung für eine einheitliche Programmierumgebung, ein Toolset und Bibliotheken nicht nur für GPUs, sondern auch für CPUs, FPGAs und VPUs wie Gaudi/Gaudi2-KI-Prozessoren.
Mit oneAPI können Entwickler, die mit der FPGA-Programmierung weniger vertraut sind, von der flexiblen und neu programmierbaren Architektur profitieren, die FPGAs eigen ist, und gleichzeitig vertraute Design-Sprachen wie C/C++ und Entwicklungsumgebungen wie Visual Studio oder Eclipse verwenden. High-Level-Design-Abläufe mittels oneAPI erhöhen auch die Portabilität von Workloads für verschiedene Architekturen (CPUs, GPUs, FPGAs) und Board-Anbieter.
BittWare gehört zur Molex-Unternehmensgruppe und ist seit langem ein Partner von Intel, der FPGA-Hardware-Beschleunigungsprodukte der Enterprise-Klasse entwickelt und herstellt, damit Kunden ihre Lösungen schneller und mit geringerem Risiko bereitstellen können. Als Marktführer für FPGA-Beschleuniger seit 20 Jahren hat BittWare von den frühesten Intel Stratix® und Intel Arria® FPGAs inzwischen auf die neueste Intel Agilex Produktreihe umgestellt. Bei der Einführung seiner neuesten Version der „IA“-Karten mit Intel Agilex FPGA wollte das Unternehmen die OFS-Infrastruktur nutzen, um oneAPI-Entwicklungsabläufe auf seiner Plattform zu ermöglichen.
Lösung
Um sicherzustellen, dass seine Beschleuniger den oneAPI-Entwicklungsablauf ermöglichen, nutzte BittWare die neueste Open-Source-FPGA-Entwicklungsressource und -infrastruktur: OFS. OFS ist die erste komplette Hardware- und Software-Infrastruktur, die vollständig quelloffen ist und kombinierbaren Hardware-Code sowie Upstream-Kernel-Code auf kernel.org umfasst, um eine kooperative Community von FPGA-Entwicklern zu ermöglichen.
Die OFS-Infrastruktur besteht aus einem FPGA Interface Manager (FIM), gemeinhin als „Shell“ bezeichnet, und einer AFU-Region (Accelerator Functional Unit), die für die Workload-Entwicklung vorgesehen ist. Mit OFS können Board-Entwickler die Open-Source-Infrastruktur nutzen, um schnell einen kundenspezifischen FIM für ihr Board zu entwickeln, der auf die Zielanwendung oder die Zielbranche zugeschnitten ist. Darüber hinaus umfasst OFS ein Open-Source-Software-Framework, mit dem Entwickler Upstream-/Open-Source-Kernel-Treiber nutzen können, um die Integration in gängige Frameworks zu beschleunigen. Die OFS-Infrastruktur trägt der Nachfrage nach FPGA-Beschleunigungskarten und -Workloads Rechnung, indem sie eine leistungsstarke Methode für die schnelle Entwicklung von FPGA-Beschleunigungssystemen bereitstellt. Die bereitgestellte OFS-Hardware- und -Software-Infrastruktur kann ohne weiteres genutzt oder schnell angepasst werden, um neuen und dynamischen Marktanforderungen zu entsprechen.
Das von Intel bereitgestellte oneAPI-Basis-Toolkit beinhaltet einen Compiler und eine Runtime-Umgebung. Der Compiler konvertiert einen SYCL-Kernel oder den Code einer FPGA-Anwendung in eine Hardware-Schaltung. Diese Hardware-Schaltung erfordert zusätzliche Logik für die Kommunikation mit der Runtime und mit Peripheriekomponenten des FPGA-Boards. OFS bietet diese zusätzliche Logik im oneAPI-ASP. oneAPI-ASP ist in den Open-Source-OFS-GitHub-Repositories enthalten und wird für die Kompilierung und Ausführung von HLD-Anwendungskernels auf OFS-unterstützten Plattformen benötigt. Die entsprechende technische Dokumentation wird ebenfalls bereitgestellt und enthält eine Kurzanleitung für die Einrichtung des Intel oneAPI Base Toolkit auf einer OFS-Plattform.
Mit den bereitgestellten Open-Source-OFS-Repositories und der Dokumentation konnte BittWare den oneAPI-Design-Ablauf (nicht-RTL) mit wenigen zusätzlichen Änderungen auf seinen Intel Agilex Produkten implementieren.
Ergebnisse
BittWare war der erste Anbieter auf dem Markt mit Intel Agilex FPGAs der F-Reihe. Die folgende Tabelle stellt die beiden Boards dar, die mit der OFS-Infrastruktur und oneAPI-ASP entwickelt wurden.
|
|
Unseren Kunden Zugang zu leistungsstarker Halbleitertechnik mit einem einfachen Entwicklungsablauf zu ermöglichen, ist eine Erfolgsformel, insbesondere da diese neueste Generation der Intel Agilex FPGA-Produkte eine so deutliche Leistungsverbesserung bietet. Unsere Arbeit mit oneAPI hat sich für eine Reihe von Benutzern gelohnt, um Lösungen schneller auf den Markt zu bringen und gleichzeitig hohe Leistung zu erhalten.
Einstieg in die FPGA-Beschleunigung mit OFS
FPGA-Entwickler können zwischen den OFS-fähigen BittWare-Karten IA-420f und IA-840f wählen und die Open-Source-Dokumentation und den Quellcode nutzen, um mit der Entwicklung ihres individuellen Workloads zu beginnen.
Die folgende Aufstellung zeigt, wie ein Entwickler mit der FPGA-basierten Workload-Entwicklung für eine BittWare-Beschleunigungskarte beginnen kann.
Nutzen Sie FPGA-Beschleunigung für Ihre Workload |
|
---|---|
Schritt 1: Wählen Sie ein Board |
OFS-fähige Karten von BittWare, IA-420f und IA-840f. |
Schritt 2: Evaluieren Sie OFS-Open-Source-Ressourcen |
BittWare wird die entsprechende Version der technischen OFS-Dokumentation bereitstellen. |
Schritt 3: Greifen Sie auf Open-Source-Hardware- und Softwarecode zu |
BittWare wird den entsprechenden OFS-Software- und Hardwarecode bereitstellen. Dies ist die spezifische Distribution des OFS-Basiscodes von BittWare (bereitgestellt von Intel). |
Schritt 4: Entwickeln Sie Ihre Workload mit RTL oder C/C++ (unter Einsatz von oneAPI) |
Folgen Sie dem OFS-RTL-Ablauf ODER OFS ermöglicht eine Kompilierung von oneAPI-Kernels. Folgen Sie dem Ablauf der oneAPI-Entwicklung und entwickeln Sie FPGA-Workloads in C/C++. |