RAPIDS 是一套面向 Python 数据科学的 NVIDIA CUDA-X 库,最新发布的 25.06 版本引入了多项亮眼新功能,其中包括 Polars GPU 流执行引擎——这是一种面向图神经网络(GNN)的统一 API,以及无需更改代码即可实现的支持向量机加速功能。在本篇博客中,我们将介绍其中的几项重要更新。
Polars GPU 引擎更新
2024 年 9 月,NVIDIA 与 Polars 团队合作推出了基于 NVIDIA cuDF 开发的 Polars GPU 引擎。此次发布的 25.06 版对 Polars GPU 引擎的功能进行了重大更新。
流执行器现已进入实验阶段
25.06 版在 Polars GPU 引擎中引入了流执行功能。流执行器利用数据分区和并行处理技术,能够处理超出显存容量的数据集。要使用这个新的流执行器,用户可以将恰当配置的 GPUEngine 对象传递给 Polars 的 collect 调用。
这种新的流模式还能让用户将数据处理工作流扩展到多个 GPU,有助于加速分析数百 GB 到 TB 级的数据集。对于需要在分区之间移动数据的操作(例如连接和分组),新引入的数据混洗(shuffle)机制可在设备之间重新分配数据。多 GPU 执行通过 Dask 分布式调度器进行编排,使用前需要先设置一个 Dask 客户端。
流执行器目前仍在积极开发中,尚未支持的操作将自动回退到内存执行器。
支持滚动聚合及更多列操作
最新版本还包含了对 Polars GPU 引擎中一些关键新 DataFrame 功能的支持。首先,我们在 Polars 中添加了对 .rolling() 操作的支持,允许用户基于一些 DataFrame 中的其他列创建滚动组。这在处理时间序列数据集时尤为实用。
此外 GPU 引擎现在支持更丰富的日期时间列表达式,目前已支持的新方法包括 .strftime() 和 .cast_time_unit()。随着我们继续扩展整体 API 覆盖范围,未来版本还将支持更多方法。
统一的 GNN API
NVIDIA cuGraph-PyG 进一步集成了 WholeGraph 以加速特征提取,形成了我们所说的统一 API。这个新 API 现在允许用户在单 GPU 工作流中使用 WholeGraph 的加速特征存储,同时无需修改脚本即可用于多 GPU 或多节点工作流。
借助统一 API,在单 GPU 上进行原型开发时使用相同的 GNN 训练脚本就能在具有多个 GPU 的单节点以及多节点上运行。通过 PyTorch 的 torchrun 命令管理进程设置,使得大多数 PyTorch 用户都可以熟练地使用统一 API。
无需更改代码的 cuML 增强功能
今年 3 月,NVIDIA 推出了由 cuML 驱动、用于 scikit-learn 的无需更改代码的加速器,该加速器已进入公测阶段。在 25.06 版本中,cuML 为用户带来了更多无需更改代码的功能。
无需更改代码的支持向量机
NVIDIA cuML 扩展了其无需更改代码的加速功能,新增了对支持向量机的支持。支持向量分类(SVC)和支持向量回归(SVR)这两种强大的算法在 GPU 上执行时,能很好地处理高维数据并显著地提升速度。通过在 cuML 的零代码变更接口中添加这些估计器,利用支持向量机的现有 scikit-learn 工作流无需修改即可加速。cuML 和 scikit-learn 在 SVC 和 SVR 的实现上存在一些关键差异,还请用户加以了解。
改进的 scikit-learn 兼容性
25.06 版本对 cuML 加速 scikit-learn 估计器的方式进行了重大重构,增强了 scikit-learn 一致性,还改进了参数验证和异常处理。此外,通过这次重新设计,cuML 也增强了与 scikit-learn API 的兼容性,可以更轻松地加速目前与 scikit-learn 集成的第三方库。
随机森林与更新后的森林推理库(FIL)集成
通过集成更快、更强大的森林推理库(FIL),cuML 的随机森林估计器得到了升级,在保持向后兼容性的同时,提供了更高的性能和更好的内存管理。
需注意,旧版特有的一些 API 调节参数(knobs)现已弃用,并将在即将发布的 25.08 版本中移除。
RAPIDS 内存管理器与 NVIDIA Blackwell 解压缩引擎的兼容性
RAPIDS 内存管理器(RMM)库增加了全新功能,确保用户能够使用最新的 NVIDIA 硬件功能。在最新版本中,RMM 异步内存资源可支持兼容 NVIDIA Blackwell GPU 上基于硬件的解压缩引擎,让 IO 密集型工作流中的性能得到提升。
此外,RMM 现在以一个预编译共享库的形式存在,取代了之前的仅包含头文件的库。我们相信这一变化将为未来解锁新功能奠定基础。
平台更新:Python 和 NVIDIA CUDA 支持
25.06 版本为所有 RAPIDS 库添加了对 Python 3.13 的支持,同时也是最后一个支持 CUDA 11 的版本。从 25.08 版开始,RAPIDS 将不再支持 CUDA 11。如需继续使用 CUDA 11,可以固定使用 25.06 版本。
结语
RAPIDS 25.06 版为新的机器学习算法带来了零代码变更功能、新的 Polars GPU 流引擎、异步内存资源的硬件解压缩功能等多项功能。
全部0条评论
快来发表一下你的评论吧 !