加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 应用 > 正文

CPU靠边站!使用cuDF在GPU加速Pandas

发布时间:2022-12-06 13:35:02 所属栏目:应用 来源:互联网
导读: 编译:1+1=6
近期原创文章:
???2万字干货:
?????????????
前言
使用Pandas Dataframe执行数千甚至数百万次计算仍然是一项挑战。你不能简单的将数据丢进去,编写Python for循环,然后希望

编译:1+1=6

近期原创文章:

???2万字干货:

?????????????

前言

使用Pandas Dataframe执行数千甚至数百万次计算仍然是一项挑战。你不能简单的将数据丢进去,编写Python for循环,然后希望在合理的时间内处理数据。公众号在此之前的一篇文章专门介绍了一些方法,请点击查看:

尽管如此,即使加速,Pandas仍然只能在CPU上运行。由大家的CPU通常有8个或更少的核,因此达到的加速是有限的。我们的数据集可能有多达数百万、数十亿甚至数万亿个,8核不足以解决这个问题。

幸运的是,随着GPU加速在机器学习领域的成功普及,将数据分析库应用到GPU上有了强大的推动力。cuDF库就是朝这个方向迈出的一步。

相关文章

2、

cuDF

cuDF()是一个基于Python的GPU DataFrame库,用于处理数据,包括加载、连接、聚合和过滤数据。向GPU的转移允许大规模的加速,因为GPU比CPU拥有更多的内核。

cpu应用_服务和控制器应用cpu高_监控应用服务的cpu 内存

cuDF的API是Pandas的一面镜子,在大多数情况下可以直接替代Pandas。这使得数据科学家、分析师和工程师很容易将其集成到他们的工作中。

那么,你所需做的是把你的Pandas DataFrame转换成cuDF。cuDF支持Pandas大多数常见的DataFrame操作,因此无需太多学习成本你就可以加速许多常规的Pandas代码。

我们首先安装库文件:

下面是我们测试电脑的配置参数:

获得GPU加速

我们将加载一个包含随机数的Big数据集,并比较不同Pandas操作的速度与使用cuDF在GPU上执行相同操作的速度。

首先初始化Dataframes:一个用于Pandas,一个用于cuDF。DataFrame有超过1亿个单元格!

import?pandas as?pd
import?numpy as?np
import?cudf

pandas_df = pd.DataFrame({'a': np.random.randint(0, 100000000, size=100000000),
??????????????????????????'b': np.random.randint(0, 100000000, size=100000000)})
??????????????????????????
cudf_df = cudf.DataFrame.from_pandas(pandas_df)

在我们的第一个测试中,让我计算一下 Pandas VS cuDF数据中a变量的平均值需要多长时间。%timeit 命令允许我们在Jupyter计算Python命令的速度。

监控应用服务的cpu 内存_服务和控制器应用cpu高_cpu应用

# Timing Pandas
# Output: 82.2 ms per loop
%timeit pandas_df.a.mean()

# Timing cuDF
# Output: 5.12 ms per loop
%timeit cudf_df.a.mean()

平均运行时间显示在代码注释中。我们得到了将近16倍的加速!

现在,做一些更复杂的事情cpu应用,比如做一个大合并。将Dataframe本身合并到数据Dataframe的b列上。

这里的合并是一个非常大的操作,因为Pandas将不得不寻找并匹配公共值,对于一个有1亿行的数据集来说,这是一个非常耗时的操作!GPU加速将使这变得容易,因为我们有更多的并行进程可以一起工作。

代码:

# Timing Pandas
# Output: 39.2 s per loop
%timeit pandas_df.merge(pandas_df, on='b')

# Timing cuDF
# Output: 2.76 s per loop
%timeit cudf_df.merge(cudf_df, on='b')

即使使用i7-8700k CPU,Pandas完成合并平均也需要39.2秒。而cuDF在GPU上只花了2.76秒。14倍的加速!

快去试试吧!

—End—

量化投资与机器学习微信公众号,是业内垂直于Quant、MFE、CST、AI等专业的主流量化自媒体。公众号拥有来自公募、私募、券商、银行、海外等众多圈内18W+关注者。每日发布行业前沿研究成果和最新量化资讯。

你点的每个“在看”,都是对我们最大的鼓励

预览时标签不可点

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!