HyperAI

Werkzeugempfehlung: Hochleistungsräder, Die Speziell Für GPUs Gebaut Wurden

vor 6 Jahren
Schlagzeilen
Empfohlene Liste
Dao Wei
特色图像

Von Super Neuro

GPUs und Datenbanken haben ihre eigenen Stärken. GPUs eignen sich gut für die Verarbeitung von Aufgaben wie maschinelles Lernen, während Datenbanken gut für Berechnungen mit spezifischen Anforderungen geeignet sind, beispielsweise für komplexe Verbindungsberechnungen.

Derzeit gibt es einige Datenbanklösungsprodukte, die GPU-Beschleunigung bieten, darunter die bekannten Produkte MapD und Kinetica. Heute stellen wir ein junges Open-Source-Produkt vor: BlazingSQL.

BlazingSQL ist ein GPU-beschleunigtes Datenbankabfragetool, das auf RAPIDS basiert. BlazingSQL erweitert RAPIDS und ermöglicht Benutzern, SQL-Abfragen direkt auf Apache Arrow im GPU-Speicher auszuführen.

Zusätzlich zu seiner Anpassungsfähigkeit an GPUs und seiner Geschwindigkeit, die viel schneller ist als bei anderen ähnlichen Produkten, erfordern die meisten SQL-Data Warehouses, dass Unternehmen Daten selbst extrahieren und kopieren, während BlazingDB Daten direkt aus Apache Parquet lesen kann, was die Datenkanalarchitektur vereinfacht und gleichzeitig Hochleistungslasten unterstützt.

Noch wichtiger ist, dass BlazingSQL auch Investitionen von NVIDIA und Samsung erhalten hat und eine sehr gute Kooperationsbeziehung mit NVIDIA unterhält.

Leistungsbewertung

Um die Leistung der Tools zu vergleichen, müssen Sie zunächst einen vergleichenden Benchmarktest durchführen und eine durchgängige analytische Workload ausführen.

* Die Schritte sind: Data Lake > FTL Feature Engineering > XGBoost Training

* Wir haben zwei Cluster mit vergleichbaren Preisen auf GCP erstellt, mit Apache Spark bzw. BlazingSQL.

* Das Endergebnis ist, dass BlazingSQL fünfmal schneller läuft als Apache Spark.

(Die neue Version läuft bei gleicher Arbeitslast 20-mal schneller als Apache Spark.)

Ein gutes Pferd verdient einen guten Sattel

Der Grund, warum Blazing SQL effiziente Laufergebnisse erzielen kann, liegt darin, dass es die T4-GPU von GCP luxuriös nutzt, eine neue GPU der Einstiegsklasse, die günstig ist, aber über eine starke Leistung verfügt.

Durch den Einsatz der neuen T4-GPUs konnten wir unsere Kosten halbieren und den Apache Spark-Cluster auf 4 CPU-Knoten reduzieren, um die Preise konstant zu halten.

Das Endergebnis ist jedoch, dass die gesamte Arbeitslast erheblich schneller ist, selbst wenn der GPU-Speicher halbiert wird.

Die Blazing SQL-Ingenieure haben außerdem einen GPU-Ausführungskernel entwickelt, der speziell für GPU DataFrames (GDF) entwickelt wurde und „SIMD Expression Interpreter“ heißt.

Es würde lange dauern, den SIMD-Ausdrucksinterpreter zu beschreiben. Deshalb werde ich hier nur einige Details zu seiner Funktionsweise und den Gründen für solche Leistungsverbesserungen erläutern.

Die Leistungsverbesserung des SIMD-Ausdrucksinterpreters wird hauptsächlich durch die folgenden Schlüsselschritte erreicht:

1. Die Maschine unterstützt mehrere Eingaben. Diese Eingaben können GDF-Spalten, Literale und Funktionen sein.

2. Beim Laden dieser Eingaben optimiert der SIMD-Ausdrucksinterpreter die Zuweisung von Registern auf der GPU, was die GPU-Auslastung verbessert und letztendlich die Leistung steigert.

3. Darüber hinaus verarbeitet die virtuelle Maschine diese Eingaben und generiert mehrere Ausgaben gleichzeitig. Betrachten Sie beispielsweise die folgende SQL-Abfrage: SELECT colA + colB * 10, sin(colA) — cos(colD) FROM tableA