在過去的兩個版本中,RAPIDS 為 Python 機器學習引入了零代碼更改加速、巨大的 IO 性能提升、大于內存的 XGBoost 訓練、更好的用戶體驗,以及更具可擴展性的 ETL。
我們在 NVIDIA GTC 25 上重點介紹了其中一些更新和公告。在本文中,您可以了解一些亮點。
NVIDIA cuML 為 scikit-learn 等提供零代碼更改加速
?

這種適用于 cuML 的新 UX 使數據科學家能夠繼續使用熟悉的 PyData API,同時自動使用 NVIDIA GPU 實現顯著的性能提升,具體速度可提升 5-175 倍,具體取決于算法和數據集,如圖 1 所示。
要開始使用這項新功能,只需加載 IPython 擴展程序,然后再導入標準 CPU 機器學習庫。
% load_ext cuml.accel from sklearn.datasets import make_classification from sklearn.ensemble import RandomForestClassifier X, y = make_classification(n_samples = 500000 , n_features = 100 , random_state = 0 ) rf = RandomForestClassifier(n_estimators = 100 , random_state = 0 , n_jobs = - 1 ) rf.fit(X, y) |
如需詳細了解這些新功能,請訪問 cuML 文檔。
cuDF 中 IO 性能的主要改進
在過去的兩個版本中,無論您是在云端還是本地工作,我們都為 NVIDIA cuDF 文件閱讀器帶來了顯著的性能提升。
云對象存儲
對于云端的數據處理工作負載,通常讀取存儲在遠程對象存儲 (例如 Amazon S3、Google Cloud Storage、Azure Blob Storage 等) 中的文件。
通過在后臺使用 NVIDIA KvikIO 并并行讀取 Parquet 文件頁腳,使用 cuDF 和 Dask 的工作負載現在可以讀取 Amazon S3 中的 Parquet 文件,速度比以前快 3 倍以上。

?
此功能現已默認開啟,因此您應該可以在不更改任何內容的情況下查看更快的性能。
您可以在近期的 High-Performance Remote IO With NVIDIA KvikIO 博客中詳細了解這項工作。
改進的解壓縮功能
NVIDIA Blackwell 架構包含一個基于硬件的解壓縮引擎,其設計旨在考慮數據處理。由于 25.02 版本支持 Blackwell,cuDF 現在可以利用此功能,為在任何位置運行的 IO 密集型工作負載帶來顯著的性能提升。
在配備 NVIDIA B100 GPU 和 NVMe 存儲的系統上,使用 GPU 加速的 Polars 在 SF100 上運行 Polars Decision Support (PDS) 基準測試時,我們發現使用硬件解壓縮引擎而不是基于軟件的 (標準) GPU 內核解壓縮時,端到端運行時間縮短了 35%。

?
針對 Polars GPU 引擎的可用性增強
在使用 Polars GPU 引擎 (由 cuDF 提供支持) 時,Blackwell 解壓縮引擎可以大幅提升性能。
性能對于任務至關重要,但人體工程學和開發者體驗是人們喜愛 Polars 的部分原因。
我們與 Polars 社區合作,使加速 Polars 變得更加用戶友好,從 RAPIDS 25.04 和 Polars 1.25 開始,現已推出兩項備受期待的功能。
全局配置
用戶現在可以使用 Polars 配置中的 set_engine_affinity
接口選擇默認引擎。這意味著,無需在您運行的每個 Polars 查詢的 collect
調用中選擇 GPU 執行,您可以在工作流的頂部全局配置一次。
import polars as pl pl.set_engine_affinity(“gpu”) df = pl.LazyFrame({ "a" : [ 1.242 , 1.535 ]}) q = df.select(pl.col( "a" ). round ( 1 )) result = q.collect() print (result) ??shape: ( 2 , 1 ) ┌─────┐ │ a │ │ - - - │ │ f64 │ ╞═════╡ │ 1.2 │ │ 1.5 │ └─────┘ |
如果 GPU 引擎不支持特定查詢,則執行會透明地返回到默認的 Polars CPU 引擎。
有關 Polars 支持的選項的完整列表,請參閱全局引擎配置。
GPU 感知分析
Polars 分析器是了解 Polars 查詢性能的絕佳方法。現在,無論在 CPU 還是 GPU 上運行,您都可以使用分析器。
LazyFrame
上的 .profile()
方法現在支持 engine 參數,從而在 GPU 上啟用分析。
要將分析器與 GPU 執行結合使用,只需告知分析器使用 GPU 引擎,如下查詢所示:
q = ( pl.scan_parquet( "lineitem.parquet" ) . filter (pl.col( "l_shipdate" ) < = var1) .group_by( "l_returnflag" , "l_linestatus" ) .agg( pl. sum ( "l_quantity" ).alias( "sum_qty" ), pl. sum ( "l_extendedprice" ).alias( "sum_base_price" ), (pl.col( "l_extendedprice" ) * ( 1.0 - pl.col( "l_discount" ))) . sum () .alias( "sum_disc_price" ), ( pl.col( "l_extendedprice" ) * ( 1.0 - pl.col( "l_discount" )) * ( 1.0 + pl.col( "l_tax" )) ) . sum () .alias( "sum_charge" ), pl.mean( "l_quantity" ).alias( "avg_qty" ), pl.mean( "l_extendedprice" ).alias( "avg_price" ), pl.mean( "l_discount" ).alias( "avg_disc" ), pl. len ().alias( "count_order" ), ) .sort( "l_returnflag" , "l_linestatus" ) ) df, profile = q.profile( "gpu" ) |

如需了解詳情,請訪問 Polars LazyFrame Profile 文檔。
適用于大型數據集的 Out-of-core XGBoost
我們與 DMLC 社區合作,于 3 月發布了 XGBoost 3.0。此版本是一個重要的里程碑,其重新設計的外部內存接口使其能夠在過大而無法容納內存的數據集上高效地訓練模型。
我們針對一致性內存系統 (例如 NVIDIA GH200 Grace Hopper 和 NVIDIA GB200 Grace Blackwell) 優化了此功能。因此,在將 XGBoost 與 RAPIDS Memory Manager (RMM) 結合使用時,單個 Grace Hopper 系統可以輕松地在超過 1 TB 的數據集上訓練模型。
您可以使用新的 ExtMemQuantileDMatrix
interface 和數據迭代器開始進行大于內存的訓練。
import cupy as cp import rmm from rmm.allocators.cupy import rmm_cupy_allocator mr = rmm.mr.PoolMemoryResource(rmm.mr.CudaAsyncMemoryResource()) rmm.mr.set_current_device_resource(mr) cp.cuda.set_allocator(rmm_cupy_allocator) with xgboost.config_context(use_rmm = True ): # Construct the iterators for ExtMemQuantileDMatrix # ... # Build the ExtMemQuantileDMatrix and start training Xy_train = xgboost.ExtMemQuantileDMatrix(it_train, max_bin = n_bins) # Use the training DMatrix as a reference Xy_valid = xgboost.ExtMemQuantileDMatrix(it_valid, max_bin = n_bins, ref = Xy_train) booster = xgboost.train( { "tree_method" : "hist" , "max_depth" : 6 , "max_bin" : n_bins, "device" : device, }, Xy_train, num_boost_round = n_rounds, evals = [(Xy_train, "Train" ), (Xy_valid, "Valid" )] ) |
外部顯存接口還支持多 GPU 和分布式訓練,可擴展至絕對最大的數據集。
重新設計的 Forest 推理庫
隨著 cuML 25.04 的發布,具有更高性能的 Forest Inference Library (FIL) 實驗版本現已保持穩定,并已為生產做好準備。
多年來,企業組織一直依靠 FIL 為生產中的 XGBoost、LightGBM 和 Random Forest 等樹模型提供更高的推理性能。
這款經過全面重新設計的 FIL 可實現巨大的性能提升,基于對各種模型參數的測試,其速度中值比原始 FIL 快 40%。

加速取決于模型的特征,例如推理的樹的深度和數量以及批量大小,在大多數情況下,新實現可顯著加速
根據反饋,我們還推出了三項新功能來改善部署樹模型的體驗:
optimize
方法,提供自動優化以找到最佳配置。用戶只需調用方法,在內部,FIL 將以透明方式為用戶使用最優參數。- 能夠分析每棵樹對最終預測的貢獻 (
.predict_per_tree
) ,以及訪問和操作樹中的單個葉節點 (.apply
) - 新的 CPU 執行模式,可無縫接入 GPU。
平臺更新:Blackwell 支持和 Conda 改進
在過去幾個月中,我們對加速數據科學工作負載的運行位置和方式進行了兩項重大改進。
從 25.02 版本開始,所有 RAPIDS 項目現在都支持基于 NVIDIA Blackwell 架構的 GPU,包括基于硬件的功能,如解壓縮引擎。
此外,使用 Conda 安裝 RAPIDS 庫可以在 x86 和基于 ARM SBSA 的系統上使用 CUDA 12 的“嚴格”通道優先級完成,包括早在 24.06 的版本。這一長期的社區請求可以加快創建環境和安裝軟件包的速度。以前,RAPIDS 庫需要將通道優先級設置為“靈活”。
這對 2 年前或更多年前發布的版本有一定影響。訪問 RAPIDS 文檔了解詳情。
Google Colab AI 助理
Google Colab 是最熱門的數據科學托管筆記本電腦平臺之一,提供簡單的界面,可跨免費和付費層連接支持 GPU 的運行時。
現在,Google Colab 內置了 cuML 和 GPU 加速的 Polars,擴展了 Colab 的電池,包括來自 cuDF、pandas 和 NetworkX 的加速數據科學庫。借助這些新增功能,您現在只需在筆記本頂部為這些庫加載由 cuDF、cuML 和 cuGraph 提供支持的擴展程序,即可利用加速數據科學,無需更改代碼。
如果您更喜歡使用 AI copilot,Collab Gemini 助手現在可以“感知 RAPIDS”。您可以使用 Gemini 生成由 cuDF 的零代碼更改所需的 UX 驅動的 GPU 加速 pandas 代碼。

只需告訴 Gemini 助手您想使用 GPU 即可。
總結
25.02 和 25.04 RAPIDS 版本引入了重大增強功能,包括 Python ML 的零代碼更改加速、重大的 IO 性能提升以及擴展的 XGBoost 訓練支持,為未來更強大的數據科學工作流程奠定了基礎。
歡迎您在 GitHub 上提供反饋。加入 RAPIDS Slack 社區的 3,500+ 名成員,討論 GPU 加速的數據處理。如果您不熟悉 RAPIDS,請查看這些資源以開始使用。
在 NVIDIA GTC 2025 上,加速數據科學無處不在。如果您錯過了,您仍然可以查看數據科學會議和研討會列表,并點播觀看會議,包括:
- 2025 年的 RAPIDS:無處不在的加速數據科學
- 構建內部加速計算平臺,為 AI 和數據分析提供支持
- 借助 GPU 加速實現表格數據特征工程的最佳實踐
- 借助Accelerated Computing,在行業中構建閃電般快速的Data Science Pipelines
?