Skip to content

Commit f75bfd6

Browse files
authored
[DOCS] Add Sedona 0.4.0 GPU accelerated join blog post (#3087)
1 parent 4206605 commit f75bfd6

7 files changed

Lines changed: 71 additions & 1 deletion

docs/blog/posts/intro-sedonadb-0-4.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ authors:
77
- dewey
88
- kristin
99
- feng
10-
- jia
10+
- james
1111
- pranav
12+
- jia
1213
title: "SedonaDB 0.4.0 Release"
1314
---
1415

393 KB
Loading
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
date:
3+
created: 2026-06-26
4+
links:
5+
- SedonaDB: https://sedona.apache.org/sedonadb/
6+
authors:
7+
- jia
8+
title: "SedonaDB 0.4: GPU-Accelerated Spatial Joins"
9+
---
10+
11+
# SedonaDB 0.4: GPU-Accelerated Spatial Joins
12+
13+
In SedonaDB 0.4, we taught this Rust database to run spatial joins on your $1,500 gaming GPU's ray tracing cores, and it beats an H100.
14+
15+
![SedonaDB 0.4 GPU-Accelerated Spatial Joins — ray tracing cores, repurposed for the database](raybooster-gpu-spatial-join-cover.png)
16+
17+
<!-- more -->
18+
19+
The Apache Sedona community released [SedonaDB](https://sedona.apache.org/sedonadb) 0.4.0, resolving 187 issues and adding 26 new functions from 15 contributors. SedonaDB is the first open-source, single-node analytical database that treats spatial data as a first-class citizen — the counterpart to the distributed Sedona engines for small-to-medium datasets running on a single machine.
20+
21+
This is the first in a series of posts diving into what's new in SedonaDB 0.4. We'll be covering more of the release — the Python DataFrame API, the R dplyr interface, Geography support, GeoParquet write support, N-dimensional rasters and Zarr, and more — in the posts to come; for the full rundown, see the [0.4.0 release blog post](https://sedona.apache.org/latest/blog/2026/06/19/sedonadb-040-release/). We're kicking things off with the feature we're most excited about: GPU-accelerated spatial joins.
22+
23+
## GPU-Accelerated Spatial Joins
24+
25+
![Architecture of RayBooster: a storage layer of GPU-friendly geometry arrays, an indexing layer, and a refinement layer feeding the RT shaders and the OptiX ray tracing execution engine](sedonadb-gpu-1.png)
26+
27+
Gaming GPUs contain dedicated ray tracing cores designed for video game lighting — and they sit idle during database queries. Spatial joins are about finding intersecting geometries, which maps naturally onto ray tracing primitives. We built **RayBooster**, an extension that brings ray tracing core acceleration into SedonaDB.
28+
29+
The accompanying research paper, [*"RayBooster: A Ray Tracing Engine to Accelerate SedonaDB,"*](https://jiayuasu.github.io/files/paper/sedona_db_gpu_vldb_2026.pdf) was accepted to **VLDB 2026** (Industry Track), developed in collaboration with The Ohio State University.
30+
31+
### How it works: four components
32+
33+
![A single BVH tree is built over the build-side geometries, then probe-side geometries cast rays through it and matched pairs are written back to the intersection buffer](sedonadb-gpu-2.png)
34+
35+
**1. GPU-friendly storage layout.** Instead of the stream-oriented WKB format, RayBooster uses a Structure of Arrays organization that separates offsets, vertices, and types, enabling O(1) random access to any geometry.
36+
37+
**2. A single monolithic index.** Rather than building millions of tiny index trees, it uses *Z-stacking* — encoding each geometry's ID into the unused Z-axis of the ray tracing scene and building one global BVH for the entire batch.
38+
39+
**3. A universal predicate engine.** `RelateEngine` computes the DE-9IM matrix (a topological descriptor) on RT cores, giving one code path that resolves any geometry/predicate combination instead of hardcoding 500+ kernel variants.
40+
41+
**4. Memory-aware execution.** A scheduling and spilling layer keeps joins within GPU memory budgets on irregular real-world workloads, preventing out-of-memory failures.
42+
43+
![Casting rays to test point-in-polygon and polygon intersection, then assembling the DE-9IM intersection matrices that resolve any topological predicate](sedonadb-gpu-3.png)
44+
45+
## Performance
46+
47+
Testing on SpatialBench:
48+
49+
- **Up to 5.93x speedup** on heavy joins, with a 59.02% cost reduction on AWS
50+
- **Q11 cross-zone trip join**: 7.51s (CPU) → 1.61s on a consumer RTX 3090 — a 4.66x speedup
51+
- **10x scale**: 53.34s reduced to under 7s
52+
- **Heavy joins at scale**: 4.93x to 9.68x speedups across GPU models
53+
- **Consumer RTX 3090 vs. H100**: on some queries the gaming card actually beat the H100 (1.26s vs 1.77s on Q10), despite the H100 lacking RT cores
54+
55+
![Cost-effectiveness on SpatialBench across CPU, L40S, A10, and L4: per-query cost and total workload cost on AWS](sedonadb-gpu-4.png)
56+
57+
## Using it
58+
59+
On a machine with an NVIDIA GPU, pull the official Docker image and enable the feature with a single command:
60+
61+
```python
62+
ctx.sql("SET gpu.enable = true")
63+
```
64+
65+
The [GPU Acceleration guide](https://sedona.apache.org/sedonadb/latest/gpu-acceleration/) walks through launching the Docker image on NVIDIA GPU machines and lists the supported compute capabilities.
66+
67+
## Citation
68+
69+
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).

docs/blog/posts/sedonadb-gpu-1.png

309 KB
Loading

docs/blog/posts/sedonadb-gpu-2.png

202 KB
Loading

docs/blog/posts/sedonadb-gpu-3.png

206 KB
Loading

docs/blog/posts/sedonadb-gpu-4.png

389 KB
Loading

0 commit comments

Comments
 (0)