• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 數據科學

    RAPIDS cuDF 可將 pandas 的速度提升近 150 倍,且無需更改代碼

    ?

    NVIDIA 宣布,RAPIDS cuDF 現在可以為 950 萬 Pandas 用戶帶來 GPU 加速,而無需他們更改代碼。

    pandas 是一個靈活而強大的 Python 數據分析和操作庫,由于其易于使用的 API,因此是數據科學家的首選。但是,隨著數據集大小的增長,它在 CPU 系統中的處理速度和效率會受到影響。

    RAPIDS 是一個開源的 GPU 加速 Python 庫套件,旨在改進數據科學和分析流程。RAPIDS cuDF 是一個 GPU DataFrame 庫,可提供類似 pandas 的 API,用于加載、過濾和操作數據。在 cuDF 的早期版本中,它適用于僅使用 GPU 的開發工作流程。

    隨著最新版 RAPIDS v23.10 的發布,cuDF 現可通過其全新功能,在不更改代碼的情況下,通過統一的 CPU / GPU 用戶體驗為 Pandas 工作流程帶來加速計算,pandas 加速器模式。它現在已在開源平臺中推出RAPIDS v23.10作為公測版發布,并將在NVIDIA AI Enterprise即將推出。

    視頻 1.借助 RAPIDS cuDF 將 Pandas 的運行速度提高近 150 倍

    在視頻中,您可以看到相同的 pandas 工作流并行運行:一個使用僅支持 CPU 的 pandas,另一個在 RAPIDS cuDF 中使用 pandas 加速器模式。

    為 pandas 工作流程帶來統一的 CPU/GPU 體驗

    cuDF 一直使用類似于 pandas 的 API 為用戶提供出色的 DataFrame 庫性能。但是,采用 cuDF 有時需要一些變通方法:

    • 處理 cuDF 中尚未實現或支持的任何 pandas 功能。
    • 為需要在異構硬件上運行的代碼庫中的 CPU 和 GPU 執行設計單獨的代碼路徑。
    • 在與其他 PyData 庫或專為 Pandas 設計的組織專用工具交互時,手動切換 cuDF 和 pandas.

    從 RAPIDS 的v23.10 版本開始,除了現有的純 GPU 體驗之外,cuDF 現在還提供了 pandas 加速器模式來應對這些挑戰。

    此功能專為數據科學家而打造,隨著數據大小增加到千兆字節,pandas 性能降低,他們希望繼續使用 pandas.在 cuDF 的 pandas 加速器模式下,操作盡可能在 GPU 上執行,否則在 CPU (使用 pandas)上執行,根據需要在后臺進行同步。這實現了統一的 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 數據庫的 Ops 基準測試,這是最初由 H2O.ai 開發的。DuckDB 的基準測試設置可以在一系列常見的分析任務(例如將數據連接在一起或按組計算統計測量)上比較基于 CPU 的熱門 DataFrame 和 SQL 引擎。

    使用 5 GB 數據時,pandas 的性能會變得緩慢,執行一系列 join 和高級 groupby 操作需要幾分鐘時間。

    過去,使用 cuDF 而不是 pandas 運行此基準測試需要更改代碼并解決缺失的功能。使用 cuDF 的新 pandas 加速器模式,這不再是問題。您可以保持不變地運行 pandas 基準測試代碼并實現顯著加速,在大多數操作中使用 GPU,在一小部分操作中使用 CPU,以確保工作流程成功。

    結果非常出色。cuDF 統一的 CPU/GPU 體驗可將處理時間縮短為 1 到 2 秒,且無需更改代碼(圖 1)。

    Bar chart shows a 150x speed increase using pandas with RAPIDS cuDF on NVIDIA Grace Hopper. The 10 join operations take only 1 second with RAPIDS cuDF as opposed to 336 seconds with pandas on CPU, while the 10 groupby advanced operations take 2 seconds with RAPIDS cuDF compared to 288 seconds with pandas on CPU.
    圖 1. 性能比較傳統 pandas英特爾至強鉑金 8480CL CPU 上的 v1.5 和 NVIDIA Grace Hopper 上搭載 RAPIDS cuDF 的 pandas v1.5

    如果您想了解更多關于這些基準測試結果以及如何重現這些結果的信息,請參閱 cuDF 文檔

    結束語

    pandas 是 Python 生態系統中最熱門的 DataFrame 庫,但隨著 CPU 上數據大小的增長,它的速度會降低。

    隨著 RAPIDS v23.10 版本中 cuDF 的 pandas 加速器模式現已提供公測版,您現在可以在無需更改代碼的情況下將加速計算引入 pandas 工作流。基于處理 5 GB 數據集的分析基準測試,您可以將處理速度提高 150 倍。

    采用 cuDF 的全新 pandas 加速器模式,在 Google Colab 上的免費 GPU 支持環境中運行使用此詳細的 Notebook 演示試駕

    如需獲取更多信息,請參閱 cuDF pandas 加速器模式 在 RAPIDS 網站上的頁面。

    ?

    0

    標簽

    人人超碰97caoporen国产