用途
该技能是 NVIDIA 编写的 cuDF GPU DataFrame 实现指南,帮助已理解 pandas 的使用者将数据处理迁移到 GPU,并得到正确、快速且可观测的代码。
三条使用路径
1. cudf.pandas 加速器(兼容或最小改动) 适用于只需少量修改、需要第三方 pandas 兼容,或希望保留一条可运行回退路径的场景。
Jupyter/IPython:
%load_ext cudf.pandas
import pandas as pd
脚本方式:
python -m cudf.pandas my_script.py
多进程需在导入 pandas 和创建 Pool 前调用 cudf.pandas.install()。使用 profiler 确认热点路径确实在 GPU 上运行。
2. 显式 cuDF API
适用于具名 DataFrame 迁移、ETL 热点优化、对语义对齐敏感的任务。支持 cudf.read_parquet 直接读入 GPU,groupby、merge、过滤、字符串操作等与 pandas 类似。建议数据全程留在 GPU,仅在最终展示或交给 CPU 库时调用 .to_pandas()。
3. dask-cuDF(多 GPU 与大数据)
数据超出单卡显存时使用,通过 LocalCUDACluster(enable_cudf_spill=True) 与 dask.dataframe 后端设为 cudf 进行分布式处理。
兼容性与版本
该技能跟踪 26.12 开发版;部署应以实际安装版本为准。需查阅 dependencies.yaml 的支持矩阵,匹配 cuDF、pylibcudf、libcudf、RMM 的版本,并使 pip wheel 后缀(-cu12/-cu13)与 CUDA 主版本一致;需要受支持的 NVIDIA GPU 与兼容驱动。
显存管理
可在 OOM 前启用 cudf.set_option("spill", True) 溢出到主机内存;也可配置 RMM 异步分配器以减少分配开销。指南给出按可用显存与数据集大小选择单卡 cuDF、cuDF+spill、dask-cuDF 或多节点策略的参考表。
语义与验证
cuDF 默认使用 <NA> 可空类型,pandas 使用 NaN;排序稳定性、浮点归约结果可能与 pandas 不同。指南建议保留小型 pandas 参照路径,对比形状、标签、空值计数、顺序、分组聚合与代表性数值,并在启用 nullable dtype 时用 to_pandas(nullable=True) 比较。
排查
针对无加速、OOM、AttributeError/NotImplementedError、结果不一致等情况给出处理方向,包括定位回退操作、启用 spill、将不支持操作留在 CPU 窄边界后再转回 GPU 等。
限制
资料未说明该技能本身的收费、价格或具体平台支持范围;实际可用 API 与行为取决于所选安装版本,使用前需核对 VERSION 与 dependencies.yaml。