AI・機械学習
Rust製DBがゲーミングGPUのRTコアで空間クエリを実行し、H100を凌駕
Made a Rust DB run spatial queries on gaming GPU RT cores, beating an H100 (sedona.apache.org)
要約
SedonaDB 0.4では、Rustベースのシングルノード空間データベースにGPUアクセラレーションを導入し、ゲーミングGPUのレイトレーシングコアを使って空間結合を高速化しました。これにより、AWS H100よりも高速な性能を発揮することが示され、特に重い空間結合で最大5.93倍の速度向上を達成しました。この新機能は、RayBoosterという拡張機能によって実現され、VLDB 2026に研究論文が採択されました。
全文翻訳
SedonaDB 0.4: GPUアクセラレーションによる空間結合
SedonaDB 0.4では、このRustデータベースに、1,500ドルのゲーミングGPUのレイトレーシングコアで空間結合を実行させ、H100を凌駕しました。
Apache SedonaコミュニティはSedonaDB 0.4.0をリリースし、187の課題を解決し、15人の貢献者から26の新機能を追加しました。SedonaDBは、空間データを第一級オブジェクトとして扱う初のオープンソースのシングルノード分析データベースであり、単一のマシンで実行される小規模から中規模のデータセット向けの分散Sedonaエンジンの対抗馬です。これは、SedonaDB 0.4の新機能に深く踏み込む一連の投稿の第1弾です。今後の投稿では、Python DataFrame API、R dplyrインターフェース、地理サポート、GeoParquet書き込みサポート、N次元ラスタおよびZarrなど、さらに多くのリリース内容を取り上げます。詳細については、0.4.0リリースブログ投稿をご覧ください。今回は、私たちが最も興奮している機能、GPUアクセラレーションによる空間結合から始めます。
GPUアクセラレーションによる空間結合
ゲーミングGPUには、ビデオゲームのライティング用に設計された専用のレイトレーシングコアが搭載されていますが、データベースクエリ中はアイドル状態です。空間結合は交差するジオメトリを見つけることに関係しており、これはレイトレーシングのプリミティブに自然にマッピングされます。私たちは、レイトレーシングコアのアクセラレーションをSedonaDBにもたらすRayBoosterという拡張機能を構築しました。付随する研究論文「RayBooster: A Ray Tracing Engine to Accelerate SedonaDB」はVLDB 2026(業界トラック)に採択され、オハイオ州立大学と共同で開発されました。
仕組み:4つのコンポーネント
1. GPUフレンドリーなストレージレイアウト。ストリーム指向のWKB形式の代わりに、RayBoosterはオフセット、頂点、タイプを分離する配列の構造(Structure of Arrays)を使用し、任意のジオメトリへのO(1)ランダムアクセスを可能にします。
2. 単一のモノリシックインデックス。何百万もの小さなインデックスツリーを構築するのではなく、Zスタッキングを使用します。これは、各ジオメトリのIDをレイトレーシングシーンの未使用のZ軸にエンコードし、バッチ全体に対して1つのグローバルBVHを構築します。
3. ユニバーサル述語エンジン。RelateEngineはRTコアでDE-9IMマトリックス(位相記述子)を計算し、500以上のカーネルバリアントをハードコーディングするのではなく、任意のジオメトリ/述語の組み合わせを解決する1つのコードパスを提供します。
4. メモリを意識した実行。スケジューリングおよびスピリングレイヤーは、不規則な実際のワークロードにおいて、結合がGPUメモリ予算内に収まるように維持し、メモリ不足エラーを防ぎます。
パフォーマンス
SpatialBenchでのテスト:重い結合で最大5.93倍の高速化、AWS Q11クロスゾーントリップ結合で59.02%のコスト削減を達成しました。
* CPUでの7.51秒 → コンシューマ向けRTX 3090で1.61秒 – 4.66倍の高速化
* 10倍スケール:53.34秒が7秒未満に短縮
* 大規模な重い結合:GPUモデル全体で4.93倍から9.68倍の高速化
* コンシューマ向けRTX 3090対H100:一部のクエリではゲーミングカードがH100を実際に凌駕しました(Q10で1.26秒対1.77秒)。H100にはRTコアがないにもかかわらずです。
使用方法
NVIDIA GPUを搭載したマシンでは、公式Dockerイメージをプルし、以下の単一コマンドで機能を有効にします。
```sql
ctx.sql("SET gpu.enable = true")
```
GPUアクセラレーションガイドでは、NVIDIA GPUマシンでDockerイメージを起動する方法と、サポートされる計算能力がリストされています。
引用
Liang Geng, Rubao Lee, Dewey Dunnington, Feng Zhang, Jia Yu, and Xiaodong Zhang. "RayBooster: A Ray Tracing Engine to Accelerate SedonaDB." PVLDB, 2026 (Industry Track).