国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Spark基于DPU Snappy壓縮算法的異構加速方案

中科馭數 ? 來源:中科馭數 ? 作者:中科馭數 ? 2024-03-26 17:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、總體介紹

1.1 背景介紹

Apache Spark是專為大規模數據計算而設計的快速通用的計算引擎,是一種與 Hadoop 相似的開源集群計算環境,但是兩者之間還存在一些不同之處,這些不同之處使 Spark 在某些工作負載方面表現得更加優越。換句話說,Spark 啟用了內存分布數據集,除了能夠提供交互式查詢外,它還可以優化迭代工作負載。Spark SQL是Spark的計算模塊之一,專門用于處理結構化的數據。Spark SQL允許用戶使用標準的SQL語句來執行SQL的查詢和讀寫,也可以使用Hive SQL來執行對Hive倉庫的查詢和讀寫。

在Spark作業中,數據通常在內存中進行計算和操作,并且通過網絡進行節點間的數據傳輸。Snappy壓縮算法已經被廣泛應用于各種大數據處理框架中,并且通常是默認的壓縮選項。在Spark系統中,用戶無需額外的配置即可使用Snappy壓縮算法,這使得它成為Spark處理數據的首選壓縮方式之一。

Snappy壓縮算法是一種同時具備非常高的壓縮速度,和較為合理的壓縮率的壓縮算法。Snappy壓縮具有速度快、占用內存小、通用性強的優點,被廣泛應用于大規模數據處理、網絡傳輸、數據庫存儲、機器學習、圖像處理等多個領域。

目前使用Snappy算法進行壓縮解壓縮的場景全部基于CPU進行,CPU除了需要維持整個計算場景的數據調度,還需要額外的算力進行壓縮解壓縮計算。CPU作為通用處理芯片,在大數據高密集型的數據計算上并無明顯優勢,這使得大部分應用場景下基于CPU運算時計算算力成為性能的主要瓶頸。

中科馭數自研的基于KPU架構的DPU芯片作為專用的數據處理芯片,在處理復雜的數據計算時相比于CPU擁有極高的性能提升。因此將Snappy壓縮解壓縮算法由CPU卸載到DPU,可以極大的提升計算性能。在復雜場景下,CPU專注于數據傳遞和計算任務調度,DPU專注于壓縮解壓縮計算。

中科馭數HADOS是一款敏捷異構軟件平臺,能夠為網絡、存儲、安全、大數據計算等場景進行提速。對于大數據計算場景,HADOS可以認為是一個異構執行庫,提供了數據類型、向量數據結構、表達式計算、IO和資源管理等功能。為了發揮CPU與DPU各自的性能優勢,我們開發了HADOS-RACE項目,結合HADOS平臺,既能夠發揮CPU高速穩定的計算調度能力,又可以發揮DPU的向量化執行能力。

我們通過實驗發現,Spark讀數據的解壓和寫數據的壓縮過程,在耗時上占比比較高,將Snappy壓縮解壓縮的計算任務通過HADOS-RACE卸載到DPU上, 相比于純CPU計算,性能可提升約2倍。

本文將簡單介紹基于DPU的Snappy壓縮解壓縮計算原理,并介紹如何基于DPU和HADOS-RACE來加速Snappy壓縮解壓縮計算,為大規模數據分析和處理提供更可靠的解決方案。

1.2 挑戰和困難

在數據處理和傳輸的領域,快速且高效的壓縮算法對于提高系統性能至關重要。然而,盡管Snappy壓縮解壓縮算法以其快速的壓縮和解壓縮速度而聞名,但其卻存在一個不容忽視的挑戰,即對CPU和內存資源的大量占用,從而導致性能下降的問題。

Snappy算法在壓縮和解壓縮數據時需要進行復雜的計算和處理。雖然它以其高效的算法設計和優化而著稱,但在處理大量數據時,仍會對CPU提出較高的要求。特別是在需要快速壓縮或解壓縮大文件時,Snappy算法的CPU消耗可能會變得更為顯著,從而導致系統整體性能的下降。對于CPU性能較低的系統而言,這一挑戰尤為嚴峻,可能導致系統響應變慢,甚至造成任務阻塞和性能瓶頸。

綜上所述,Snappy壓縮解壓縮算法的高效性和速度帶來了性能優勢,但其對CPU的大量占用也成為其性能低下的一個主要挑戰。

二、整體方案

wKgZomYBSXOAHfkiAAL8llhFqoo690.png

圖一:Spark基于DPU Snappy壓縮算法的異構加速整體方案

上圖所示為Spark SQL的一個涉及FileScan、Shuffle、Aggregate、OrderBy計算的完整數據流轉過程,Spark SQL的數據處理首先需要讀取HDFS分布式文件存儲系統中的Snappy壓縮文件,然后會對Snappy壓縮文件進行解壓縮處理,從而得到計算所需的數據。拿到數據后根據SQL的邏輯進行相應的計算,常見的計算比如Filter、Aggregate、Join、Order By等,經過數據計算拿到想要輸出的結果數據。最后會將結果數據寫出并按Snappy格式進行壓縮,得到的壓縮文件會寫回到HDFS中存儲。

wKgZomYBSXyAXBo_AAIEkJgmW6w137.png

圖二:基于DPU的算子卸載加速流程

上圖所示為Spark將算子卸載到DPU進行計算的一個通用流程。首先Spark將SQL進行解析并得到最終的物理執行計劃,然后將物理執行計劃轉化為具體的算子操作,Spark會通過HADOS-RACE Plugin將具體算子卸載到DPU進行處理。在DPU處理過程中,首先需要執行FileScan算子,將數據從HDFS文件系統中讀取出來并對Snappy壓縮文件執行解壓縮操作。中間過程是對解壓縮的數據進行計算,得到最終的結果數據。最后會將結果數據按Snappy格式壓縮并導出到HDFS中存儲。

在對整個Spark計算過程進行性能分析后,發現Snappy壓縮和解壓縮是兩個耗時非常高的過程,占整個計算過程的比重較高。因此我們需要對Snappy的壓縮和解壓縮過程進行加速。

我們采用軟硬件結合的方式,在數據壓縮解壓縮鏈路的軟硬件兩大方面都進行了全面提升和加速。

在軟件方面,基于硬件對不同場景、數據量的壓縮解壓縮表現,HADOS-RACE可以靈活選擇合適的壓縮、解壓縮的硬件平臺。

在硬件方面,自研的DPU計算引擎擁有強大的Snappy壓縮、解壓縮能力,滿足日益復雜的計算場景。

三、核心加速階段

wKgZomYBPGqASeG_AACwef-WNkE680.png

圖三:基于DPU的整體加速流程圖

加速階段如上圖所示,核心數據加速方案分為兩個階段,分別為 1.智能壓縮解壓縮策略選擇階段;2.對數據壓縮解壓縮階段。

3.1 策略選擇階段

3.1.1 面臨挑戰

在數據壓縮解壓縮過程中,壓縮解壓縮策略選擇階段是整個過程的開始。傳統的硬件體系結構中,數據的壓縮和解壓縮過程通常只能依賴CPU完成,沒有其他策略可以選擇,從而無法利用GPU、DPU等其他處理器資源。這種局限性導致數據壓縮解壓縮過程會大量占用CPU資源,從而降低系統的性能。

3.1.2 解決方案與原理

近年來,隨著數據處理領域的不斷發展和硬件技術的進步,DPU、GPU等計算資源的加入為數據壓縮解壓縮帶來了新的可能性。這些不同的硬件平臺具有各自獨特的特點和優勢,可以根據不同的場景和需求來選擇合適的硬件平臺進行數據壓縮解壓縮。

HADOS-RACE的IO模塊負責將數據從硬盤讀入內存中,并將其交由Compressor模塊進行卸載策略判斷。通過IO模塊的數據加載過程,系統能夠根據數據的特點和硬件平臺的性能選擇合適的壓縮解壓縮策略,從而實現數據處理的優化和提升。

在HADOS-RACE中,基于硬件對不同場景、數據量的性能表現,可以靈活配置壓縮解壓縮策略。例如,當數據量比較小的時候,可以直接通過CPU進行壓縮解壓縮,減少了內存和DPU硬件之間的數據傳輸,從而提高了系統的性能和效率。而對于大規模數據處理的場景,可以利用DPU等硬件資源進行并行計算,加速數據的處理速度。

3.1.3 優勢與效果

HADOS-RACE的智能策略選擇模塊在數據加載過程中發揮了重要作用,通過分析數據的特征和硬件平臺的性能,實現了對壓縮解壓縮策略的選擇。這種靈活配置的策略不僅提高了數據處理的效率,也降低了系統的資源消耗,為數據處理和應用提供了更好的支持。

我們可以根據一定的策略選擇合適的硬件平臺來進行數據壓縮解壓縮,從而實現數據壓縮解壓縮的優化和提升。這為未來的數據壓縮解壓縮領域的發展帶來了新的機遇和挑戰,也為用戶提供了更加靈活和高效的數據壓縮解壓縮方案。

3.2 壓縮解壓縮階段

3.2.1 面臨挑戰

由于CPU在數據處理方面具有較強的通用性和靈活性,因此壓縮解壓縮算法通常被設計為在CPU上執行。然而,與DPU相比,CPU的并行處理能力相對較弱,無法充分發揮硬件資源的潛力。在大規模數據處理的場景下,數據壓縮解壓縮過程可能成為CPU的瓶頸,導致系統性能下降。此外,由于數據壓縮解壓縮是一個計算密集型任務,當系統中同時存在其他需要CPU資源的任務時,壓縮解壓縮過程可能會與其他任務產生競爭,進一步加劇了CPU資源的緊張程度,導致系統整體的響應速度變慢。

3.2.2 解決方案與原理

在傳統的硬件體系結構中,數據的壓縮和解壓縮過程通常只能依賴CPU完成。然而,隨著芯片技術的不斷發展和創新,現代計算機系統已經實現了DPU等計算資源的利用,從而在數據處理領域帶來了革命性的變化。DPU的并行計算能力遠遠超過CPU,使得它成為處理大規模數據的理想選擇。近年來,隨著DPU技術的日益成熟和運用,數據壓縮解壓縮過程已經可以借助DPU來執行,從而大大減少了對CPU資源的占用,提升了系統的性能和效率。

隨著DPU芯片技術的不斷發展和成熟,DPU已經成為了處理大規模數據的強大工具。DPU的并行計算能力遠遠超過CPU,能夠同時處理大量數據,極大地加快了數據處理的速度。因此,現在可以利用DPU來執行數據的壓縮和解壓縮過程,從而減少了對CPU資源的占用,提升了系統的性能和效率。

3.2.3 優勢與效果

DPU在數據壓縮解壓縮中的應用,主要體現在以下幾個方面:

首先,DPU能夠同時處理多個數據塊,實現真正的并行計算。在數據壓縮解壓縮過程中,可以將大規模數據劃分成多個小塊,然后通過DPU同時對這些數據塊進行壓縮或解壓縮,極大地提高了處理速度。

此外,DPU的計算能力可以輕松處理大規模數據,從而滿足了現代大數據處理的需求。可以利用DPU來執行數據的壓縮和解壓縮過程,從而提高系統的性能和效率。

綜上所述,利用DPU進行數據壓縮解壓縮等算力的卸載,已經成為了計算機系統的重要趨勢。通過充分利用DPU的并行計算能力和卡上內存,可以大大減少對CPU資源的占用,提升系統的性能和效率。相信在未來的snappy數據壓縮解壓縮領域,DPU將會發揮越來越重要的作用。

四、加速效果

基于目前HADOS-RACE已經實現的Snappy壓縮解壓縮方案,制定了對應的性能測試計劃。首先生成snappy測試數據,使用基于CPU和DPU的Spark分別對數據進行處理,記錄各自的Snappy壓縮解壓縮階段和Spark整體端到端的耗時和吞吐。執行的測試語句為:select * from table where a1 is not null and a2 is not null(盡量減少中間的計算過程,突出Snappy壓縮解壓縮的過程)。

4.1 壓縮解壓縮加速效果

單獨分析Snappy壓縮解壓縮階段,基于CPU的Snappy解壓縮,吞吐量為300MB/s。而將解壓縮任務卸載到DPU后,DPU核內計算的吞吐量可達到1585MB/s。可以看到,基于DPU進行Snappy解壓縮,相比基于CPU進行Snappy解壓縮,性能可提升約5倍。

對于系統整體而言,壓縮解壓縮計算的輸入數據和輸出數據,如果需要傳輸到CPU繼續做計算,則有額外的PCIe數據傳輸的時間損耗,由于不同的數據量及壓縮比帶來的整體效果差別較大,所以以下測試數據僅供參考。表格中的DPU數據均為結合PCIe傳輸消耗的結果。壓縮前的數據量均為128MB,但是由于數據內容不同導致壓縮比不同,進而導致吞吐的不同,從以下測試結果中可以看出,壓縮率越大,計算占比越高,DPU表現的越好。

wKgZomYBPGqAcheIAAYJKGS7Rw4671.png

圖四:基于DPU的Snappy壓縮解壓縮方案測試結果

4.2 端到端整體加速效果

基于CPU的Spark計算過程總體比基于DPU的Spark計算過程耗時減少了約50%。相當于基于DPU的端到端執行性能是基于CPU端到端性能的兩倍。詳細測試結果如下所示:

wKgaomYBPO6AAc02AAAPYGODK1c600.png

圖五:基于DPU加速的端到端方案測試結果

4.3 結果分析

從測試結果中可以看到,在壓縮率約為50%至70%時,基于DPU進行Snappy解壓縮相比基于CPU進行Snappy解壓縮,性能有1.1至1.5倍提升,其他情況下解壓縮性能均有下降。造成這一現象的原因是,此次測試沒有對DPU進行流程優化,從主機向DPU板卡傳輸數據時,DPU并沒有并發執行計算任務。DPU的計算流程還有著極大的優化空間,優化后,DPU中的計算任務可以以流水線的形式進行調度,則數據傳輸過程將不會占用整體計算時間。

從Spark整個執行過程來看,基于DPU的Spark計算過程總體比基于CPU的Spark計算過程有2倍的性能提升。單獨從Snappy壓縮解壓縮階段看,在壓縮率20%至100%之間,基于DPU的Snappy解壓縮,相比于基于CPU的Snappy解壓縮,性能上可以有1.5至5倍的性能提升。

五、未來規劃

5.1 現有優勢

性能方面,得益于DPU做算力卸載的高效性和智能策略選擇算法,相對于傳統壓縮解壓縮方式,基于DPU進行snappy壓縮解壓縮具備較為明顯的性能優勢。

資源占用方面,得益于將CPU的計算卸載到DPU上執行,服務器的CPU、內存、IO和網絡資源占用等方面都有明顯降低。特別是CPU資源,可以將壓縮解壓縮卸載到DPU的同時完成其他數據計算處理任務。

5.2 未來規劃

優化和完善現有功能,繼續增加其他算力的卸載。

未來計劃在存算分離場景下適配snappy壓縮解壓縮功能。從遠端讀取數據后,首先數據會直接經過壓縮或解壓縮計算,從DPU卡出來的數據已經是經過壓縮解壓縮的,無需多余的數據傳輸和計算。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 算法
    +關注

    關注

    23

    文章

    4764

    瀏覽量

    97308
  • SQL
    SQL
    +關注

    關注

    1

    文章

    789

    瀏覽量

    46412
  • DPU
    DPU
    +關注

    關注

    0

    文章

    408

    瀏覽量

    26317
  • SPARK
    +關注

    關注

    1

    文章

    108

    瀏覽量

    21121
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何在DGX Spark上運行NVIDIA Omniverse

    首先感謝 Vigor 同學第一時間的分享,以下是具體如何在 DGX Spark 上運行 Omniverse 的方法。
    的頭像 發表于 12-17 10:13 ?144次閱讀
    如何在DGX <b class='flag-5'>Spark</b>上運行NVIDIA Omniverse

    電能質量在線監測裝置支持哪些數據壓縮算法

    電能質量在線監測裝置支持 無損壓縮 和 有損壓縮 兩大類算法,適配不同數據類型(實時數據、歷史數據、波形數據)與應用場景(存儲 / 傳輸 / 故障追溯),且在基礎型、增強型、電網級裝置中支持力度逐步
    的頭像 發表于 12-12 14:08 ?199次閱讀
    電能質量在線監測裝置支持哪些數據<b class='flag-5'>壓縮</b><b class='flag-5'>算法</b>?

    NVIDIA在ISC 2025分享最新超級計算進展

    從 NVIDIA DGX Spark 到 NVIDIA BlueField-4 DPU,新一代網絡和量子技術實現了飛躍。在 SC25 上展示的加速系統突顯了全球超級計算和 AI 的進展。
    的頭像 發表于 11-25 10:59 ?578次閱讀
    NVIDIA在ISC 2025分享最新超級計算進展

    NVIDIA DGX Spark快速入門指南

    NVIDIA DGX Spark 已正式向 AI 開發者交付,對于剛入手的全新 DGX Spark,該如何進行初始化設置?本篇文章將引導您完成 DGX Spark 首次設置。在初始設置的過程中,您
    的頭像 發表于 11-17 14:11 ?4754次閱讀
    NVIDIA DGX <b class='flag-5'>Spark</b>快速入門指南

    NVIDIA推出全新BlueField-4 DPU

    全新 NVIDIA BlueField DPU 具有 800Gb/s 的吞吐量,其集成的 NVIDIA ConnectX-9 SuperNIC 和 NVIDIA DOCA 微服務為 AI 數據存儲、網絡和安全帶來突破性的加速
    的頭像 發表于 11-03 14:48 ?661次閱讀

    NVIDIA DGX Spark桌面AI計算機開啟預訂

    DGX Spark 現已開啟預訂!麗臺科技作為 NVIDIA 授權分銷商,提供從產品到服務的一站式解決方案,助力輕松部署桌面 AI 計算機。
    的頭像 發表于 09-23 17:20 ?981次閱讀
    NVIDIA DGX <b class='flag-5'>Spark</b>桌面AI計算機開啟預訂

    基于NVIDIA BlueField DPU的5G UPF數據面加速方案

    在第三屆 NVIDIA DPU 黑客松競賽中,我們見證了開發者與 NVIDIA 網絡技術的深度碰撞。在 23 支參賽隊伍中,有 5 支隊伍脫穎而出,展現了在 AI 網絡、存儲和安全等領域的創新突破。
    的頭像 發表于 09-04 11:26 ?944次閱讀

    商湯大裝置發布基于DeepLink的異構混合調度方案

    日前,在2025世界人工智能大會(WAIC)期間,商湯大裝置發布基于DeepLink的異構混合調度方案,將DeepLink深度融入商湯大裝置核心能力體系。該方案針對當前國產算力資源碎片化、異構
    的頭像 發表于 08-05 10:01 ?908次閱讀

    基于FPGA的壓縮算法加速實現

    本設計中,計劃實現對文件的壓縮及解壓,同時優化壓縮中所涉及的信號處理和計算密集型功能,實現對其的加速處理。本設計的最終目標是證明在充分并行化的硬件體系結構 FPGA 上實現該算法時,可
    的頭像 發表于 07-10 11:09 ?2133次閱讀
    基于FPGA的<b class='flag-5'>壓縮</b><b class='flag-5'>算法</b><b class='flag-5'>加速</b>實現

    第三屆NVIDIA DPU黑客松開啟報名

    第三屆 NVIDIA DPU 中國虛擬黑客松(Hackathon)將于 6 月 28 日 - 6 月 30 日正式開啟!作為備受廣大開發者期待的年度賽事,它將提供與 NVIDIA 加速網絡技術深度
    的頭像 發表于 05-27 10:16 ?768次閱讀

    DPU232—高度集成USB到UART橋接控制器 國產替代方案

    DPU232是一款高度集成的USB到UART橋接控制器,提供了一種簡單的解決方案,可以使用最少的元器件和PCB空間,將RS232接口轉換為USB接口。DPU232包括一個USB2.0全速功能控制器
    發表于 04-01 10:53

    NVIDIA加速的Apache Spark助力企業節省大量成本

    隨著 NVIDIA 推出 Aether 項目,通過采用 NVIDIA 加速的 Apache Spark 企業得以自動加速其數據中心規模的分析工作負載,從而節省數百萬美元。
    的頭像 發表于 03-25 15:09 ?938次閱讀
    NVIDIA<b class='flag-5'>加速</b>的Apache <b class='flag-5'>Spark</b>助力企業節省大量成本

    利用NVIDIA DPF引領DPU加速云計算的未來

    DPU 的強大功能,并優化 GPU 加速計算平臺。作為一種編排框架和實施藍圖,DPF 使開發者、服務提供商和企業能夠無縫構建 BlueField 加速的云原生軟件平臺。
    的頭像 發表于 01-24 09:29 ?1328次閱讀
    利用NVIDIA DPF引領<b class='flag-5'>DPU</b><b class='flag-5'>加速</b>云計算的未來

    算法加速的概念、意義、流程和應用

    本文介紹算法加速的概念、意義、流程和應用 一、什么是算法加速 面向“最耗時”的部分做專用化處理: 在軟件運行時,總有一些特定算法會消耗大量
    的頭像 發表于 01-15 09:34 ?1168次閱讀

    EE-257:面向Blackfin處理器的引導壓縮/解壓縮算法

    電子發燒友網站提供《EE-257:面向Blackfin處理器的引導壓縮/解壓縮算法.pdf》資料免費下載
    發表于 01-07 13:56 ?0次下載
    EE-257:面向Blackfin處理器的引導<b class='flag-5'>壓縮</b>/解<b class='flag-5'>壓縮</b><b class='flag-5'>算法</b>