Sirius: GPU-Native SQL 엔진, TPC-H 100 규모 성능 10배 향상
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Sirius - GPU-Native SQL 엔진 요약

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

  • 데이터 엔지니어, 클라우드 개발자, 고성능 컴퓨팅 담당자
  • GPU 아키텍처 이해 및 SQL 엔진 최적화에 관심 있는 중급 이상 개발자

핵심 요약

  • GPU-Native SQL 엔진으로 Substrait 쿼리 포맷을 통해 DuckDB CPU 엔진과 호환 (코드: Substrait)
  • GPU 메모리 분할(Raw Data Cache Region + Processing Region)으로 TPC-H 100 규모에서 10배 이상 성능 향상
  • NVIDIA Volta(7.0+) GPU, CUDA 11.2+, Ubuntu 20.04+ 환경에서 실행 (권장: 16vCPU 이상)

섹션별 세부 요약

1. 기술적 개요

  • GPU 하드웨어 기반 SQL 쿼리 가속화
  • Substrait 포맷을 통해 CPU 엔진(DuckDB) → GPU 엔진(Sirius) 간 쿼리 전달
  • 대규모 데이터 워크로드(실시간 분석, 금융, ETL) 최적화

2. 메모리 구조 및 성능

  • GPU 메모리 분할
  • Raw Data Cache Region: 데이터 적재
  • Processing Region: 쿼리 처리
  • TPC-H 100 규모에서 동일 비용 기준 10배 이상 속도 향상

3. 설치 및 실행 환경

  • 지원 환경:
  • OS: Ubuntu 20.04+
  • GPU: NVIDIA Volta(7.0+) 이상
  • CUDA: 11.2+
  • CMake: 3.30.4+
  • 설치 옵션:
  • AWS AMI (미리 구성된 이미지)
  • Docker 이미지: sudo docker run --gpus all -it yifeiyang7/sirius_dependencies:latest bash
  • 수동 설치: DuckDB, CUDA, libcudf(conda 설치) 필요

4. 제한사항 및 지원 기능

  • GPU 메모리 내에서만 동작 (추후 파티셔닝/멀티 GPU 지원 예정)
  • 최대 row count: libcudfint32_t 한계 (~20억 rows)
  • 지원 데이터 타입: INTEGER, BIGINT, FLOAT, DOUBLE, VARCHAR, DATE, DECIMAL
  • 지원 연산자: FILTER, PROJECTION, JOIN, GROUP-BY, ORDER-BY, AGGREGATION
  • 미지원 기능: PARTIALLY NULL COLUMN, WINDOW 함수 (개발 중)

결론

  • GPU 성능 활용을 위한 설치 시 GPU 사양(메모리, CUDA 버전) 및 데이터 규모 확인 필수
  • Docker 또는 AWS AMI를 통해 빠르게 배포 가능
  • GPU 메모리 한계 및 row count 제한에 주의 (예: 20억 rows 이상은 libcudf 한계로 제한)
  • 이슈 발생 시 자동으로 DuckDB CPU 엔진으로 폴백 (보안 및 안정성 강화)