Polars宣布发布其全新的GPU引擎,该引擎由RAPIDS cuDF驱动,显著提升了在NVIDIA GPU上的数据处理速度。根据NVIDIA技术博客,这一进展使数据科学家能够在单台机器上在几秒钟内处理数亿行数据。
不断增长的数据挑战
传统的数据处理库如pandas是单线程的,在处理超过几百万行的数据集时往往变得不切实际。虽然分布式数据处理系统可以处理数十亿行数据,但它们对较小的数据集引入了复杂性和开销。这造成了一个工具上的空缺,即那些能够高效处理数千万到几亿行数据的工具,这是金融、零售和制造业中进行模型开发、需求预测和物流等任务时常见的需求。
Polars是一种快速增长的Python库,专为数据科学家和工程师设计,旨在应对这些挑战。它采用了先进的查询优化,最大限度地减少不必要的数据移动和处理,使单台机器上能够顺利处理数亿行数据。Polars为中等规模的数据处理提供了一个有吸引力的解决方案,弥合了单线程工具和复杂分布式系统之间的差距。
将NVIDIA加速计算引入Polars
Polars利用多线程执行、先进的内存优化和惰性评估,相较于其他仅使用CPU的数据操作工具,提供了显著的即用即得的加速效果。然而,随着各行业对数据处理需求的增长,更高的性能变得必不可少。这时候,加速计算变得至关重要。
cuDF是NVIDIA RAPIDS CUDA-X库套件的一部分,是一个GPU加速的DataFrame库,利用GPU的巨大并行性显著提升数据处理性能。通过与NVIDIA合作,Polars团队将cuDF的速度与Polars的效率集成在一起,实现了较CPU基础的Polars性能提升最多达13倍。这种集成使用户在数据处理工作负载扩展到数亿甚至数十亿行时,仍能保持交互体验。
Polars GPU引擎直接内置于Polars的Lazy API中。用户可以通过安装polars[gpu]
并在collect操作中传递[engine="gpu"]
来访问GPU加速的工作流程。这种方法通过Polars的查询优化器确保了高效执行和最小内存使用,与Polars的数据可视化、I/O和机器学习库生态系统完全兼容,无需对现有的Polars代码进行任何更改。
pip install polars[gpu] --extra-index-url=https://pypi.nvidia.com import polars as pl (transactions .group_by("CUST_ID") .agg(pl.col("AMOUNT").sum()) .sort(by="AMOUNT", descending=True) .head() .collect(engine="gpu"))
结论
由RAPIDS cuDF驱动的Polars GPU引擎现已开放测试,为数据科学家和工程师提供了一个强大的中等规模数据处理工具。通过在NVIDIA GPU上将Polars工作流程加速到最多13倍,该引擎可以高效处理数亿行数据集,而无需分布式系统的开销。Polars GPU引擎无缝集成到Polars API中,使所有用户都可以轻松访问。
入门指南
有关更多信息并开始使用Polars GPU引擎,请访问官方NVIDIA技术博客。
Image source: Shutterstock