在 NVIDIA GTC 2024 上,我們宣布 RAPIDS cuDF 現在可以為 950 萬 Pandas 用戶帶來 GPU 加速,而無需他們更改代碼。
pandas 作為一個靈活而強大的 Python 數據分析和操作庫,因其易于使用的 API,成為數據科學家的首選。然而,隨著數據集大小的增長,它在 CPU 系統中的處理速度和效率可能會受到影響。
RAPIDS 是一個開源的 GPU 加速 Python 庫套件,旨在改進數據科學和分析流程。RAPIDS cuDF 是一個 GPU DataFrame 庫,提供類似于 pandas 的 API,用于加載、過濾和操作數據。在早期的 cuDF 版本中,它適用于僅使用 GPU 的開發工作流程。
去年秋天,RAPIDS 發布了 cuDF 的公測版,通過統一的 CPU/GPU 用戶體驗,將加速計算引入 Pandas 工作流程,且無需更改代碼。在 GTC 2024 上,NVIDIA 宣布 Pandas 的 cuDF 加速現已在最新版本 RAPIDS v24.02 中正式推出。此功能將由 NVIDIA AI Enterprise 5.0 在春季晚些時候推出。
在視頻中,您可以看到相同的 pandas 工作流在 Jupyter Notebook 中并行運行:一個使用僅支持 CPU 的 pandas,另一個加載 cudf.pandas 擴展程序以使用 RAPIDS cuDF 加速 pandas。
為 pandas 工作流程帶來統一的 CPU/GPU 體驗
cuDF 一直使用類似 pandas 的 API 為用戶提供出色的 DataFrame 庫性能。但是,采用 cuDF 有時需要一些變通方法:
- 處理 cuDF 中尚未實現或支持的任何 pandas 功能。
- 為需要在異構硬件上運行的代碼庫中的 CPU 和 GPU 執行設計單獨的代碼路徑。
- 在與其他 PyData 庫或專為 Pandas 設計的組織專用工具交互時,手動切換 cuDF 和 pandas。
在 24.02 版本中,除了現有的僅使用 GPU 的體驗之外,cuDF 還無需更改代碼即可加速 pandas 以應對這些挑戰。
此功能專為希望在數據大小增加到千兆字節且性能降低時繼續使用 pandas 的數據科學家而構建。當 cuDF 加速 pandas 時,如果可能,操作將在 GPU 上運行,否則將在 CPU (使用 pandas) 上運行。cuDF 根據需要在 GPU 和 CPU 之間進行同步。這可實現統一的 CPU/GPU 體驗,為您的 pandas 工作流程帶來一流的性能。
在通用版本中,cuDF 提供以下功能:
- 零代碼加速:通過加載 cuDF Jupyter Notebook 擴展程序或使用 cuDF Python 模塊選項,即可實現加速。
- 第三方庫兼容性:pandas 加速器模式與大多數在 pandas 對象上運行的第三方庫兼容。它甚至會加速這些庫中的 pandas 操作。
- 統一的 CPU/GPU 工作流程:使用單個代碼路徑進行開發、測試并在生產環境中運行,無需考慮硬件。
要將 GPU 加速引入 Jupyter Notebook 中的 pandas 工作流程,請加載cudf.pandas
擴展程序:
% load_ext cudf.pandas import pandas as pd |
要在運行 Python 腳本時訪問它,請使用cudf.pandas
模塊選項:
python - m cudf.pandas script.py |
為 Pandas 工作流程帶來出色性能
隨著數據大小擴展到 GB,使用 pandas 通常會因性能較慢而變得具有挑戰性,這導致一些數據科學家放棄他們喜歡的 pandas API.借助新的 RAPIDS cuDF,您可以繼續使用 pandas 作為主要工具,并獲得更高的性能。
您可以運行熱門應用程序的 pandas 部分,并通過類似于 DuckDB 數據庫的操作基準測試來比較不同 DataFrame 和 SQL 引擎在一系列常見分析任務(如數據連接或按組計算統計測量)上的性能。該基準測試最初由 H2O.ai 開發。
借助 5 GB 的數據,pandas 的性能會變得緩慢,需要幾分鐘的時間才能按運算執行一系列加入和高級分組。
過去,使用 cuDF 而不是 pandas 運行此基準測試需要更改代碼并解決缺少的功能。使用 cuDF 的新 pandas 加速器模式,這不再是問題。您可以保持不變地運行 pandas 基準測試代碼并實現顯著加速,在大多數操作中使用 GPU,在一小部分操作中使用 CPU,以確保工作流程成功。
結果非常好。cuDF 統一的 CPU/GPU 體驗可將幾分鐘的處理時間縮短為 1 或 2 秒,而無需更改代碼 (圖 1)。

硬件: NVIDIA Grace Hopper,CPU:英特爾至強鉑金 8480C | 軟件:pandas v2.2、RAPIDS cuDF 23.10
有關這些基準測試結果以及如何重現這些結果的更多信息,請參閱 cuDF 文檔。
結束語
pandas 是 Python 生態系統中非常熱門的 DataFrame 庫,但隨著 CPU 上數據大小的增長,它的速度會降低。
只需一個命令,您就可以使用 cuDF 將加速計算引入 pandas 工作流程,而無需更改代碼。基于處理 5 GB 數據集的分析基準測試,您可以將處理速度提高 150 倍。
嘗試使用 pandas 的 cuDF 加速功能,通過以下鏈接在 Google Colab 的免費 GPU 支持環境中打開詳細的 Notebook:http://nvda.ws/rapids-cudf。
想要了解更多相關信息,請訪問 RAPIDS 網站上的 cuDF pandas 頁面。
?