Craton Bolt:纯 Rust 的 GPU SQL 引擎
Craton Bolt 是一个用 Rust 编写的 SQL 执行引擎,能在运行时把每条查询编译成全新的 NVIDIA PTX 内核,通过 CUDA 驱动加载并在 GPU 上执行。整个流程——解析、规划、代码生成、启动——完全基于 Rust 和 CUDA 驱动 API,没有 C++ 垫片、没有预编译内核库,也不依赖第三方查询引擎。
GitHub: GitHub
#软件 #工具 #CratonBolt #GPU #SQL #Rust #NVIDIA #CUDA #数据库 #开源
@SoftwareToolboxCN
Craton Bolt 是一个用 Rust 编写的 SQL 执行引擎,能在运行时把每条查询编译成全新的 NVIDIA PTX 内核,通过 CUDA 驱动加载并在 GPU 上执行。整个流程——解析、规划、代码生成、启动——完全基于 Rust 和 CUDA 驱动 API,没有 C++ 垫片、没有预编译内核库,也不依赖第三方查询引擎。
项目有两个核心设计:一是通过运行时 PTX 实现内核融合,每条查询只生成单个 PTX 内核,整个融合表达式树保存在寄存器中,避免像 RAPIDS/cuDF 那样在全局内存中反复搬运中间结果;二是借用检查的 GPU 内存管理,GPU 分配是类型化句柄,内核启动要求借用,因此释放后使用、双重释放和跨内核的可变/共享别名问题都在编译期被拒绝。
目前处于活跃开发阶段,版本 v0.7.0。已实现投影、过滤、标量聚合、GROUP BY、多种 JOIN、DISTINCT、ORDER BY、LIMIT、HAVING、UNION、EXCEPT、INTERSECT 等端到端管线,前端还支持 CTE(含递归)、派生表、LATERAL 子查询、窗口函数、ROLLUP/CUBE/GROUPING SETS 等。Decimal128 支持完整 GPU 算术,字典编码字符串的谓词可降为纯整数 GPU 路径。
注意:项目尚未达到生产就绪,公共 API 在 1.0 前不稳定。CI 不运行 GPU 代码,GPU 正确性仅在开发者硬件上单独验证。需要 Rust 1.74+、CUDA Toolkit ≥ 12、NVIDIA GPU(Volta 或更新)。支持 Linux x86_64 和 Windows MSVC,不支持 macOS。
GitHub: GitHub
#软件 #工具 #CratonBolt #GPU #SQL #Rust #NVIDIA #CUDA #数据库 #开源
@SoftwareToolboxCN