- Mecanismo de próxima geração especializado em acelerar consultas SQL usando o hardware GPU mais recente
- Encaminha consultas geradas no mecanismo de CPU (DuckDB) para o ambiente de GPU (Sirius) por meio do formato de consultas Substrait
- Separa Raw Data Cache Region e Processing Region dentro da memória da GPU para maximizar o desempenho de carregamento e processamento de dados
- Sem modificar consultas nem alterar o sistema, registrou mais de 10x de velocidade pelo mesmo custo na escala TPC-H 100
- Ideal para workloads de dados em grande escala como análise em tempo real, finanças e ETL
- Ambientes suportados: Ubuntu 20.04+, GPU NVIDIA Volta(7.0+) ou superior, CUDA 11.2+, CMake 3.30.4 ou superior (recomendado 16 vCPU ou mais)
- Formas de instalação: 3 opções — AMI da AWS (imagem pré-configurada), imagem Docker e instalação manual de dependências
- Docker:
sudo docker run --gpus all -it yifeiyang7/sirius_dependencies:latest bash
- Manual: é necessário instalar separadamente as dependências do DuckDB, CUDA, libcudf (instalado via conda) etc.
- Principais limitações
- Funciona apenas dentro do tamanho da memória da GPU (suporte a particionamento/lotes, spill para disco e múltiplas GPUs previsto para depois)
- A contagem máxima de linhas é limitada ao limite
int32_t do libcudf (~2 bilhões de rows)
- Tipos de dados: suporte a INTEGER, BIGINT, FLOAT, DOUBLE, VARCHAR, DATE e DECIMAL; tipos adicionais estão em desenvolvimento
- Operadores: suporte a FILTER, PROJECTION, JOIN, GROUP-BY, ORDER-BY, AGGREGATION, TOP-N, LIMIT e CTE; funções WINDOW e outras estão em desenvolvimento
- Coluna parcialmente NULL não é suportada (correção futura planejada)
- Em caso de problema, faz fallback automático para o mecanismo de CPU do DuckDB
1 comentários
Substrait - padrão de intercâmbio multiplataforma para operações de processamento de dados