Algeon for DataFusion
algeon-datafusion runs supported Apache DataFusion plans
on NVIDIA GPUs through RAPIDS. A physical optimizer rule replaces whole relational plan
candidates with cuDF execution and leaves the rest of the plan on the DataFusion CPU path.
SQL table functions expose cuGraph, cuVS and cuML algorithms, so one query can select an
algorithm's input, run it and join the result. Setup, supported SQL, configuration and
design are documented at algeon.dev. Algeon is experimental; APIs
and query behavior may change between releases.
Dependencies
[]
= "0.1.1"
= "55.1"
= { = "1", = ["macros", "rt-multi-thread"] }
= "0.3"
| Feature | Adds | Native libraries |
|---|---|---|
| none | Relational execution on cuDF | cuDF, RMM |
cuvs |
Vector search and clustering table functions | cuVS |
cugraph |
Graph table functions | cuVS, cuGraph |
cuml |
Machine learning and forest inference table functions | cuVS, cuML |
server |
Embedded Arrow Flight SQL server | none |
nvml |
Live device diagnostics through NVML | none |
No feature is on by default. Algeon needs Linux, an NVIDIA GPU and a CUDA toolkit, and
Cargo does not build the RAPIDS libraries. Build them from the Algeon source tag
that matches the crate version in the application's Cargo.lock (v0.1.1 for 0.1.1) and
point ALGEON_NATIVE_DIR and LD_LIBRARY_PATH at the installed prefixes.
Building for an application gives the build
order per feature and the loader setup; Prerequisites
covers the driver, toolkit and host compiler.
Example
use ;
use ;
use TryStreamExt;
async
DataFusion session walks through the same steps, adds the algorithm SQL families and explains execution modes.