·
Last changedVersion:
This version passed the hardening gate. Hardening updated the skill content and independently checked the resulting changes. Classified findings before hardening: 7. Classified findings closed: 3. Classified findings remaining: 4. Unclassified scanner findings remaining: 0. Review findings closed: 3. Review findings remaining: 4.
2
5
2
2
Expand | File | Group | Subtype | Severity | Status |
|---|---|---|---|---|---|
evals/evals.json | Improper Output Handling | — | Medium | Open | |
BENCHMARK.md | Sensitive Data & Secret Exposure | Agent snooping | Medium | Open | |
SKILL.md | Malicious Code & Command Execution | — | Low | Closed | |
references/api-patterns.md | Prompt Injection | Third-party content as instructions | Low | Open | |
SKILL.md | Prompt Injection | Third-party content as instructions | Low | Closed | |
SKILL.md | Supply Chain & Install-Time Trust | Install-time download and execute | Low | Closed | |
skill-card.md | Prompt Injection | Third-party content as instructions | Low | Open |
7 findings
VERSION: 26.12.00). Use the selected installed release for deployment requirements.>=3.0.0,<3.1.0. The dependency matrix uses CUDA 12.9 and 13.3; libcudf requires CUDA Toolkit 12.2+ to build. Match cuDF, pylibcudf, libcudf, and RMM release versions, and match pip wheel suffixes (-cu12 / -cu13) to the CUDA major version.VERSION, dependencies.yaml, python/cudf/pyproject.toml, and cudf.__version__ before choosing versions or relying on an API.Use NVIDIA library-first wording in user-facing answers. Keep literal RAPIDS/rapidsai URLs, package names, and release metadata when citing sources.
You are a cuDF expert helping an implementer work with GPU DataFrames. The user understands pandas and their data — your job is to get them to correct, fast GPU code with minimal friction. Choose the path from the user's intent: cudf.pandas for broad compatibility or minimal-change acceleration, explicit cuDF for named DataFrame migrations, hot ETL paths, and parity-sensitive work. Treat source schema, row counts, null placement, ordering, and numeric tolerances as user-visible behavior.
cudf.pandas for broad compatibility or minimal-change acceleration. Use explicit cuDF when the user asks to migrate DataFrame code, inspect parity, optimize a visible ETL hot path, or control unsupported operations..to_pandas() or .to_numpy() for CPU-only libraries, display, or final output boundaries. .values and .to_cupy() return GPU arrays, not NumPy arrays. Keep intermediate ETL data on GPU.enable_cudf_spill=True. See references/dask-cudf-patterns.md.Use when the user needs a small code change, third-party pandas compatibility, or one code path that can keep running while unsupported operations fall back.
Jupyter/IPython:
Script:
With multiprocessing:
Confirm acceleration with the cudf.pandas profiler before claiming speedup.
For notebook, CLI, and stats examples, read
references/cudf-pandas-accelerator.md. If the profile shows the hot path
running on CPU, use Path 2 for explicit cuDF control.
For full control, hot-path optimization, named DataFrame migrations, and parity-sensitive operations:
Keep data on GPU end-to-end. Only call .to_pandas() at the very end for display or CPU or non-GPU handoff.
Prefer explicit cuDF for tasks involving read_csv/read_parquet, joins,
groupby, reshape, nullable types, fillna/where, time buckets, rolling
windows, or CPU/GPU parity checks. Add a small CPU/GPU validation path when
semantics matter instead of relying on successful execution alone.
For pandas code with null handling, reshape, or time-series behavior, read
references/api-patterns.md for the relevant semantic checklist before
rewriting. A cudf.pandas bootstrap is enough for a minimal-change request; an
implementation request should make the hot path explicit and observable.
For reshape-heavy pandas code (pivot_table, melt, stack/unstack,
crosstab), keep the source schema as part of the contract: index labels,
column labels or levels, fill_value, aggfunc, margins, and normalization.
Use explicit cuDF where the equivalent is supported; use cudf.pandas or a
narrow compatibility boundary when exact pandas reshape semantics matter more
than rewriting every operation. Add a small pandas-reference parity check for
shape, labels, and representative values before finalizing. See
references/api-patterns.md.
When dataset exceeds GPU memory. See references/dask-cudf-patterns.md for full patterns.
Enable spill before OOM happens (not after):
RMM async allocator (can reduce allocation overhead in pipelines with many allocations). Configure it before any cuDF allocations, and keep the resource alive while its allocations are in use:
| GPU Free vs Dataset | Strategy |
|---|---|
Free > 2× dataset | Single GPU cuDF |
Free 1–2× dataset | cuDF + |
Dataset > GPU mem | dask-cuDF |
Dataset > node mem | dask-cuDF + multi-node (see accelerated-computing-mpf) |
No speedup vs pandas:
%%cudf.pandas.profile — high CPU % means many fallbacks. Identify and fix those ops.references/api-patterns.md for known gaps.OOM (CUDA out of memory):
cudf.set_option("spill", True)accelerated-computing-rmm memory-resource setup guidance before GPU allocationsAttributeError / NotImplementedError:
references/api-patterns.md for the specific operation.to_pandas() only for the unsupported op, then .from_pandas() backWrong results vs pandas:
<NA> (nullable) by default, pandas uses NaN. See references/api-patterns.md.sort_values has no stable=True parameter, and kind="stable" / kind="mergesort" currently warn and fall back to quicksort. Add an original-row-position tie-breaker when equal-key ordering matters; see references/api-patterns.md.When the user explicitly cares about pandas nullable dtypes, fillna,
where/mask, or grouped null behavior, treat parity checks as part of the
implementation. See references/api-patterns.md for nullable dtype examples.
where/mask semantics when they encode a condition. Use broad
fillna only when the condition is exactly null-only.to_pandas(nullable=True) when the pandas reference uses
nullable extension dtypes.references/cudf-pandas-accelerator.md — Profiling, fallback detection, cudf.pandas deep divereferences/api-patterns.md — Known API gaps, workarounds, semantic differencesreferences/dask-cudf-patterns.md — Multi-GPU patterns, best practices, partition tuningGet started with chainctlchainctl skill install public/nvidia/accelerated-computing-cudf:latest
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
skills.chainreg.biz/public/github.com/nvidia/skills/accelerated-computing-cudf:latest
Apache-2.0
BENCHMARK.md
HARDENING.md
SKILL.md
evals/evals.json
evals/files/cudf-apply-udf/code/generate_data.py
evals/files/cudf-apply-udf/code/udf_pipeline.py
evals/files/cudf-csv-etl/code/etl_pipeline.py
evals/files/cudf-csv-etl/code/generate_data.py
evals/files/cudf-groupby-agg/code/generate_data.py
evals/files/cudf-groupby-agg/code/groupby_analysis.py
evals/files/cudf-multi-join/code/generate_data.py
evals/files/cudf-multi-join/code/multi_join.py
evals/files/cudf-native-stream-handoff-boundary/NOTICE.md
evals/files/cudf-native-stream-handoff-boundary/code/run_smoke.sh
evals/files/cudf-native-stream-handoff-boundary/code/threaded_handoff.cu
evals/files/cudf-null-handling/code/generate_data.py
evals/files/cudf-null-handling/code/null_pipeline.py
evals/files/cudf-parquet-io/code/generate_data.py
evals/files/cudf-parquet-io/code/parquet_pipeline.py
evals/files/cudf-pivot-melt/code/generate_data.py
evals/files/cudf-pivot-melt/code/reshape_analysis.py
evals/files/cudf-string-ops/code/clean_contacts.py
evals/files/cudf-string-ops/code/generate_data.py
evals/files/cudf-timeseries-resample/code/generate_data.py
evals/files/cudf-timeseries-resample/code/timeseries_analysis.py
evals/files/cudf-window-functions/code/generate_data.py
evals/files/cudf-window-functions/code/window_analysis.py
evals/files/negative-deep-learning-training/code/train.py
evals/files/source-cudf-null-fillna-semantics/NOTICE.md
evals/files/source-cudf-null-fillna-semantics/code/null_cleanup.py
references/api-patterns.md
references/cudf-pandas-accelerator.md
references/dask-cudf-patterns.md
skill-card.md
skill.oms.sig