BittWare Partner IP

Abfrageverarbeitungseinheit (QPU)

Erstellen Sie FPGA-betriebene Beschleuniger zur Abfrage, Analyse oder Neuformatierung gespeicherter oder gestreamter Daten mit PCIe Gen4-Geschwindigkeit!

IA-420f PCIe card

Die Query Processing Unit (QPU) von Eideticom richtet sich an Datenbankbenutzer oder an alle, die Datenströme (wie z. B. Netzwerkpakete) verarbeiten und Abfragen, Analysen oder Formatkonvertierungen in Hardware mit geringer Latenzzeit durchführen müssen. Die Aufgaben können parallelisiert werden, um jeden Bandbreitenbedarf zu erfüllen, und mit anderen NoLoad®-Funktionen wie Komprimierung kombiniert werden.

Aufbauend auf dem NoLoad® Framework

Als Teil des NoLoad Computational Storage Frameworks von Eideticom kann die QPU mit anderen Computational Storage IP von Eideticom wie Kompression, Dekompression, Erasure Coding und Deduplizierung verbunden werden.

Software-gesteuerter Entwurf

Da die Hardware-Ingenieure nicht mehr an der Festlegung der QPU-Parameter beteiligt sind, definieren die Benutzer die Funktionen mithilfe eines On-Chip-Prozessors. Dies ermöglicht sowohl eine einfache Handhabung des High-Level-Tools als auch eine Entlastung der Haupt-Host-CPU.

Die QPU umfasst Funktionen für die Formatkonvertierung (Text in/aus binär) oder standardisierte Datenbankfunktionen. Die Benutzer entwerfen ihren Funktionsmix in der Software - es sind keine hardwarebasierten Tools erforderlich. Die QPU wird die native Beschleunigung für eine Reihe von Datenbanktools unterstützen, wenn diese Pakete zur Unterstützung von standardbasierter Rechenspeicherung übergehen.

Abfrage

Datenabfragen mit softwaredefinierten Such- und Filterparametern durchführen.

Analysieren Sie

Filter, Pattern-Matching und Analysen für Streaming-Daten wie Netzwerk-Paket-Header oder Daten auf SSD-Speicher.

Neu formatieren

Effiziente Umformatierung von Text-/Binärdaten oder andere Formatkonvertierungen.

Demo-Video

Sean Gibb, VP Engineering von Eideticom, demonstriert die Query Processing Unit anhand einer 5 GB großen CSV-Datei

QPU Demo output thumbnail
 

Dies ist Sean Gibb, Vizepräsident für Technik bei Eideticom. In diesem Video demonstrieren wir die Verwendung der Query Processing Unit (QPU) von Eideticom zur Formatierung und Filterung von Börsentickerdaten, die in einem kommagetrennten Textformat gespeichert sind.

Die eingebetteten Prozessoren der QPU von Eideticom sind in C oder C++ softwareprogrammierbar, so dass Sie Ihre Filterfunktionen dynamisch programmieren können.

Zusätzlich zu den eingebetteten Prozessoren stehen Ihrer eingebetteten Software einfach zu bedienende Hardware-Coprozessoren mit hohem Durchsatz zur Verfügung, die gängige Aufgaben wie die Analyse von Paketerfassungen, die Konvertierung von Text- in Binärformate und einfache Filterung durchführen, um Ihre Abfragevorgänge zu beschleunigen.

In diesem Beispiel verwenden wir den Text-zu-Binär-Formatierer, um CSV-Daten in Binärdaten umzuwandeln, führen einen zur Laufzeit konfigurierbaren Hardware-Filter durch (um bestimmte Aktiensymbole und Geschäfte mit geringem Volumen herauszufiltern) und führen dann einen Software-Filter durch, um alle Geschäfte zu entfernen, bei denen der Tag niedriger schließt als er beginnt.

Wir kompilieren die Software mit einem GCC-Compiler, um eine ausführbare Datei zu erstellen, die wir über unseren Software-Stack in die eingebetteten Prozessoren laden können. Sobald die Software geladen ist, lassen wir 5 GB CSV-Daten durch die Query Engine laufen und filtern nach allen Microsoft-Aktien mit einem Volumen von mehr als 10 Millionen.

Sie sehen hier, dass eine einzelne Query Engine in der Lage ist, eine Texteingabe von 2 GB/s zu bewältigen. Wir können mehrere Query Engines als Kacheln anordnen und dank des Software-Stacks von Eideticom die PCIe-Schnittstelle zur FPGA-Karte mit der gleichen Host-Software sättigen.

Dies ist nur ein Beispiel dafür, was die software-programmierbare, hardware-beschleunigte QPU von Eideticom für Sie tun kann.

Softwaredefiniert + Skalierbar für Ihre Bandbreitenanforderungen

Die Query Processing Unit wird in Software definiert, die auf dem FPGA läuft (mit Soft- oder Hardprozessor), wodurch der Bedarf an Low-Level-Konfigurationsressourcen entfällt.

Die QPU ist modular aufgebaut, so dass eine oder mehrere Einheiten platziert werden können, um einen bestimmten Bandbreitenbedarf zu decken. QPU-Instanzen können zusammenarbeiten, z. B. bei einer verteilten Dateikonvertierung über acht QPUs, bei der Daten über zwei Einheiten hinweg koordiniert werden müssen.

Wie QPU innerhalb von NoLoad® funktioniert, eingesetzt auf dem IA-220-U2-Modul oder der IA-420F-Karte von BittWare

Query Engine-overall diagram

Basierend auf dem NoLoad® Computational Storage Framework von Eideticom

Die Query Processing Unit ist eine Komponente des NoLoad-Frameworks. Die orangefarbenen Komponenten, wie z. B. die Komprimierung, dienen dazu, dass der Benutzer seine eigene Anwendung mit einem softwaredefinierten Ansatz erstellt.

Komponenten wie Compression können der QPU hinzugefügt werden, um beispielsweise gefilterte Daten zu komprimieren, bevor sie auf SSD-Speicher übertragen werden.

Alle gezeigten Beschleunigerfunktionen sind in FPGA-Hardware implementiert, was eine hohe Bandbreite, niedrige Latenzzeiten und eine Entlastung der CPU ermöglicht.

Anwendungsfall

Erfassungs- und Analysemaschine für Fintech

Aufbau einer leistungsstarken, softwaredefinierten Packet Capture- und Analyse-Engine

In diesem realen Beispiel wird die Query Processing Unit als Paketverarbeitungsmaschine und die Compression Engine (ein weiterer NoLoad® IP-Kern) verwendet. Die Pakete werden komprimiert und mithilfe von Peer-to-Peer-Übertragungen auf ein SSD-Array geschrieben, während die QPU auch Header-Daten (Netzwerktupel) sowie einige Analysedaten wie die Anzahl der Pakete pro Zeitperiode abruft. Die Analysen werden als CSV-Daten an den Host gesendet.

Leistungsvorteil

Im Vergleich zu einer Intel Xeon-CPU mit mehreren Threads erbringt die Query Processing Unit der Datenbank die unten dargestellte Leistung.

Avg. PaketgrößeCPU1× Query Engine (QE)2× QE4× QE
256B0,2 GB/s1,8 GB/s3,6 GB/s7,2 GB/s
1024B0,7 GB/s2,0 GB/s4,0 GB/s8,0 GB/s
4096B1,9 GB/s2,0 GB/s4,0 GB/s8,0 GB/s
9216B2,7 GB/s2,0 GB/s4,0 GB/s8,0 GB/s
Query Engine packet capture use case illustration
Pakete vom Host werden über PCIe zum BittWare IA-220-U2 oder IA-420F zur FPGA-Verarbeitung unter Verwendung des NoLoad®-Frameworks und IP übertragen.

Anwendungsfall

Beschleunigung von Datenbankabfragen

Beschleunigung von Datenbankabfragen und mehr

In einer Datenbankbeschleunigungskonfiguration kann die Query Processing Unit eine Reihe von Funktionen ausführen, von der CPU-Entlastung bis hin zur Datentypkonvertierung.

Query Engine-database use case illustration
Der NoLoad™ Software Stack bringt DB-Daten zum/vom Beschleuniger und Speicher

Kompatible FPGA-Karten

Die Query Processing Unit zielt auf die Karten von BittWare mit Intel Agilex FPGAs.

Interessieren Sie sich für Preise oder weitere Informationen?

Unser technisches Vertriebsteam steht bereit, um Ihnen Informationen zur Verfügbarkeit und Konfiguration zu geben oder Ihre technischen Fragen zu beantworten.