NVIDIA/cudf
cuDF - GPU DataFrame Library
NVIDIA cuDF – GPU加速数据帧
是什么 – cuDF是一组库,让你能够在NVIDIA GPU上处理表格数据(CSV、Parquet等)。它镜像了pandas API,因此你可以直接替换pandas代码,并将相同的操作(读取、过滤、分组、连接等)在GPU而不是CPU上运行。核心是一个C++库(libcudf),具有Arrow兼容的列式结构,并通过pylibcudf和高层cudf包提供Python绑定。额外的适配器让cuDF支持Polars(cudf-polars)和Dask(dask-cudf)。
为什么对AI/ML重要 – 大多数数据科学流程从需要清洗、重塑和聚合的大规模表格开始,然后才能输入模型。cuDF加速了这些步骤,通常将预处理时间从数分钟缩短到数秒,从而加快模型迭代并支持更大数据集。
关键组件
- libcudf – 带有Arrow兼容列容器和低级算法的CUDA C++核心。
- pylibcudf – 将核心暴露给Python的Cython绑定。
- cudf – 与pandas兼容的DataFrame库;还提供
cudf.pandas,实现现有pandas脚本的零代码更改加速。 - cudf-polars – Polars DataFrame库的GPU引擎。
- dask-cudf – 支持GPU的Dask DataFrames,用于分布式工作负载。
安装(选择一种)
# 通过pip – 选择与CUDA版本匹配的后缀
pip install cudf-cu13 # 适用于CUDA 13
pip install dask-cudf-cu13
# …或适用于CUDA 12
pip install cudf-cu12
# 通过conda – 使用RAPIDS频道
conda install -c rapidsai cudf dask-cudf
对于开发版本,请添加夜间频道(-c rapidsai-nightly)。
快速示例 – 与pandas相同的代码,但在GPU上运行:
import cudf
# 将Parquet文件直接加载到GPU内存
df = cudf.read_parquet('data.parquet')
# 删除包含任何null的行,按两列分组并计算平均值
result = df.dropna().groupby(['A', 'B']).mean()
print(result)
你也可以不加修改地运行现有的pandas脚本:
python -m cudf.pandas my_script.py
或者在Jupyter笔记本中:
%load_ext cudf.pandas
import pandas as pd # 现在在GPU上运行
对于Polars用户:
import polars as pl
lf = pl.scan_parquet('data.parquet')
out = lf.drop_nulls().group_by(['A', 'B']).mean().collect(engine='gpu')
社区与贡献 – 错误和功能请求通过GitHub问题跟踪器提交。讨论在RAPIDS Slack工作区进行。我们欢迎按照标准的NVIDIA RAPIDS贡献指南进行贡献。
cuDF是一个真正的、生产级的GPU数据处理库,完美契合现代AI/ML流程。
相关
- 项目
- 项目
- 项目
- 项目
- 项目