- Eine Engine der nächsten Generation, spezialisiert auf die Beschleunigung von SQL-Abfragen mit aktueller GPU-Hardware
- Über das Substrait-Abfrageformat werden in der CPU-Engine (DuckDB) erzeugte Abfragen an die GPU-Umgebung (Sirius) übergeben
- Im GPU-Speicher werden Raw Data Cache Region und Processing Region getrennt, um Lade- und Verarbeitungsleistung der Daten zu maximieren
- Ohne Änderungen an Abfragen oder am System wurde bei TPC-H 100 eine mehr als 10-fache Geschwindigkeit bei gleichen Kosten erreicht
- Optimal für groß angelegte Daten-Workloads wie Echtzeitanalysen, Finanzen und ETL
- Unterstützte Umgebungen: Ubuntu 20.04+, NVIDIA Volta(7.0+)-GPU oder höher, CUDA 11.2+, CMake 3.30.4 oder höher (16 vCPU oder mehr empfohlen)
- Installationsmethoden: drei Optionen verfügbar – AWS AMI (vorkonfiguriertes Image), Docker-Image, manuelle Installation der Abhängigkeiten
- Docker:
sudo docker run --gpus all -it yifeiyang7/sirius_dependencies:latest bash
- Manuell: einzelne Installation von DuckDB-Abhängigkeiten, CUDA, libcudf (per conda installiert) usw. erforderlich
- Wichtige Einschränkungen
- Funktioniert nur innerhalb der Größe des GPU-Speichers (Unterstützung für Partitionierung/Batching, Disk Spill und Multi-GPU ist geplant)
- Die maximale Row Count ist durch das int32_t-Limit von libcudf (~2 Milliarden Rows) begrenzt
- Datentypen: Unterstützung für INTEGER, BIGINT, FLOAT, DOUBLE, VARCHAR, DATE, DECIMAL; weitere Typen in Entwicklung
- Operatoren: Unterstützung für FILTER, PROJECTION, JOIN, GROUP-BY, ORDER-BY, AGGREGATION, TOP-N, LIMIT, CTE; WINDOW-Funktionen usw. sind in Entwicklung
- Partially NULL Column wird nicht unterstützt (Patch dafür ist geplant)
- Bei Problemen automatischer Fallback auf die DuckDB-CPU-Engine
1 Kommentare
Substrait – plattformübergreifender Austauschstandard für Datenverarbeitungsoperationen