0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RAPIDS cuDF将pandas提速近150倍

NVIDIA英伟达企业解决方案 来源:NVIDIA英伟达企业解决方案 2024-11-20 09:52 次阅读

在 NVIDIA GTC 2024 上,NVIDIA 宣布,RAPIDS cuDF 当前已能够为 950 万 pandas 用户带来 GPU 加速,且无需修改代码。

目前,NVIDIA 再次对这一应用进行了更新:现在无需在 Google Colab 中修改代码,即可直接使用 RAPIDS cuDF 为 pandas 提供加速。现在即可尝试在 Colab notebook 中使用这一教程

pandas 是一个灵活且强大的 Python 数据分析和处理程序库,因其是易于使用的 API,已成为数据科学家的首选。但随着数据集规模的扩大,其在仅使用 CPU 的系统中的处理速度和效率方面遇到了挑战。

RAPIDS 是一套开源的 GPU 加速 Python 程序库,旨在改进数据科学和分析工作流。RAPIDS cuDF 是一个 GPU DataFrame 程序库,其提供了一个类似 pandas 的 API,用于加载、过滤和操作数据。cuDF 的早期版本只适用于 GPU 开发工作流程。

去年秋季,RAPIDS 发布了 cuDF 版本。该版本通过开放测试版中统一的 CPU/GPU 用户体验,在不修改代码的情况下将加速计算引入到 pandas 工作流中。在 GTC 2024 上,NVIDIA 宣布在新发布的 RAPIDS v24.02 中正式推出 cuDF 加速 pandas 功能。NVIDIA AI Enterprise 5.0 将在晚些时候支持这一功能。

两个相同的 pandas 工作流在 Jupyter notebook 中并列运行。其中一个使用了仅搭载 CPU 的 pandas,另一个则加载了 cudf.pandas 扩展,以便可以使用 RAPIDS cuDF 加速 pandas。

将统一的 CPU/GPU 体验

引入 pandas 工作流

cuDF 一直使用类似于 pandas 的 API 为用户提供卓越的 DataFrame 程序库性能。但使用 cuDF 有时需要采取变通方法:

对 cuDF 中尚未实现或支持的任何 pandas 功能采取变通方法。

在必须在异构硬件上运行的代码库中,为执行 CPU 和 GPU 设计单独的代码路径。

在与其他 PyData 程序库或专为 pandas 设计的、特定于组织的工具进行交互时,需要手动切换 cuDF 和 pandas。

在 24.02 版本中,除了提供现有的仅 GPU 使用体验外,cuDF 还能在无需更改代码的情况下加速 pandas,以应对这些挑战。

该功能专为数据科学家而设计,旨在即使数据规模增长到千兆字节、性能降低时仍然可以继续使用 pandas。当 cuDF 加速 pandas 时,在可能的情况下操作将在 GPU 上运行,否则将在(使用 pandas 的)CPU 上运行。这实现了统一的 CPU/GPU 体验,为用户自己的 pandas 工作流带来了领先的性能。

随着 GA 版本的发布,cuDF 可提供以下功能:

无需更改代码的加速:只需加载 cuDF Jupyter Notebook 扩展或使用cuDF Python 模块选项。

兼容第三方程序库:pandas 加速器模式与大多数在 pandas 对象上运行的第三方程序库兼容,甚至可以加速这些库中的 pandas 操作。

统一的 CPU/GPU 工作流:使用单一代码路径进行开发、测试和生产运行,不受硬件限制。

如要将 GPU 加速功能引入 Jupyter notebook 中的 pandas 工作流,请加载 cudf.pandas 扩展:

%load_ext cudf.pandas
import pandas as pd

如要在运行 Python 脚本时访问,请使用 cudf.pandas 模块选项:

python -m cudf.pandas script.py

为 pandas 工作流带来顶尖的性能

当数据规模达到千兆字节时,pandas 往往会因为性能较慢而变得在使用过程中面临较多挑战,导致一些数据科学家不得不放弃他们喜爱的 pandas API。有了新的 RAPIDS cuDF,就可以继续将 pandas 作为主要工具使用并获得顶尖的性能。

用户可以通过运行流行的 DuckDB Database-like Ops Benchmark 中的 pandas 部分来了解这一点,该基准测试最初由 H2o.ai 开发。DuckDB 的基准测试方式是将一系列常见分析任务,例如将数据连接在一起或计算每组的统计量作为基准,来比较基于 CPU 的流行 DataFrame 和 SQL 引擎的性能。

在数据量为 5 GB 的情况下,pandas 的性能大幅下降,变得非常慢,仅仅执行一系列连接和高级分组操作就需要数分钟时间。

以往使用 cuDF 代替 pandas 运行此基准测试时,需要更改代码并解决功能缺失的问题。现在,借助 cuDF 的全新 pandas 加速模式,这个问题迎刃而解。用户可以在不改变pandas基准代码的情况下运行该基准测试,而且速度将大幅提升。其中的大部分操作由 GPU 执行,小部分操作由 CPU 执行,保证了工作流的顺利操作。

这样操作所取得的结果非常出色。cuDF 的统一 CPU/GPU 体验无需更改代码,即可将处理时间从原本几分钟缩短至 1 到 2 秒(图 1)。

7ae65380-a016-11ef-93f3-92fbcf53809c.png

图 1.cuDF.pandas 与传统 pandas v2.2 在标准 DuckDB 数据基准测试(5 GB)中的性能比较

硬件:NVIDIA Grace Hopper;CPU:英特尔 Xeon Platinum 8480C|软件:pandas v2.2、RAPIDS cuDF 23.10

结语

pandas 是 Python 生态系统中最流行的 DataFrame 程序库,但它的速度会随着 CPU 上数据量的增加而变慢。

现在只需一条命令,用户就可以在无需更改代码的情况下,使用 cuDF 将加速计算引入到其 pandas 工作流中。根据数据集大小为 5 GB 的分析基准测试结果,处理时间缩短到原来的 150 分之一。

您可参考详细的教程在 Google Colab 上的免费 GPU 环境中试用 cuDF 的 pandas 加速功能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10824

    浏览量

    211086
  • NVIDIA
    +关注

    关注

    14

    文章

    4929

    浏览量

    102787
  • 代码
    +关注

    关注

    30

    文章

    4741

    浏览量

    68319

原文标题:无需更改代码,RAPIDS cuDF 将 pandas 提速近 150 倍

文章出处:【微信号:NVIDIA-Enterprise,微信公众号:NVIDIA英伟达企业解决方案】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Python利用pandas读写Excel文件

    使用pandas模块读取Excel文件可以更为方便和快捷。pandas可以Excel文件读取为一个DataFrame对象,方便进行数据处理和分析。
    的头像 发表于 12-16 11:22 1265次阅读
    Python利用<b class='flag-5'>pandas</b>读写Excel文件

    pandas是什么?

    系列文章目录提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录
    发表于 07-14 07:48

    pandas是什么

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着
    发表于 08-09 07:39

    pandas使用步骤

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结学习内容:学习时间:学习产出:前言一、pandas是什么?二
    发表于 08-10 07:50

    pandas是什么?

    文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言一、pandas是什么?二、使用步骤1.引入库代码如下(示例):import numpy as npimport
    发表于 01-11 07:53

    pandas是什么?

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着
    发表于 01-12 07:53

    pandas怎么使用

    文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库 2.读入数据 总结前言本例子主要进行PMS150G PWM输出测试提示:以下是本篇文章正文内容,下面案例可供参考一、TM2PWM计数器产生PWM波形并通过引脚输出T
    发表于 01-18 09:07

    如何使用RAPIDS和CuPy时加速Gauss 秩变换

    展示如何使用 RAPIDS cuDF 和 Chainer CuPy 实现 GPU 加速的 Gauss 秩变换,并使用 pandas 和 NumPy 替换来实现 100 倍加速 。
    的头像 发表于 04-20 10:37 1562次阅读
    如何使用<b class='flag-5'>RAPIDS</b>和CuPy时加速Gauss 秩变换

    NVIDIA深度学习加速数据科学教材套满足教学需求

      第一个基于 Jupyter 笔记本电脑的实验室之一让学生使用 pandascuDF 直接进入 RAPIDSpandas 是一个建立在 Python 编程语言之上的数据分
    的头像 发表于 04-20 14:49 778次阅读
    NVIDIA深度学习加速数据科学教材套满足教学需求

    如何加速apply函数600的技巧

    虽然目前dask,cudf等包的出现,使得我们的数据处理大大得到了加速,但是并不是每个人都有比较好的gpu,非常多的朋友仍然还在使用pandas工具包,但有时候真的很无奈
    的头像 发表于 05-12 10:14 988次阅读

    使用RAPID cuDF处理时间序列数据的常见步骤

    加速数据分析:使用 RAPID cuDF 进行更快的时间序列分析
    的头像 发表于 07-05 16:30 499次阅读

    如何用基于NVIDIA GPU的RAPIDS cuML实现取代KRR 

    使用 NVIDIA RAPIDS cuML 实现 100 更快的单电池模式预测
    的头像 发表于 07-05 16:30 649次阅读
    如何用基于NVIDIA GPU的<b class='flag-5'>RAPIDS</b> cuML实现取代KRR 

    超强图解Pandas,建议收藏

    Pandas是数据挖掘常见的工具,掌握使用过程中的函数是非常重要的。本文借助可视化的过程,讲解Pandas的各种操作。
    的头像 发表于 08-29 15:15 590次阅读
    超强图解<b class='flag-5'>Pandas</b>,建议收藏

    Python GPU DataFrame库cuDF介绍

    cuDF (Pandas GPU 平替),用于加载、连接、聚合、过滤和其他数据操作。
    的头像 发表于 12-20 15:05 658次阅读
    Python GPU DataFrame库<b class='flag-5'>cuDF</b>介绍

    NVIDIA加速计算引入Polars

    Polars 近日发布了一款由 RAPIDS cuDF 驱动的全新 GPU 引擎,该引擎可将 NVIDIA GPU 上的 Polars 工作流速度最高提速 13 ,使数据科学家仅在一
    的头像 发表于 11-20 10:03 83次阅读
    <b class='flag-5'>将</b>NVIDIA加速计算引入Polars