- Moteur de nouvelle génération spécialisé dans l’accélération des requêtes SQL en exploitant le matériel GPU le plus récent
- Transmission vers l’environnement GPU (Sirius) des requêtes générées par le moteur CPU (DuckDB) via le format de requête Substrait
- Séparation dans la mémoire GPU de la Raw Data Cache Region et de la Processing Region afin de maximiser les performances de chargement et de traitement des données
- Plus de 10x de vitesse à coût égal sur un jeu TPC-H de taille 100, sans modification des requêtes ni changement du système
- Optimisé pour les workloads de données à grande échelle comme l’analyse en temps réel, la finance et l’ETL
- Environnements pris en charge : Ubuntu 20.04+, GPU NVIDIA Volta (7.0+) ou supérieur, CUDA 11.2+, CMake 3.30.4+ (16 vCPU ou plus recommandés)
- Méthodes d’installation : trois options disponibles — AWS AMI (image préconfigurée), image Docker et installation manuelle des dépendances
- Docker:
sudo docker run --gpus all -it yifeiyang7/sirius_dependencies:latest bash
- Manuel : installation séparée requise pour les dépendances DuckDB, CUDA, libcudf (via conda), etc.
- Principales limitations
- Fonctionne uniquement dans les limites de la mémoire GPU (prise en charge future prévue pour le partitionnement/le batch, le disk spill et le multi-GPU)
- Le nombre maximal de lignes est limité par la borne int32_t de libcudf (~2 milliards de lignes)
- Types de données pris en charge : INTEGER, BIGINT, FLOAT, DOUBLE, VARCHAR, DATE, DECIMAL ; types supplémentaires en cours de développement
- Opérateurs pris en charge : FILTER, PROJECTION, JOIN, GROUP-BY, ORDER-BY, AGGREGATION, TOP-N, LIMIT, CTE ; les fonctions WINDOW, entre autres, sont en cours de développement
- Les colonnes partiellement NULL ne sont pas prises en charge (correctif prévu ultérieurement)
- En cas de problème, bascule automatique vers le moteur CPU DuckDB
1 commentaires
Substrait - norme d’échange multiplateforme pour les opérations de traitement des données