重磅cuDF实现150倍pandas性能提升

数据科学界的速度之王诞生了!

Lightning AI的CEO William Falcon 分享了一个令人振奋的消息: 使用RAPIDS cuDF,Pandas操作速度可以提升150倍 !

重磅cuDF实现150倍pandas性能提升-2

这个消息将让数据科学家们兴奋不已。

神奇的cuDF加速

cuDF是一个基于 Apache Arrow列式内存格式 构建的Python GPU DataFrame库,它提供了与Pandas类似的API接口。

令人惊喜的是,它现在提供了 pandas加速器模式 (cudf.pandas),让你 无需修改任何代码 就能享受GPU加速带来的性能提升。

让我们通过一个实际案例来感受这惊人的速度:

# 读取纽约停车违规数据df = pd.read_parquet(    "/tmp/nyc_parking_violations_2022.parquet",    columns=["Registration State", "Violation Description", "Vehicle Body Type", "Issue Date", "Summons Number"])# 随机查看10行数据df.sample(10)

这段简单的数据读取代码在普通Pandas下需要 5.96秒 ,而使用cuDF加速后只需要 1.91秒 !

深入性能对比

我们来看几个常见的数据分析场景:

场景一:按州统计违规类型

(df[["Registration State", "Violation Description"]] .value_counts() .groupby("Registration State") .head(1) .sort_index() .reset_index())

重磅cuDF实现150倍pandas性能提升-3

场景二:统计车型分布

(df .groupby(["Vehicle Body Type"]) .agg({"Summons Number": "count"}) .rename(columns={"Summons Number": "Count"}) .sort_values(["Count"], ascending=False))

重磅cuDF实现150倍pandas性能提升-4

场景三:分析每周违规趋势

weekday_names = {    0: "Monday",    1: "Tuesday",    2: "Wednesday",    3: "Thursday",    4: "Friday",    5: "Saturday",    6: "Sunday",}df["Issue Date"] = df["Issue Date"].astype("datetime64[ms]")df["issue_weekday"] = df["Issue Date"].dt.weekday.map(weekday_names)df.groupby(["issue_weekday"])["Summons Number"].count().sort_values()

重磅cuDF实现150倍pandas性能提升-5

性能对比结果令人震惊:

场景一:从 5.96秒 降至 1.91秒

场景二:从 1.13秒 降至 14.2毫秒

场景三:从 3.93秒 降至 250毫秒

智能性能分析

cuDF还提供了强大的性能分析工具,帮助你了解代码的执行情况:

%%cudf.pandas.profilesmall_df = pd.DataFrame({'a': ["0", "1", "2"], 'b': ["x", "y", "z"]})small_df = pd.concat([small_df, small_df])axis = 0for i in range(0, 2):    small_df.min(axis=axis)    axis = icounts = small_df.groupby("a").b.count()

这个工具可以清晰地显示:

哪些操作在GPU上执行

每个操作的执行时间

CPU和GPU的调用次数

重磅cuDF实现150倍pandas性能提升-6

智能调度机制

cuDF的设计非常巧妙,它采用了 双模式执行策略 :

GPU加速模式 :

数据读取操作

分组统计

排序操作

基础计算

CPU回退模式 :

axis=1的count操作

部分特殊函数

不支持GPU的复杂操作

系统会 自动选择 最优执行方式,完全不需要手动干预。

无缝集成生态

cuDF的强大不仅在于速度,更在于它的生态集成能力:

完全兼容Pandas API

支持主流可视化库 (Plotly、Matplotlib等)

第三方库加速 :其他库内部的Pandas操作也能自动获得GPU加速

动态切换 :可以随时在CPU和GPU模式间切换

一键启用方法

使用cuDF简单得令人发指,只需两步:

安装RAPIDS cuDF

加载扩展 :

%load_ext cudf.pandas

之后所有的Pandas代码都会自动获得GPU加速, 完全不需要修改任何现有代码 !

Lightning AI已经提供了完整的测试环境,你可以在配备L4 GPU的环境中直接体验这惊人的速度提升。

相关链接

版权声明:
作者:shadowrocket
链接:https://www.shadowrocket8.top/105.html
来源:Shadowrocket官网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>