Skip to content

Update cudf-polars benchmarks for new default engine - #22619

Merged
vyasr merged 4 commits into
NVIDIA:release/26.06from
btepera:polars_benchmarks
May 29, 2026
Merged

Update cudf-polars benchmarks for new default engine#22619
vyasr merged 4 commits into
NVIDIA:release/26.06from
btepera:polars_benchmarks

Conversation

@btepera

@btepera btepera commented May 21, 2026

Copy link
Copy Markdown
Contributor

Description

Replace benchmarks in the cudf-polars docs with updated PDS-DS results collected using the updated GPU engine with rapidsmpf.

Closes #21471

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@coderabbitai

coderabbitai Bot commented May 21, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 9302248d-2b25-4175-953b-e56eed92397c

📥 Commits

Reviewing files that changed from the base of the PR and between 2e1d721 and d34955a.

📒 Files selected for processing (1)
  • docs/cudf/source/cudf_polars/index.md
✅ Files skipped from review due to trivial changes (1)
  • docs/cudf/source/cudf_polars/index.md

📝 Walkthrough

Summary by CodeRabbit

  • Documentation
    • Rewrote the Benchmark section to emphasize Polars GPU engine scaling with larger datasets.
    • Removed prior managed-memory discussion and per-query speedup claims, replacing them with consolidated TPC-DS benchmark tables for SF1k and SF3k (PDS-H and PDS-DS figures).
    • Removed outdated notes and added a reference link to the cuDF repository for the PDS-DS queries.

Walkthrough

The Benchmark section of the cudf-polars docs was rewritten to present a GPU-engine scaling overview, embed TPC-DS benchmark tables for SF1k and SF3k (PDS-H and PDS-DS), and update the concluding link to the PDS-DS queries in the cuDF repository.

Changes

Benchmark Documentation Update

Layer / File(s) Summary
Benchmark section rewrite with GPU-engine scaling focus
docs/cudf/source/cudf_polars/index.md
Replaced managed-memory note and prior reproduction/results/speedup narrative with a GPU-engine scaling overview; added eval-rst list-tables for SF1k and SF3k (PDS-H and PDS-DS) and updated the final link to PDS-DS queries.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related issues

Possibly related PRs

  • rapidsai/cudf#22352 — Also modifies docs/cudf/source/cudf_polars/index.md (adds developer_docs toctree) and is closely related to the same landing page edits.

Suggested labels

cudf-polars

Suggested reviewers

  • TomAugspurger
  • madsbk
  • pentschev
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: updating cudf-polars benchmarks to reflect the new default engine configuration.
Description check ✅ Passed The description is related to the changeset and clearly states it replaces benchmarks with updated PDS-DS results using the updated GPU engine, and references the linked issue #21471.
Linked Issues check ✅ Passed The PR successfully addresses issue #21471 by updating benchmark documentation with PDS-DS results using RapidsMPF and comparing GPU vs CPU streaming engine performance as required.
Out of Scope Changes check ✅ Passed All changes are within scope—the PR modifies only the benchmark documentation section to update performance figures with new PDS-DS results, directly addressing the linked issue.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/cudf/source/cudf_polars/index.md`:
- Around line 55-67: The section mixes benchmark names (“Polars Decision Support
(PDS)”, “PDS-DS”, and figure filenames referencing “tpcds”); update all
occurrences to a single consistent term (use “TPC-DS”)—replace the phrase
"Polars Decision Support (PDS)" with "Polars TPC-DS benchmark" (or similar),
change any "PDS-DS" tokens to "TPC-DS", and ensure figure captions/alt text and
surrounding sentences reference "TPC-DS" consistently (including references to
polars_tpcds_sf1k.png and polars_tpcds_sf3k.png).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 83387283-7a4a-415c-8a63-1adebad9f57a

📥 Commits

Reviewing files that changed from the base of the PR and between abd5619 and 34407d0.

⛔ Files ignored due to path filters (2)
  • docs/cudf/source/_static/polars_tpcds_sf1k.png is excluded by !**/*.png
  • docs/cudf/source/_static/polars_tpcds_sf3k.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • docs/cudf/source/cudf_polars/index.md

Comment thread docs/cudf/source/cudf_polars/index.md Outdated
Comment on lines +55 to +67
We ran the Polars Decision Support (PDS) benchmarks to compare the Polars GPU engine with the CPU engine at larger scale factors to show how the GPU engine delivers meaningful speedups as dataset size grows:

```{figure} ../_static/pds_benchmark_polars.png
```{figure} ../_static/polars_tpcds_sf1k.png
:width: 600px
```

You can see up to 13x speedup using the GPU engine on the compute-heavy PDS queries involving
complex aggregation and join operations. Below are the speedups for the top performing queries:
On a single GPU, you can run TB-scale workloads with significant speedups compared to running on CPU. You can also scale up to run on multiple GPUs for processing even larger workloads:

```{figure} ../_static/compute_heavy_queries_polars.png
```{figure} ../_static/polars_tpcds_sf3k.png
:width: 1000px
```

*PDS-H benchmark | GPU: NVIDIA H100 PCIe | CPU: Intel Xeon W9-3495X (Sapphire Rapids) | Storage:
Local NVMe*

You can reproduce the results by visiting the [Polars Decision Support (PDS) GitHub repository](https://github.com/pola-rs/polars-benchmark).
For more information on the benchmarks being run, see the PDS-DS queries in the [cuDF GitHub repository](https://github.com/rapidsai/cudf/tree/main/python/cudf_polars/cudf_polars/streaming/benchmarks).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Unify benchmark naming across the section.

The text mixes “PDS”, “TPC-DS” (in figure names), and “PDS-DS”. Please standardize to a single term (likely TPC-DS unless your internal suite is intentionally named otherwise) to avoid reader confusion.

As per coding guidelines, “Consistency: Version numbers, parameter types, and terminology match code.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/cudf/source/cudf_polars/index.md` around lines 55 - 67, The section
mixes benchmark names (“Polars Decision Support (PDS)”, “PDS-DS”, and figure
filenames referencing “tpcds”); update all occurrences to a single consistent
term (use “TPC-DS”)—replace the phrase "Polars Decision Support (PDS)" with
"Polars TPC-DS benchmark" (or similar), change any "PDS-DS" tokens to "TPC-DS",
and ensure figure captions/alt text and surrounding sentences reference "TPC-DS"
consistently (including references to polars_tpcds_sf1k.png and
polars_tpcds_sf3k.png).

Comment thread docs/cudf/source/cudf_polars/index.md Outdated
Comment thread docs/cudf/source/cudf_polars/index.md Outdated
Comment thread docs/cudf/source/cudf_polars/index.md Outdated
Local NVMe*

You can reproduce the results by visiting the [Polars Decision Support (PDS) GitHub repository](https://github.com/pola-rs/polars-benchmark).
For more information on the benchmarks being run, see the PDS-DS queries in the [cuDF GitHub repository](https://github.com/rapidsai/cudf/tree/main/python/cudf_polars/cudf_polars/streaming/benchmarks).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should point at the release branch, not main. Also, this doesn't give the reader enough information to reproduce, because there are a bunch of non-default parameters (hopefully fewer than there used to be) being passed.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally if Polars adds TPC-DS queries to their polars-benchmark repo we should point there (like we did previously for TPC-H). Today our benchmarking is not easily reproducible due to the data generation process. Is it better to link to the queries for some context or just drop this altogether?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's ok to be imperfect. When we write up the point-in-time benchmark statement we should have an audit trail though.

I was just wondering, since this goes in both "release" and "nightly" docs if it makes sense to always link to what is equivalent to "nightly" code.

@btepera btepera added non-breaking Non-breaking change doc Documentation labels May 21, 2026
@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown

Actionable comments posted: 0

@coderabbitai

coderabbitai Bot commented May 28, 2026

Copy link
Copy Markdown

Actionable comments posted: 0

@vyasr

vyasr commented May 29, 2026

Copy link
Copy Markdown
Contributor

Squash-merging this PR for 26.06 during code freeze since we want these numbers in the released docs for 26.06.

@vyasr
vyasr merged commit 5ea7e1f into NVIDIA:release/26.06 May 29, 2026
73 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

doc Documentation non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants