0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RAPIDS cuDF將pandas提速近150倍

NVIDIA英偉達(dá)企業(yè)解決方案 ? 來(lái)源:NVIDIA英偉達(dá)企業(yè)解決方案 ? 2024-11-20 09:52 ? 次閱讀

在 NVIDIA GTC 2024 上,NVIDIA 宣布,RAPIDS cuDF 當(dāng)前已能夠?yàn)?950 萬(wàn) pandas 用戶帶來(lái) GPU 加速,且無(wú)需修改代碼。

目前,NVIDIA 再次對(duì)這一應(yīng)用進(jìn)行了更新:現(xiàn)在無(wú)需在 Google Colab 中修改代碼,即可直接使用 RAPIDS cuDF 為 pandas 提供加速。現(xiàn)在即可嘗試在 Colab notebook 中使用這一教程

pandas 是一個(gè)靈活且強(qiáng)大的 Python 數(shù)據(jù)分析和處理程序庫(kù),因其是易于使用的 API,已成為數(shù)據(jù)科學(xué)家的首選。但隨著數(shù)據(jù)集規(guī)模的擴(kuò)大,其在僅使用 CPU 的系統(tǒng)中的處理速度和效率方面遇到了挑戰(zhàn)。

RAPIDS 是一套開(kāi)源的 GPU 加速 Python 程序庫(kù),旨在改進(jìn)數(shù)據(jù)科學(xué)和分析工作流。RAPIDS cuDF 是一個(gè) GPU DataFrame 程序庫(kù),其提供了一個(gè)類似 pandas 的 API,用于加載、過(guò)濾和操作數(shù)據(jù)。cuDF 的早期版本只適用于 GPU 開(kāi)發(fā)工作流程。

去年秋季,RAPIDS 發(fā)布了 cuDF 版本。該版本通過(guò)開(kāi)放測(cè)試版中統(tǒng)一的 CPU/GPU 用戶體驗(yàn),在不修改代碼的情況下將加速計(jì)算引入到 pandas 工作流中。在 GTC 2024 上,NVIDIA 宣布在新發(fā)布的 RAPIDS v24.02 中正式推出 cuDF 加速 pandas 功能。NVIDIA AI Enterprise 5.0 將在晚些時(shí)候支持這一功能。

兩個(gè)相同的 pandas 工作流在 Jupyter notebook 中并列運(yùn)行。其中一個(gè)使用了僅搭載 CPU 的 pandas,另一個(gè)則加載了 cudf.pandas 擴(kuò)展,以便可以使用 RAPIDS cuDF 加速 pandas。

將統(tǒng)一的 CPU/GPU 體驗(yàn)

引入 pandas 工作流

cuDF 一直使用類似于 pandas 的 API 為用戶提供卓越的 DataFrame 程序庫(kù)性能。但使用 cuDF 有時(shí)需要采取變通方法:

對(duì) cuDF 中尚未實(shí)現(xiàn)或支持的任何 pandas 功能采取變通方法。

在必須在異構(gòu)硬件上運(yùn)行的代碼庫(kù)中,為執(zhí)行 CPU 和 GPU 設(shè)計(jì)單獨(dú)的代碼路徑。

在與其他 PyData 程序庫(kù)或?qū)?pandas 設(shè)計(jì)的、特定于組織的工具進(jìn)行交互時(shí),需要手動(dòng)切換 cuDF 和 pandas。

在 24.02 版本中,除了提供現(xiàn)有的僅 GPU 使用體驗(yàn)外,cuDF 還能在無(wú)需更改代碼的情況下加速 pandas,以應(yīng)對(duì)這些挑戰(zhàn)。

該功能專為數(shù)據(jù)科學(xué)家而設(shè)計(jì),旨在即使數(shù)據(jù)規(guī)模增長(zhǎng)到千兆字節(jié)、性能降低時(shí)仍然可以繼續(xù)使用 pandas。當(dāng) cuDF 加速 pandas 時(shí),在可能的情況下操作將在 GPU 上運(yùn)行,否則將在(使用 pandas 的)CPU 上運(yùn)行。這實(shí)現(xiàn)了統(tǒng)一的 CPU/GPU 體驗(yàn),為用戶自己的 pandas 工作流帶來(lái)了領(lǐng)先的性能。

隨著 GA 版本的發(fā)布,cuDF 可提供以下功能:

無(wú)需更改代碼的加速:只需加載 cuDF Jupyter Notebook 擴(kuò)展或使用cuDF Python 模塊選項(xiàng)。

兼容第三方程序庫(kù):pandas 加速器模式與大多數(shù)在 pandas 對(duì)象上運(yùn)行的第三方程序庫(kù)兼容,甚至可以加速這些庫(kù)中的 pandas 操作。

統(tǒng)一的 CPU/GPU 工作流:使用單一代碼路徑進(jìn)行開(kāi)發(fā)、測(cè)試和生產(chǎn)運(yùn)行,不受硬件限制。

如要將 GPU 加速功能引入 Jupyter notebook 中的 pandas 工作流,請(qǐng)加載 cudf.pandas 擴(kuò)展:

%load_ext cudf.pandas
import pandas as pd

如要在運(yùn)行 Python 腳本時(shí)訪問(wèn),請(qǐng)使用 cudf.pandas 模塊選項(xiàng):

python -m cudf.pandas script.py

為 pandas 工作流帶來(lái)頂尖的性能

當(dāng)數(shù)據(jù)規(guī)模達(dá)到千兆字節(jié)時(shí),pandas 往往會(huì)因?yàn)樾阅茌^慢而變得在使用過(guò)程中面臨較多挑戰(zhàn),導(dǎo)致一些數(shù)據(jù)科學(xué)家不得不放棄他們喜愛(ài)的 pandas API。有了新的 RAPIDS cuDF,就可以繼續(xù)將 pandas 作為主要工具使用并獲得頂尖的性能。

用戶可以通過(guò)運(yùn)行流行的 DuckDB Database-like Ops Benchmark 中的 pandas 部分來(lái)了解這一點(diǎn),該基準(zhǔn)測(cè)試最初由 H2o.ai 開(kāi)發(fā)。DuckDB 的基準(zhǔn)測(cè)試方式是將一系列常見(jiàn)分析任務(wù),例如將數(shù)據(jù)連接在一起或計(jì)算每組的統(tǒng)計(jì)量作為基準(zhǔn),來(lái)比較基于 CPU 的流行 DataFrame 和 SQL 引擎的性能。

在數(shù)據(jù)量為 5 GB 的情況下,pandas 的性能大幅下降,變得非常慢,僅僅執(zhí)行一系列連接和高級(jí)分組操作就需要數(shù)分鐘時(shí)間。

以往使用 cuDF 代替 pandas 運(yùn)行此基準(zhǔn)測(cè)試時(shí),需要更改代碼并解決功能缺失的問(wèn)題?,F(xiàn)在,借助 cuDF 的全新 pandas 加速模式,這個(gè)問(wèn)題迎刃而解。用戶可以在不改變pandas基準(zhǔn)代碼的情況下運(yùn)行該基準(zhǔn)測(cè)試,而且速度將大幅提升。其中的大部分操作由 GPU 執(zhí)行,小部分操作由 CPU 執(zhí)行,保證了工作流的順利操作。

這樣操作所取得的結(jié)果非常出色。cuDF 的統(tǒng)一 CPU/GPU 體驗(yàn)無(wú)需更改代碼,即可將處理時(shí)間從原本幾分鐘縮短至 1 到 2 秒(圖 1)。

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

圖 1.cuDF.pandas 與傳統(tǒng) pandas v2.2 在標(biāo)準(zhǔn) DuckDB 數(shù)據(jù)基準(zhǔn)測(cè)試(5 GB)中的性能比較

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

結(jié)語(yǔ)

pandas 是 Python 生態(tài)系統(tǒng)中最流行的 DataFrame 程序庫(kù),但它的速度會(huì)隨著 CPU 上數(shù)據(jù)量的增加而變慢。

現(xiàn)在只需一條命令,用戶就可以在無(wú)需更改代碼的情況下,使用 cuDF 將加速計(jì)算引入到其 pandas 工作流中。根據(jù)數(shù)據(jù)集大小為 5 GB 的分析基準(zhǔn)測(cè)試結(jié)果,處理時(shí)間縮短到原來(lái)的 150 分之一。

您可參考詳細(xì)的教程在 Google Colab 上的免費(fèi) GPU 環(huán)境中試用 cuDF 的 pandas 加速功能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10863

    瀏覽量

    211743
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    4986

    瀏覽量

    103044
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68602

原文標(biāo)題:無(wú)需更改代碼,RAPIDS cuDF 將 pandas 提速近 150 倍

文章出處:【微信號(hào):NVIDIA-Enterprise,微信公眾號(hào):NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Python利用pandas讀寫Excel文件

    使用pandas模塊讀取Excel文件可以更為方便和快捷。pandas可以Excel文件讀取為一個(gè)DataFrame對(duì)象,方便進(jìn)行數(shù)據(jù)處理和分析。
    的頭像 發(fā)表于 12-16 11:22 ?1350次閱讀
    Python利用<b class='flag-5'>pandas</b>讀寫Excel文件

    pandas是什么?

    系列文章目錄提示:寫完文章后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔文章目錄系列文章目錄前言一、pandas是什么?二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)前言提示:這里可以添加本文要記錄
    發(fā)表于 07-14 07:48

    pandas是什么

    提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔文章目錄前言一、pandas是什么?二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)前言提示:這里可以添加本文要記錄的大概內(nèi)容:例如:隨著
    發(fā)表于 08-09 07:39

    pandas使用步驟

    提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔文章目錄前言一、pandas是什么?二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)學(xué)習(xí)內(nèi)容:學(xué)習(xí)時(shí)間:學(xué)習(xí)產(chǎn)出:前言一、pandas是什么?二
    發(fā)表于 08-10 07:50

    pandas是什么?

    文章目錄前言一、pandas是什么?二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)前言一、pandas是什么?二、使用步驟1.引入庫(kù)代碼如下(示例):import numpy as npimport
    發(fā)表于 01-11 07:53

    pandas是什么?

    提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔文章目錄前言一、pandas是什么?二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)前言提示:這里可以添加本文要記錄的大概內(nèi)容:例如:隨著
    發(fā)表于 01-12 07:53

    pandas怎么使用

    文檔文章目錄系列文章目錄前言一、pandas是什么?二、使用步驟1.引入庫(kù) 2.讀入數(shù)據(jù) 總結(jié)前言本例子主要進(jìn)行PMS150G PWM輸出測(cè)試提示:以下是本篇文章正文內(nèi)容,下面案例可供參考一、TM2PWM計(jì)數(shù)器產(chǎn)生PWM波形并通過(guò)引腳輸出T
    發(fā)表于 01-18 09:07

    如何使用RAPIDS和CuPy時(shí)加速Gauss 秩變換

    展示如何使用 RAPIDS cuDF 和 Chainer CuPy 實(shí)現(xiàn) GPU 加速的 Gauss 秩變換,并使用 pandas 和 NumPy 替換來(lái)實(shí)現(xiàn) 100 倍加速 。
    的頭像 發(fā)表于 04-20 10:37 ?1628次閱讀
    如何使用<b class='flag-5'>RAPIDS</b>和CuPy時(shí)加速Gauss 秩變換

    NVIDIA深度學(xué)習(xí)加速數(shù)據(jù)科學(xué)教材套滿足教學(xué)需求

      第一個(gè)基于 Jupyter 筆記本電腦的實(shí)驗(yàn)室之一讓學(xué)生使用 pandascuDF 直接進(jìn)入 RAPIDSpandas 是一個(gè)建立在 Python 編程語(yǔ)言之上的數(shù)據(jù)分
    的頭像 發(fā)表于 04-20 14:49 ?796次閱讀
    NVIDIA深度學(xué)習(xí)加速數(shù)據(jù)科學(xué)教材套滿足教學(xué)需求

    如何加速apply函數(shù)600的技巧

    雖然目前dask,cudf等包的出現(xiàn),使得我們的數(shù)據(jù)處理大大得到了加速,但是并不是每個(gè)人都有比較好的gpu,非常多的朋友仍然還在使用pandas工具包,但有時(shí)候真的很無(wú)奈
    的頭像 發(fā)表于 05-12 10:14 ?1011次閱讀

    使用RAPID cuDF處理時(shí)間序列數(shù)據(jù)的常見(jiàn)步驟

    加速數(shù)據(jù)分析:使用 RAPID cuDF 進(jìn)行更快的時(shí)間序列分析
    的頭像 發(fā)表于 07-05 16:30 ?522次閱讀

    如何用基于NVIDIA GPU的RAPIDS cuML實(shí)現(xiàn)取代KRR?

    使用 NVIDIA RAPIDS cuML 實(shí)現(xiàn) 100 更快的單電池模式預(yù)測(cè)
    的頭像 發(fā)表于 07-05 16:30 ?692次閱讀
    如何用基于NVIDIA GPU的<b class='flag-5'>RAPIDS</b> cuML實(shí)現(xiàn)取代KRR?

    超強(qiáng)圖解Pandas,建議收藏

    Pandas是數(shù)據(jù)挖掘常見(jiàn)的工具,掌握使用過(guò)程中的函數(shù)是非常重要的。本文借助可視化的過(guò)程,講解Pandas的各種操作。
    的頭像 發(fā)表于 08-29 15:15 ?627次閱讀
    超強(qiáng)圖解<b class='flag-5'>Pandas</b>,建議收藏

    Python GPU DataFrame庫(kù)cuDF介紹

    cuDF (Pandas GPU 平替),用于加載、連接、聚合、過(guò)濾和其他數(shù)據(jù)操作。
    的頭像 發(fā)表于 12-20 15:05 ?705次閱讀
    Python GPU DataFrame庫(kù)<b class='flag-5'>cuDF</b>介紹

    NVIDIA加速計(jì)算引入Polars

    Polars 近日發(fā)布了一款由 RAPIDS cuDF 驅(qū)動(dòng)的全新 GPU 引擎,該引擎可將 NVIDIA GPU 上的 Polars 工作流速度最高提速 13 ,使數(shù)據(jù)科學(xué)家僅在一
    的頭像 發(fā)表于 11-20 10:03 ?202次閱讀
    <b class='flag-5'>將</b>NVIDIA加速計(jì)算引入Polars