合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
NVIDIA的RAPIDS cuDF是一个Python GPU DataFrame库,可用于加载、连接、聚合、过滤以及其他数据处理操作。cuDF基于libcudf这一非常高效的C++/CUDA dataframe库,以Apache Arrow的列式存储,并且提供了一个GPU加速的Pandas API,依赖于NVIDIA CUDA进行低级计算优化,从而可充分利用GPU并行性和高带宽内存速度。如下图所示。
同时,cuDF包含一个“零代码修改”的Pandas加速器(cudf.pandas),可在GPU上执行Pandas代码,支持类似于Pandas的API,并且可以在需要时自动切换到CPU上的pandas执行其它操作。
总而言之,cuDF比较好的一个使用场景就是「代替并行」,在Pandas处理比较慢的时候,切换到cuDF,就不用写繁琐的并行了。
如下所示是一段使用cuDF加速Pandas API进行数据处理操作的示例代码。
%load_ext cudf.pandas # 启用Pandas API的GPU加速功能
import pandas as pd
"""
在GPU上对列进行数学运算、分组计算以及滚动求和操作,利用GPU加速
"""
df = pd.read_csv("/path/to/file")
df["col_a"] = df["col_b"] * 100
df.groupby("col_a").mean()
df.rolling(window=3).sum()
"""
这是一个cuDF不支持的操作,会自动切换到CPU执行
"""
df.apply(set, axis=1)
TOP