Marcus Weddle, BittWare
Willkommen zu unserem Video, das sich mit FPGAs zur Beschleunigung der Speicherung befasst. Im Mittelpunkt steht dabei ein Framework von IntelliProp, die NVMe-Bridge-Plattform.
Heute ist Hiren Patel, der CEO von IntelliProp, bei mir. Danke, dass Sie bei mir sind!
IntelliProp CEO Hiren Patel
Danke, Marcus - ich bin froh, hier zu sein.
Marcus
Beginnen wir mit den einfachen Bausteinen. Wir haben also einen SSD-Speicher - also einen sehr schnellen Speicher -, aber anstatt diesen beispielsweise an einen Host-PCIe-Bus anzuschließen, werden wir einen FPGA in der Mitte des Busses platzieren. Die erste Frage lautet also: Warum sollte man das tun?
Hiren
Dafür gibt es wahrscheinlich mehrere Gründe, aber ein FPGA vor einer SSD ermöglicht den Aufbau von Datenerfassungssystemen, die Daten direkt auf der SSD speichern und später über PCIe von einem Host zurücklesen können.
Aber auch hier kann man die Datenerfassung vorladen. Mit der Bridge kann man auch diesen neuen Markt angreifen, der heutzutage erforscht wird - er wächst -, nämlich die rechnergestützte Speicherung.
Wir haben die Möglichkeit, bestimmte Beschleunigungsfunktionen direkt in das FPGA zu verlagern, so dass dieses FPGA dann die Daten von der SSD abrufen, verarbeiten, zurückschieben oder an einen Host zurückschieben kann. Das sind also wahrscheinlich die beiden wichtigsten Gründe im Moment.
Marcus
Was ist das Besondere an der Verwendung eines FPGAs für die Datenerfassung? Denn... es gibt auch andere Methoden der Datenerfassung... was ist also das Besondere an der Verwendung eines FPGAs und der Verwendung dieses Brücken-Frameworks?
Hiren
Ja, wieder eine gute Frage. In einem FPGA - betrachten Sie ein FPGA wie eine leere Leinwand, richtig? Mit einem FPGA haben wir also eine Menge Verbindungen. Wir haben eine Menge Verbindungspunkte, an denen man andere Arten der Datenerfassung, Temperatursensoren usw. anschließen kann, und man kann diese Daten auf die SSD übertragen. Das ist eines der Hauptkriterien.
Das andere Kriterium ist, dass im FPGA eine leistungsstarke Verarbeitung integriert ist, Sie haben ARM-Kerne, und heutzutage können Sie mehrere Prozessoren einsetzen. Sie können alle möglichen Verarbeitungen an den Daten vornehmen, bevor sie auf der SSD landen.
Eine Brücke im Besonderen - warum die Brücke verwenden? Die Brücke ermöglicht in erster Linie den Durchgang von Daten, also den Durchgang von Schreib- und Lesezugriffen. Aber sie kann auch bestimmte Befehle abfangen. So kann der Host einen Befehl direkt an das FPGA geben und das FPGA kann dann entweder weitere Daten von der SSD abrufen, Suchvorgänge durchführen oder irgendeine Art von Beschleunigungsfunktion ausführen und diese Daten dann zurückschicken. Es gibt also eine Menge Verwendungsmöglichkeiten für das FPGA.
Die andere Sache, die ich sagen möchte, ist, dass man mit einem FPGA, weil es so anpassbar ist, tatsächlich ein einzelnes FPGA nehmen und es in mehrere Produkte einbauen kann. Man kann ein FPGA vor eine SSD als leeres Produkt setzen und dann verschiedene Algorithmen oder eine andere Beschleunigung einsetzen.
Ein Algorithmus könnte die Komprimierung sein, der andere könnte die Dekomprimierung oder die Verschlüsselung sein. Sie könnten auch Dinge wie Suchen durchführen. Dies sind alles Beschleunigungsfunktionen, die auf den jeweiligen Bedarf ausgerichtet sind und nicht nur eine Größe für alle haben.
Marcus
Hiren, Sie haben dieses Konzept jetzt mit der Bridge-Komponente des Frameworks eingeführt, bei dem die Host-CPU in der Lage ist, die SSDs zu sehen - auch wenn sie direkt mit FPGAs verbunden sind - und nicht den Host-PCIe-Bus. Das hat zwar Vorteile, aber müssen die Nutzer dafür spezielle APIs verwenden oder ihre Software ändern, damit das alles funktioniert?
Hiren
Nein, nicht direkt nach dem Auspacken. Mit der Bridge-Plattform im Gehäuse können Sie uns einfach zwischen einen Host-PC und eine SSD einstecken. Nein, es muss nichts geändert werden. Der Host wird die SSD aufzählen, als ob sie direkt angeschlossen wäre.
Wenn Sie sich mit den Beschleunigungsfunktionen oder der Datenerfassung befassen, benötigen Sie möglicherweise zusätzliche Treiber oder Sie können alles über herstellerspezifische Funktionen erledigen. Es gibt CLIs, mit denen Sie herstellerspezifische Befehle direkt an die Bridge senden können - die Bridge kann diese abfangen und die Daten dann nach Bedarf verarbeiten.
Marcus
Lassen Sie uns nun über die spezifische BittWare-Hardware und die Leistung sprechen. Ich denke, es ist wichtig zu erwähnen, dass es nicht viele FPGA-Karten auf dem Markt gibt, die SSDs direkt an das FPGA anschließen können, so wie wir es mit der BittWare IA-840F können, die Sie hier sehen können. Außerdem haben wir mit dem Agilex FPGA auf dieser Karte den Vorteil des neuesten Siliziums von Intel. Was sind also einige der Vorteile und Messgrößen, die diese Dinge mit sich bringen können?
Hiren
Ja, natürlich. Offensichtlich drängen diese neueren FPGAs zu den immer schnelleren Gen-Raten bei PCIe. Heute glaube ich, dass diese Agilex-Boards Gen 4 erreichen könnten, und Gen 5 steht kurz bevor. Und ich denke, dass diese Boards an sich schon eine enorme Leistung darstellen.
Und dann, wieder mit der Brücke, erhalten Sie die Gen 4 x16, die zum PC geht, und dann auf der Rückseite - Sie haben die Möglichkeit, mehrere SSDs zu aggregieren. Allein die Verwendung von vier SSDs mit Gen4 x4 kann helfen, einen Teil davon zu sättigen.
Wir können auch acht Laufwerke mit Gen 3 x4 Lanes einbauen, um die Sättigung zu erhöhen.
Wir können also vier Laufwerke dort hinten haben, acht Laufwerke dort hinten - wir können eine Menge davon haben. Aber im Grunde genommen läuft der gesamte Datenverkehr über dieses FPGA, so dass wir darauf entweder Berechnungen speichern oder Daten erfassen können.
Marcus
Was sind einige dieser Bandbreitenzahlen? Nehmen wir an, Sie haben vier Laufwerke an das FPGA angeschlossen oder das FPGA ist sogar mit einem PCIe-Switch mit acht Laufwerken verbunden - welche Leistungswerte können Sie dann auf Gen4-PCIe-Ebene erwarten?
Hiren
Bei Gen 4 würde ich vermuten, dass wir - nur bei einem einzigen Laufwerk - wahrscheinlich näher an die 6.000 Megabyte pro Sekunde herankommen. Bei der Gen 3-Rate können wir bereits zeigen, dass unsere Bridge mit über 3.000 bis fast 3.500 Megabyte pro Sekunde läuft. Bei Gen 4 erwarte ich eine Verdopplung dieser Leistung.
Marcus
Eine weitere Frage, die sich bei der Implementierung von FPGAs häufig stellt, ist die, wie viel eigene IP sie zusammen mit der Bridge-IP in das FPGA einbauen können. Mit anderen Worten, wie viel Platz lässt man für andere? Könnten Sie also kurz etwas dazu sagen?
Hiren
Ja, klingt gut. Auf dieser speziellen Platine gibt es, glaube ich, ein AGF027-Teil. Dieses Teil hat, würde ich sagen, wahrscheinlich etwa 900.000 ALEs/ALMs. Wir verwenden etwa 100.000 für unsere Brücke. Das ist für eine einzelne Laufwerksverbindung. Wenn Sie mehrere Laufwerksanschlüsse haben, müssten Sie etwa 4.000 ALMs hinzufügen, um das zu erweitern.
Also ja, gar nicht so schlecht. Trotzdem sind es nur etwa 10 %. Die Kunden haben also immer noch eine gute Menge an Logik zur Verfügung, um ihre Beschleunigungsfunktion hinzuzufügen.
Marcus
Hiren, Sie haben erwähnt, dass Sie ein Laufwerk oder mehrere Laufwerke direkt an die Karte anschließen können. Wenn Sie nun mehr Laufwerke anschließen möchten und die Karte physisch z. B. acht Laufwerke anschließen kann - wie genau wird das gemacht?
Hiren
Ich denke, dass man sogar mit einer einzigen Karte mehrere Laufwerke anschließen kann und dann kann man diese auch in eine Backplane erweitern, die vielleicht einen PCIe-Switch hat, mit dem man dann zusätzliche Laufwerke erreichen kann. So könnten acht Laufwerke an einen PCIe-Switch angeschlossen werden, der dann mit der BittWare-Karte verbunden wird. Ich denke, das ist eine mögliche Lösung oder Topologie, die hier möglich ist.
Marcus
Kommen wir noch einmal auf die zweite Gruppe von Anwendungsfällen zurück, über die wir gesprochen hatten - hier dient der FPGA als Inline-Beschleuniger. Dies ist Teil des größeren Bildes der rechnerischen Speicherbeschleunigung und wird für die CPU-Entlastung immer beliebter. Können Sie mir einige dieser Anwendungsfälle für den Inline-Beschleuniger für die rechnergestützte Speicherung erläutern?
Hiren
Ja, natürlich. Wir haben viele Kunden, die heute eine Data-at-Rest-Verschlüsselung durchführen. Unser FPGA sitzt also vor einer SSD oder mehreren SSDs und die Kunden nutzen die Sandbox-Bereiche, wie wir sie nennen, oder die Kundenbeschleunigungsbereiche als Data-at-Rest-Verschlüsselung. Aber Kunden können auch Suchmaschinen, Such-Offloads, Komprimierungen durchführen. eBPF ist ein weiterer wachsender Bereich.
Das sind also einige der Dinge, die Kunden tun können. Nehmen wir als Beispiel die Komprimierung oder Dekomprimierung: Mit unseren Bridges können Sie den Server oder den Host dazu bringen, komprimierte Daten unverändert über die Bridge auf die SSD zu senden.
Aber wenn die Daten abgerufen werden, könnte man eine Dekomprimierungs-Hardware-Engine in den FPGA einbauen. Diese Dekompressions-Engine kann dann die Daten dekomprimieren, bevor sie an den Server-Host zurückgeschickt werden, und ich denke, das ist ein Anwendungsfall, den wir auch sehen.
Andere Anwendungsfälle sind, wie ich schon sagte, eBPF und dann und ich weiß, dass Intelliprop an einigen Referenzdesigns dafür arbeitet und wenn es also einen weiteren Anwendungsfall gibt, den wir auch wachsen sehen: eBPF virtuelle Maschinen.
Marcus
Der eine Anwendungsfall, den Sie vorhin angesprochen haben, über den ich aber mehr erfahren wollte, ist, dass der Host einen Suchbefehl ausgibt, die Suche selbst aber auf den FPGA und die direkt angeschlossenen SSDs verlagert. Wie funktioniert das also, wie verlagert man die Suche, denn das ist etwas komplizierter als die Verlagerung der Kompression?
Hiren
Ja, das ist eine gute Frage. Eines der Dinge, die wir auf der SuperCompute '21 im November in Saint Louis gezeigt haben, ist unsere Inline-Bridge, die Suchmaschinen auslagert. Wir haben also die CPU dazu gebracht, die SSD mit einer Reihe von Daten vorzuladen. Der Server sendete einen herstellerspezifischen Befehl in die Mitte der Bridge, wo unser RTL-Code den herstellerspezifischen Befehl sah und einen Bereich von LBAs oder Adressraum erhielt, um eine bestimmte Mustersuche durchzuführen - und wir erhielten auch das Muster vom Server. Sobald wir das Muster und den zu durchsuchenden LBA-Bereich erhalten hatten, gingen wir los, lasen den gesamten Laufwerksbereich, den wir lesen sollten, suchten nach diesem bestimmten 32-Bit-Muster, fanden alle Instanzen davon - auf welchen LBAs sie auftraten -, verpackten das und schickten eine Fertigstellung zurück an den Server-Host.
Normalerweise hätte der Server ohne unseren Beschleuniger all diese Daten in seinen Systemspeicher gelesen, die Suche durchgeführt und dann die Daten weggeworfen. Ohne all diese Datenbewegungen musste er uns nur einen Befehl erteilen, und wir schickten einfach eine Antwort zurück, die besagte: "Hier sind alle Orte, an denen wir sie gefunden haben." Der FPGA war wirklich in der Lage, das zu tun, und zwar viel, viel schneller, und wir hatten auch eine Grafik, die das zeigte.
Ja, jetzt sehen wir uns also einen Teil dieser Demo an. Die obere Zeile zeigt, dass die CPU-Last bei etwa 90 % liegt, während die direkte Suche durchgeführt wird, aber dazwischen ist die FPGA-Offload-Version natürlich um ein Vielfaches schneller und entlastet die CPU... und welchen FPGA verwenden wir hier?
Also, ja, die Demo im Video wird auf einem Intel Stratix 10 DX durchgeführt.
Wie kann man erkennen, wann man diese spezielle Rahmen-IP mit der Bridge verwenden muss? Wie kann man erkennen, wann man genau diese Bridge-Komponente braucht?
Ja, das ist eine gute Frage. Nochmals, es ist eine Pass-Through-Bridge. Wir haben die gesamte NVMe-Komplexität eliminiert, indem wir eine AXI-Stream-Schnittstelle geschaffen haben, in die Kunden ihre Logik einbauen können. Die Kunden sind also gut darin, die Beschleunigungsfunktion auszuführen - darin sind sie Experten - sie sind vielleicht keine Experten für NVMe, und genau hier kommt das Framework zum Tragen. Wir stellen die Daten und die Befehle und all das als Steuer- und Dateninformationen über AXI-Stream direkt in der Mitte bereit und lassen die Kunden dann entscheiden, was sie mit dieser Logik tun wollen.
Und auf der anderen Seite haben wir ebenfalls eine Steuer- und Datenebene - wieder ein AXI-Stream -, die die Daten weiter auf die SSD überträgt.
Es funktioniert in beide Richtungen, so dass wir bei der Benutzerfreundlichkeit wirklich glänzen. Die Kunden, deren Fachwissen sich auf die Beschleunigungsfunktion bezieht, können diese dann in die Sandbox einbringen und loslegen.
Die Markteinführungszeit ist viel kürzer. Und mit der Hilfe von BittWare im BittWare-Board können wir diese Zeit sogar noch weiter verkürzen. Denn jetzt haben sie ein Silizium, in das sie die Sandbox-Bridge einbauen können - die NVMe-Bridge-Plattform - und dann haben sie eine Plattform, auf der sie ihre Beschleunigungsfunktion weiter ausbauen können.
Marcus
Okay, darauf aufbauend - und das ist meine letzte Frage - für die Zuschauer da draußen, die darüber nachdenken, diese NVMe-Bridge-IP selbst zu entwickeln, anstatt IntelliProp zu verwenden ... wie lange hat IntelliProp eigentlich gebraucht, um dies zu entwickeln, und wie einfach ist es jetzt, da Sie es haben, Anwendungen damit zu entwickeln?
Hiren
Ja, das klingt gut. Dies ist also wieder ein Rahmen, den wir irgendwie, ich würde sagen, wir haben die Tatsache, dass man mit NVMe interagieren muss, irgendwie extrapoliert oder versteckt. Man muss nichts über NVMe wissen. Man muss nur wissen, welche Adressen und Steuerinformationen man bekommt.
Die Brücke selbst hat uns, IntelliProp, wahrscheinlich anderthalb Jahre gekostet, um sie zu entwickeln und die gewünschte Leistung zu erreichen. Letztendlich sparen wir Zeit für unsere Kunden.
Ein Beispiel dafür ist die SuperCompute '21-Demo, die wir in etwa einem Monat durchgeführt haben. Ohne die Bridge hätten wir viel länger gebraucht. Allein mit der Bridge, mit dem Wissen um die Kontrollinformationen - die Dateninformationen, die wir bekamen - brauchten wir einen Monat, um die Beschleunigungssuchfunktion und die Fähigkeit, Daten zurückzusenden, zu realisieren.
Wie gesagt, es ist ein Gerüst, es ist alles vorgefertigt, es ist durchgespült. Sie müssen sich nur auf Ihre Beschleunigung konzentrieren.
Marcus
In Ordnung, ausgezeichnet. Danke, dass Sie heute mit mir über all das gesprochen haben, Hiren - ich weiß das zu schätzen.
Hiren
Ich danke Ihnen.
Marcus
Das ist also die NVMe-Brückenplattform, ein Framework von IntelliProp, das auf BittWare FPGA-Karten verfügbar ist. Speziell schauen wir uns heute die IA-840F mit direkt angeschlossenen SSDs an. Um mehr zu erfahren, besuchen Sie die BittWare-Website und vielen Dank fürs Zuschauen.