Polars and NVIDIA RAPIDS have released a beta GPU engine for Python Polars that accelerates common DataFrame operations using cuDF. Users can enable it with polars[gpu] on Polars 1.6.0+ by passing engine="gpu" to collect(). Benchmarks on the PDS-H benchmark show up to 13x speedup versus CPU for compute-bound queries like joins and group-bys, with transparent fallback to CPU for unsupported operations. The feature is Python-only for now, as hooking into RAPIDS from Rust is currently impractical.
Questions this post answers
How do I enable GPU acceleration in Polars using NVIDIA RAPIDS?
Install polars[gpu] with the NVIDIA package index, then pass engine="gpu" to the collect() method on a LazyFrame. This is available as a beta feature for Polars 1.6.0 and later on eligible machines with NVIDIA GPUs. Example: pip install polars[gpu] -U --extra-index-url=https://pypi.nvidia.com, then query.collect(engine="gpu"). Developers rolling out GPU-accelerated data pipelines can track Polars updates like this on daily.dev.
How much faster is Polars with GPU acceleration compared to running on CPU?
GPU-accelerated Polars can be up to 13x faster than the CPU engine on compute-bound queries, based on the PDS-H benchmark at scale factor 80 across 22 queries. The biggest gains come from queries with many group-by and join operations, while IO-bound queries see little to no benefit from the GPU engine. Teams deciding whether GPU acceleration is worth adopting can follow benchmark reports like this on daily.dev.
Does Polars GPU acceleration work in Rust or only in Python?
The new GPU engine, built with NVIDIA RAPIDS cuDF, is only available in Python Polars, not Rust. Hooking into RAPIDS from Rust was considered far more difficult to implement, so using cuDF directly from Python allowed broader operation support and a simpler installation process. Rust and Python Polars users weighing engine capabilities can keep tabs on such gaps via daily.dev.