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

    RAPIDS 新增 GPU Polars 串流、統一 GNN API 和零代碼 ML 加速功能

    RAPIDS 是一套用于 Python 數據科學的 NVIDIA CUDA-X 庫,發布了 25.06 版本,引入了令人興奮的新功能。其中包括 Polars GPU 流引擎、用于圖形神經網絡 (GNN) 的統一 API,以及用于支持向量機的加速 (無需更改代碼) 。在這篇博文中,我們將探討其中一些更新。

    Polars GPU 引擎更新

    2024 年 9 月,我們與 Polars 團隊合作推出了基于 NVIDIA cuDF 構建的 Polars GPU 引擎。25.06 版本對 Polars GPU 引擎功能進行了一些重大更新。

    流式傳輸執行器現已在實驗中可用

    在 25.06 版本中,我們在 Polars GPU 引擎中引入了流式傳輸執行。流式傳輸執行程序利用數據分區和并行處理,支持在大于 VRAM 的數據集上執行。要使用此新的流式傳輸執行程序,用戶可以將適當配置的 GPUEngine 對象傳遞給 Polars collect 調用:

    streaming_engine = GPUEngine(
        executor="streaming",
        executor_options={"scheduler": "synchronous"}
    )
    result = query.collect(engine=streaming_engine)

    這種新的流式傳輸模式還使用戶能夠將數據處理工作流擴展到多個 GPU。這有助于加速從數百 GB 擴展到 TB 的數據集的分析操作。對于需要在分區之間移動數據的操作 (例如 join 和 groupbys) ,新的 shuffle 機制可處理在設備之間重新分發數據。多 GPU 執行通過 Dask 分布式調度程序進行編排,需要先設置 Dask 客戶端:

    from dask_cuda import LocalCUDACluster
    from dask.distributed import Client
     
    client = Client(LocalCUDACluster())
     
    multi_gpu_streaming = GPUEngine(
    executor="streaming",
    executor_options={"scheduler": "distributed"}
    )
     
    result = query.collect(engine=multi_gpu_streaming)

    流式傳輸執行程序目前正在積極開發中,不受支持的操作將回退到使用內存中的執行程序。如需了解更多信息,請查看我們最近的博客和 NVIDIA GTC 巴黎講座。

    支持滾動聚合和更多列操作

    最新版本還支持 Polars GPU 引擎中的一些關鍵新 DataFrame 功能。首先,我們在 Polars 中添加了對 .rolling() 運算的支持,允許用戶基于其 Dataframe 中的其他列創建滾動組。在處理時間序列數據集時,這尤其有用。

    dates = [
        "2025-01-01 13:45:48",
        "2025-01-01 16:42:13",
        "2025-01-01 16:45:09",
        "2025-01-02 18:12:48",
        "2025-01-03 19:45:32",
        "2025-01-08 23:16:43",
    ]
     
    df = (
        pl.DataFrame({"dt": dates, "a": [3, 7, 5, 9, 2, 1]})
        .with_columns(pl.col("dt").str.strptime(pl.Datetime()))
        .lazy()
    )
     
    query = (
        df.rolling(index_column="dt", period="2d")
        .agg(
            pl.sum("a").alias("sum_a"),
            pl.min("a").alias("min_a"),
            pl.max("a").alias("max_a"),
        )
    )
     
    query.collect(engine="gpu")

    此外,GPU 引擎現在還支持更多用于操作日期時間列的表達式。現在支持的新方法包括 .strftime().cast_time_unit(),隨著我們繼續擴大整體 API 覆蓋范圍,我們計劃在即將發布的版本中使用更多方法。

    適用于 GNN 的統一 API

    NVIDIA cuGraph-PyG 進一步集成了用于加速特征獲取的 WholeGraph,創建了我們所說的統一 API。這種新 API 現在使用戶能夠在單 GPU 工作流中使用 WholeGraph 的加速功能存儲,同時無需修改多 GPU 或多節點工作流的腳本。

    借助統一 API,用于在單個 GPU 上進行原型設計的相同 GNN 訓練腳本可在具有多個 GPU 的單個節點和多個節點上運行。PyTorch 的 torchrun 命令用于管理進程設置,使大多數 PyTorch 用戶都熟悉 Unified API。

    查看我們的示例,了解如何開始。

    零代碼更改 cuML 增強功能

    今年 3 月,我們推出了用于 scikit-learn 的零代碼更改加速器,該加速器由 cuML 提供支持,現已推出公測版。隨著 25.06 版本的發布,cuML 為用戶帶來了更多的零代碼更改功能。

    支持無需更改代碼的向量機

    NVIDIA cuML 通過添加支持向量機擴展了零代碼更改加速功能。支持向量分類 (SVC) 和支持向量回歸 (SVR) 是一種功能強大的算法,可以很好地處理高維數據,并且在 GPU 上執行時可以看到顯著的加速。將這些估算器添加到 cuML 的零代碼更改接口后,利用支持向量機的現有 scikit-learn 工作流現在無需進行任何修改即可加速。請注意,用戶應了解 SVC 和 SVR 的 cuML 和 scikit-learn 實現之間的一些關鍵差異。

    如需詳細了解 cuML 對各種算法的零代碼更改支持,請訪問我們的文檔。

    改進了 scikit-learn 兼容性

    25.06 版本還包含一項重要的內部設計,重新設計了 cuML 加速 scikit-learn 估計器的方式。這一變化增強了 scikit-learn 奇偶校驗,實現了更好的參數驗證并改進了錯誤處理。此外,通過重新設計,cuML 增強了與 scikit-learn API 的兼容性,從而更輕松地加速目前與 scikit – learn 集成的第三方庫。

    隨機森林與更新的森林推理庫集成

    cuML 的隨機森林估算器 (RandomForestRegressor 和 RandomForestClassifier) 通過集成速度更快、更可靠的森林推理庫 (FIL) 而獲得升級。此實施可提供更高的性能和更好的內存管理,同時保持向后兼容性。

    用戶應注意,一些特定于先前實現的當前 API 旋鈕現已棄用,并將在即將發布的 25.08 版本中刪除。

    RAPIDS Memory Manager 與 NVIDIA Blackwell 解壓縮引擎的兼容性

    RAPIDS Memory Manager (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。RSN 48 對此進行了記錄。

    總結

    RAPIDS 25.06 版本為新的機器學習算法、新的 Polars GPU 流式傳輸引擎、異步內存資源的硬件解壓縮功能等帶來零代碼更改功能。

    歡迎您在 GitHub 上提供反饋。您還可以加入 RAPIDS Slack 社區的 3500 多名成員,討論 GPU 加速的數據處理。

    如果您不熟悉 RAPIDS,請查看這些資源以開始使用。如需了解有關加速數據科學的更多信息,請探索我們的 DLI 學習路徑并注冊實戰課程。

    ?

    ?

    0

    標簽

    人人超碰97caoporen国产