让一个Rust数据库在游戏GPU的RT核心上运行空间查询,击败了H100
摘要
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).
相似文章
GPU上的无畏并发:在Rust中进行安全的GPU推理,与vLLM/SGLang竞争 [R]
cuTile Rust 引入了一种基于块(tile)的编程模型,利用 Rust 的所有权机制来保证 GPU 内核的内存安全和无数据竞争,基于该模型构建的 Grout 推理引擎在 Qwen3 模型上实现了与 vLLM/SGLang 相当的吞吐量。
我用Rust构建了一个用于智能体跟踪的数据库(10亿行数据P95低于1毫秒)
ZenithDB是一款新的开源Rust数据库,专为存储和查询AI智能体跟踪而设计。通过在压缩过程中将同一跟踪的所有跨度放在同一个位置,它在10亿行数据上实现了亚毫秒级的跟踪获取延迟,并内置了全文搜索和延迟物化功能。
@no_stp_on_snek: 我的第二个且迟交的 Build Small 参赛作品。10天,1位开发者:从头构建的 Rust 引擎 + 自定义 GPU 内核 vs vLLM 在 N…
一位开发者从头构建了一个 Rust 推理引擎,带有自定义 GPU 内核,在 Nemotron-30B 解码上优于 vLLM,达到 75.7 vs 57 tok/s,提交至 Build Small 黑客马拉松。
Show HN: cuTile Rust:在Rust中编写安全、无数据竞争的GPU内核
NVIDIA Labs发布了cuTile Rust,这是一个基于瓦片的系统,用于用地道的Rust编写内存安全、无数据竞争的GPU内核。它将Rust的所有权模型扩展到GPU内核,通过JIT将Rust的AST编译为GPU代码,并实现接近原生CUDA的性能。
缓存感知调度为AMD Zen 5上的PostgreSQL和Valkey带来显著性能提升
缓存感知调度改进为运行PostgreSQL和Valkey数据库的AMD Zen 5处理器带来显著性能提升。