今天,Polars 發布了一款由 RAPIDS cuDF 提供支持的新型 GPU 引擎,可在 NVIDIA GPUs 上將 Polars 工作流的速度提升高達 13 倍,使數據科學家能夠在單臺機器上在數秒內處理數億行數據。
日益增長的數據挑戰
像 pandas 這樣的傳統數據處理庫是單線程的,超過數百萬行數據的使用已變得不切實際。分布式數據處理系統可以處理數十億行,但會增加處理中小型數據集的復雜性和開銷。
在高效處理數十萬行到數百萬行數據的工具方面存在差距。此類工作負載在金融、零售和制造等行業的模型開發、需求預測和物流中很常見。
Polars 是面向數據科學家和工程師的發展最快的 Python 庫之一,專為應對這些挑戰而從頭開始設計。它使用高級查詢優化來減少不必要的數據移動和處理,使數據科學家能夠在單臺機器上大規模地順利處理數以億計行的工作負載。Polars彌合了單線程解決方案速度過慢與分布式系統增加不必要復雜性的差距,提供了一個有吸引力的“中等規模”數據處理解決方案。
將 NVIDIA 加速計算引入 Polars
與其他僅使用 CPU 的數據操作工具相比,Polars 可利用多線程執行、高級內存優化和延遲評估,提供開箱即用的顯著加速。
然而,隨著各行各業的組織面臨著日益增長的數據處理需求——從分析數十億筆金融交易到管理復雜的庫存系統——甚至需要更高的性能。這正是加速計算發揮作用的地方:
cuDF 是 NVIDIA RAPIDS CUDA-X 庫套件的一部分。這是一個 GPU 加速的 DataFrame 庫,利用 GPU 的大規模并行性顯著提高數據處理性能。
Polars 團隊與 NVIDIA 合作,將 cuDF 的速度添加到 Polars 的效率中,從而進一步將性能提升至 CPU 上的 Polars 的 13 倍。這使用戶能夠在數據處理工作負載增長到數億甚至數十億行數據時,保持交互式體驗。

用戶直接內置于 Polars Lazy API 中,只需通過 pip 安裝 polars[gpu]
并將 [engine=”gpu”]
傳遞給收集操作,即可為其工作流程實現 GPU 加速。在幕后,Polars 將嘗試先在 GPU 上執行操作,然后在必要時返回 CPU。這種方法可確保:
- 使用 Polars 的查詢優化器實現高效執行并盡可能減少內存占用。
- 用戶無需更改現有Polars代碼即可訪問GPU引擎。
- 與 Polars 日益壯大的數據可視化、I/O 和機器學習庫生態系統完全兼容
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 GPUs 上將 Polars 工作流加速高達 13 倍,高效地處理數億行的數據集,而不會占用分布式系統的開銷。Polars GPU 引擎直接內置于 Polars API 中,便于每位用戶輕松訪問。
Polars GPU 引擎入門
查看以下資源以了解詳情并開始使用Polars GPU引擎:
- 入門 notebook 可在 GitHub 和 Colab 上獲取。
- Polars 發布博客
- Polars 用戶指南
?