让一个Rust数据库在游戏GPU的RT核心上运行空间查询,击败了H100

Hacker News Top 产品

摘要

SedonaDB 0.4引入了RayBooster,它利用GPU光线追踪核心加速空间连接,性能超越H100;该研究成果已被VLDB 2026接收。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/06/26 20:20

# SedonaDB 0.4:GPU 加速空间连接 来源:https://sedona.apache.org/latest/blog/2026/06/26/sedonadb-04-gpu-accelerated-spatial-joins/ https://github.com/apache/sedona/edit/master/docs/blog/posts/raybooster-gpu-spatial-join.md在 SedonaDB 0.4 中,我们让这个 Rust 数据库能够在你价值 1500 美元的游戏 GPU 的光线追踪核心上运行空间连接,并且它击败了 H100。 SedonaDB 0.4 GPU 加速空间连接 —— 光线追踪核心,为数据库重新赋能 Apache Sedona 社区发布了 [SedonaDB](https://sedona.apache.org/sedonadb) 0.4.0,解决了 187 个问题,并由 15 位贡献者新增了 26 项函数。SedonaDB 是第一个将空间数据视为一等公民的开源单节点分析数据库 —— 对于在单机上运行的中小型数据集,它是分布式 Sedona 引擎的对应方案。 这是深入探讨 SedonaDB 0.4 新特性的系列文章的第一篇。我们将在后续文章中涵盖更多发布内容 —— Python DataFrame API、R dplyr 接口、Geography 支持、GeoParquet 写入支持、N 维栅格和 Zarr 等。完整概述请参阅 [0.4.0 发布博客](https://sedona.apache.org/latest/blog/2026/06/19/sedonadb-040-release/)。我们从最令人兴奋的功能开始:GPU 加速空间连接。 ## GPU 加速空间连接¶ (https://sedona.apache.org/latest/blog/2026/06/26/sedonadb-04-gpu-accelerated-spatial-joins/#gpu-accelerated-spatial-joins) RayBooster 架构:一个由 GPU 友好的几何数组组成的存储层,一个索引层,以及一个精炼层,将数据送入 RT 着色器和 OptiX 光线追踪执行引擎。 游戏 GPU 包含专门为视频游戏光照设计的专用光线追踪核心 —— 它们在数据库查询期间处于闲置状态。空间连接涉及寻找相交的几何体,这自然映射到光线追踪原语上。我们构建了 **RayBooster**,一个将光线追踪核心加速引入 SedonaDB 的扩展。 随附的研究论文 *"RayBooster: A Ray Tracing Engine to Accelerate SedonaDB"* (https://jiayuasu.github.io/files/paper/sedona_db_gpu_vldb_2026.pdf) 被 **VLDB 2026**(工业界方向)接收,由俄亥俄州立大学合作开发。 ### 工作原理:四个组件¶ (https://sedona.apache.org/latest/blog/2026/06/26/sedonadb-04-gpu-accelerated-spatial-joins/#how-it-works-four-components) 在构建端几何体上构建单个 BVH 树,然后探测端几何体通过它投射光线,匹配对将被写回相交缓冲区。 **1. GPU 友好的存储布局。** 不同于面向流的 WKB 格式,RayBooster 采用结构体数组(SoA)组织,将偏移量、顶点和类型分开,实现对任何几何体的 O(1) 随机访问。 **2. 单个全局索引。** 不是构建数百万个小索引树,而是使用 *Z-Stacking* —— 将每个几何体的 ID 编码到光线追踪场景中未使用的 Z 轴上,并为整个批次构建一个全局 BVH。 **3. 通用谓词引擎。** `RelateEngine` 在 RT 核心上计算 DE-9IM 矩阵(一种拓扑描述符),提供单一代码路径来解决任何几何体/谓词组合,而无需硬编码 500 多个内核变体。 **4. 内存感知执行。** 一个调度和溢出层使连接在 GPU 内存预算内处理不规则的真实工作负载,防止内存不足故障。 投射光线以测试点包含和多边形相交,然后组装 DE-9IM 相交矩阵,以解决任何拓扑谓词。 ## 性能¶ (https://sedona.apache.org/latest/blog/2026/06/26/sedonadb-04-gpu-accelerated-spatial-joins/#performance) 在 SpatialBench 上测试: - **重度连接最高加速 5.93 倍**,在 AWS 上成本降低 59.02% - **Q11 跨区域行程连接**:在消费级 RTX 3090 上从 7.51s(CPU)降至 1.61s —— 加速 4.66 倍 - **10 倍规模**:53.34s 降至 7s 以下 - **大规模重度连接**:跨 GPU 模型加速 4.93 倍至 9.68 倍 - **消费级 RTX 3090 与 H100**:在某些查询中,游戏卡实际击败了 H100(Q10 上 1.26s 对比 1.77s),尽管 H100 缺少 RT 核心 在 CPU、L40S、A10 和 L4 上的成本效益:AWS 上的每次查询成本和总工作负载成本。 ## 使用方法¶ (https://sedona.apache.org/latest/blog/2026/06/26/sedonadb-04-gpu-accelerated-spatial-joins/#using-it) 在一台配备 NVIDIA GPU 的机器上,拉取官方 Docker 镜像,并通过一条命令启用该功能: `` ctx.sql("SET gpu.enable = true") `` [GPU 加速指南](https://sedona.apache.org/sedonadb/latest/gpu-acceleration/) 详细介绍了如何在 NVIDIA GPU 机器上启动 Docker 镜像,并列出了支持的计算能力。 ## 引用¶ (https://sedona.apache.org/latest/blog/2026/06/26/sedonadb-04-gpu-accelerated-spatial-joins/#citation) Liang Geng, Rubao Lee, Dewey Dunnington, Feng Zhang, Jia Yu, and Xiaodong Zhang. "RayBooster: A Ray Tracing Engine to Accelerate SedonaDB." (https://jiayuasu.github.io/files/paper/sedona_db_gpu_vldb_2026.pdf) PVLDB, 2026 (Industry Track).

相似文章