哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

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

Spark基于DPU的Native引擎算子卸載方案

中科馭數(shù) ? 來源:中科馭數(shù) ? 作者:中科馭數(shù) ? 2024-06-28 17:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1.背景介紹

Apache Spark(以下簡稱Spark)是一個開源的分布式計算框架,由UC Berkeley AMP Lab開發(fā),可用于批處理、交互式查詢(Spark SQL)、實時流處理(Spark Streaming)、機器學習(Spark MLlib)和圖計算(GraphX)。Spark使用內(nèi)存加載保存數(shù)據(jù)并進行迭代計算,減少磁盤溢寫,同時支持 Java、Scala、Python和 R等多種高級編程語言,這使得Spark可以應對各種復雜的大數(shù)據(jù)應用場景,例如金融、電商、社交媒體等。

Spark 經(jīng)過多年發(fā)展,作為基礎的計算框架,不管是在穩(wěn)定性還是可擴展性方面,以及生態(tài)建設都得到了業(yè)界廣泛認可。盡管Apache社區(qū)對Spark逐步引入了諸如鎢絲計劃、向量化 Parquet Reader等一系列優(yōu)化,整體的計算性能也有兩倍左右的提升,但在 3.0版本以后,整體計算性能的提升有所減緩,并且隨著存儲、網(wǎng)絡以及IO技術的提升,CPU也逐漸成為Spark計算性能的瓶頸。如何在Spark現(xiàn)有框架上,增強大數(shù)據(jù)計算能力,提高CPU利用率,成為近年來業(yè)界的研究方向。

2.開源優(yōu)化方案

Spark本身使用scala語言編寫,整體架構(gòu)基于 JVM開發(fā),只能利用到一些比較基礎的 CPU指令集。雖然有JIT的加持,但相比目前市面上的Native向量化計算引擎而言,性能還是有較大差距。因此考慮如何將具有高性能計算能力的Native向量引擎引用到 Spark里來,提升 Spark的計算性能,突破 CPU瓶頸,成為一種可行性較高的解決方案。

隨著Meta在2022年超大型數(shù)據(jù)庫國際會議(VLDB)上發(fā)表論文《Velox:Meta's Unified Execution Engine》,并且Intel創(chuàng)建的Gluten項目基于Apache Arrow數(shù)據(jù)格式和Substrait查詢計劃的JNI API將Spark JVM和執(zhí)行引擎解耦,從而將Velox集成到Spark中,這使得使用Spark框架+Native向量引擎的大數(shù)據(jù)加速方案成為現(xiàn)實。

3.DPU計算卡與軟件開發(fā)平臺

AI大模型的發(fā)展,金融、電商等領域數(shù)據(jù)處理需求的增加,生活應用虛擬化程度的加深,都對現(xiàn)代化數(shù)據(jù)中心提出嚴峻的考驗。未來數(shù)據(jù)中心的發(fā)展趨勢,逐步演變成CPU + DPU + GPU三足鼎立的情況,CPU用于通用計算,GPU用于加速計算,DPU則進行數(shù)據(jù)處理。將大數(shù)據(jù)計算卸載到具有高度定制化和數(shù)據(jù)處理優(yōu)化架構(gòu)的大規(guī)模數(shù)據(jù)計算DPU卡上,可以有效提高計算密集型應用場景下數(shù)據(jù)中心的性能和效率,降低其成本和能耗。

中科馭數(shù)CONFLUX?-2200D大數(shù)據(jù)計算DPU卡主要應用于大數(shù)據(jù)計算場景。CONFLUX?-2200D通過計算DPU卸載加速,存儲DPU卸載加速和網(wǎng)絡DPU卸載加速實現(xiàn)大數(shù)據(jù)計算性能3-6倍提升。CONFLUX?-2200D是基于中科馭數(shù)自主知識產(chǎn)權的KPU(Kernel Processing Unit)架構(gòu)、DOE(Data Offloading Engine)硬件數(shù)據(jù)庫運算卸載引擎和LightningDMA中科馭數(shù)自主知識產(chǎn)權的基于DMA的直接內(nèi)存寫入技術提出的領域?qū)S肈PU卡。能夠滿足無侵入適配、自主可控、安全可靠,支持存算一體、存算分離等不同場景。

中科馭數(shù)HADOS是中科馭數(shù)推出的專用計算敏捷異構(gòu)軟件開發(fā)平臺。HADOS?數(shù)據(jù)查詢加速庫通過提供基于列式數(shù)據(jù)的查詢接口,供數(shù)據(jù)查詢應用,目前Spark、PostgreSQL已通過插件的形式適配。支持Java、Scala、C和C++語言的函數(shù)調(diào)用,主要包括列數(shù)據(jù)管理、數(shù)據(jù)查詢運行時函數(shù)、任務調(diào)度引擎、函數(shù)運算代價評估、內(nèi)存管理、存儲管理、硬件管理、DMA引擎、日志引擎等模塊,目前對外提供數(shù)據(jù)管理、查詢函數(shù)、硬件管理、文件存儲相關功能API。

4.Spark框架+Gluten-Velox向量化執(zhí)行引擎+DPU加速卡

4.1方案簡介

隨著SSD和萬兆網(wǎng)卡普及以及I/O技術的提升,Spark用戶的數(shù)據(jù)負載計算能力逐漸受到CPU性能瓶頸的約束。由于Spark本身基于JVM的Task計算模型的CPU指令優(yōu)化,要遠遠遜色于其他的Native語言(C++等),再加上開源社區(qū)的Native引擎已經(jīng)發(fā)展得比較成熟,具備優(yōu)秀的量化執(zhí)行能力,這就使得那些現(xiàn)有的Spark用戶,如果想要獲得這些高性能計算能力就需要付出大量的遷移和運維成本。

Gluten解決了這一關鍵性問題,讓Spark用戶無需遷移,就能享受這些成熟的Native引擎帶來的性能優(yōu)勢。Gluten最核心的能力就是通過Spark Plugin的機制,把Spark查詢計劃攔截并下發(fā)給Native引擎來執(zhí)行,跳過原生Spark不高效的執(zhí)行路徑。整體的執(zhí)行框架仍沿用Spark既有實現(xiàn),并且對于Native引擎無法承接的算子,Gluten安排Fallback回正常的Spark執(zhí)行路徑進行計算,從而保證Spark任務執(zhí)行的穩(wěn)定性。同時Gluten還實現(xiàn)了Fallback、本地內(nèi)存管理等功能,使得Spark可以更好利用Native引擎帶來的高性能計算能力。

Velox是一個集合了現(xiàn)有各種計算引擎優(yōu)化的新穎的C++數(shù)據(jù)加速庫,其重新設計了數(shù)據(jù)模型以支持復雜數(shù)據(jù)類型的高效計算,并且提供可重用、可擴展、高性能且與上層軟件無關的數(shù)據(jù)處理組件,用于構(gòu)建執(zhí)行引擎和增強數(shù)據(jù)管理系統(tǒng)。

由于Velox只接收完全優(yōu)化的查詢計劃作為輸入,不提供 SQL解析器、dataframe層、其他 DSL或全局查詢優(yōu)化器,專注于成為大數(shù)據(jù)計算的執(zhí)行引擎。這就使得Gluten+Velox架構(gòu)可以各司其職,從而實現(xiàn)數(shù)據(jù)庫組件模塊化。

wKgZomZ-fKiAAsUcAAFEwmESLqQ755.png

要將Gluten+Velox優(yōu)化過的Spark計算任務卸載到DPU卡,還缺少一個異構(gòu)中間層,為此中科馭數(shù)研發(fā)了HADOS異構(gòu)執(zhí)行庫,該庫提供列數(shù)據(jù)管理、數(shù)據(jù)查詢運行時函數(shù)、任務調(diào)度引擎、函數(shù)運算代價評估、內(nèi)存管理等多種DPU能力的API接口,并且支持Java,C++等多種大數(shù)據(jù)框架語言的調(diào)用,擁有極強的拓展性,以及與現(xiàn)有生態(tài)的適配性。HADOS敏捷異構(gòu)軟件平臺可以適應復雜的大數(shù)據(jù)軟件生態(tài),在付出較小成本的情況下為多種計算場景提供DPU算力加速。Spark框架集成Gluten+Velox向量化執(zhí)行引擎,然后使用HADOS平臺,就可以將經(jīng)過向量化優(yōu)化的計算任務,利用DPU執(zhí)行,從而徹底釋放CPU,實現(xiàn)DPU高性能計算。

4.2 DPU算力卸載

velox是由C++實現(xiàn)的向量化計算引擎,其核心執(zhí)行框架涵蓋了任務(Task)、驅(qū)動(Driver)和操作器(Operator)等組件。velox將Plan轉(zhuǎn)換為由PlanNode組成的一棵樹,然后將PlanNode轉(zhuǎn)換為Operator。Operator作為基礎的算子,是實際算法執(zhí)行的邏輯框架,也是實現(xiàn)DPU計算卸載的關鍵。

4.2.1邏輯框架

Operator作為實際算法的邏輯框架,承載著各種表達式的抽象,每一個Operator中包含一個或多個表達式來實現(xiàn)一個復雜完整的計算邏輯塊,表達式的底層是由function來具體實現(xiàn)。Velox向開發(fā)人員提供了API可以實現(xiàn)自定義scalar function,通過實現(xiàn)一個異構(gòu)計算版本的function,然后將這個function注冊到Velox的函數(shù)系統(tǒng)中,就可以將計算任務卸載到DPU卡上。任務執(zhí)行過程如下圖:

wKgZomZ-fJSAcULaAACu8X5ZUvM185.png

中科馭數(shù)的CONFLUX?-2200DS大數(shù)據(jù)計算加速DPU卡可以實現(xiàn)列式計算,并且HADOS平臺支持C++語言,所以可以直接解析Velox的向量化參數(shù)。對于列式存儲的數(shù)據(jù),經(jīng)過對數(shù)據(jù)類型的簡單處理之后,可以直接交給DPU執(zhí)行計算任務,免去了數(shù)據(jù)行列轉(zhuǎn)換的性能損失,同時也降低了DPU計算資源集成的運維難度,大大提高了Velox異構(gòu)開發(fā)的效率。

4.2.2算子卸載

以我們實現(xiàn)卸載的Filter算子為例,對于cast(A as bigint)>1這一具體的表達式,來探究如何實現(xiàn)”>”這一二元運算符的卸載。

Filter算子的Operator中會使用有一個 std::unique_ptr exprs_的變量,用來執(zhí)行過濾和投影的計算。ExprSet是Filter算子計算的核心,其本質(zhì)是一顆表達式樹。cast(A as bigint)>1的表達式樹以及表達式樹的靜態(tài)節(jié)點類型如下:

wKgaomZ-fIeABX1EAABKIi2tCto087.png

節(jié)點類型 作用
FieldAccessTypedExpr 表示RowVector中的某一列,作為表達式的葉子節(jié)點
ConstantTypedExpr 表示常量值,作為表達式的葉子節(jié)點
CallTypedExpr 表示函數(shù)調(diào)用表達式,子節(jié)點表示輸入?yún)?shù)
表示特殊類型表達式,包括
if/and/or/switch/cast/try/coalesce等
CastTypedExpr 類型轉(zhuǎn)換
LambdaTypedExpr Lambda表達式,作為葉子節(jié)點

在表達式的所有子節(jié)點執(zhí)行完后,會執(zhí)行applyFunction,說明當前表達式節(jié)點是一個函數(shù)調(diào)用,然后調(diào)用vectorFunction_的apply來對結(jié)果進行處理,輸入是inputValues_數(shù)組,該數(shù)組長度與函數(shù)的表達式葉子節(jié)點數(shù)相等(文中示例表達式的葉子節(jié)點為2),作為函數(shù)的參數(shù),result為輸出,結(jié)果為VectorPtr,程序流程圖如下:

wKgaomZ-fH-AHggnAABj-GQ8lJE207.png

4.2.3 Fallback

現(xiàn)階段我們只實現(xiàn)了Filter算子的部分表達式,后續(xù)還會繼續(xù)支持更多的算子和表達式。對于一些無法執(zhí)行的算子和表達式,還是需要退回給Velox,交由CPU執(zhí)行,從而保證SQL的正常執(zhí)行。由于處理的是列式數(shù)據(jù),所以回退的執(zhí)行計劃可以不需要任何處理,就可以直接從HADOS退還給Velox,幾乎無性能損失。

4.2.4 DPU資源管理

HADOS平臺會對服務器的DPU資源進行統(tǒng)一管理。對于卸載的計算任務根據(jù)現(xiàn)有的DPU資源進行動態(tài)分配,從而實現(xiàn)計算資源的高效利用。同時HADOS平臺還會對計算任務中所需的內(nèi)存進行合理的分配,動態(tài)申請和釋放系統(tǒng)內(nèi)存,從而減少額外的內(nèi)存開銷。

4.3加速效果

單機單線程local模式,使用1G數(shù)據(jù)集,僅卸載Filter算子的部分表達式的場景下,TPC-DS語句中有5條SQL語句,可以將使用開源方案的加速效果提升15-20%左右。q70語句,在開源方案提升100%的基礎上,提升了15%;q89語句,在開源方案提升50%的基礎上,提升了27%;q06在開源方案提升170%的基礎上,提升了13%。

wKgaomZ-fHmAe35qAAC7txK8IwA017.png

單一運算符場景下(SELECT a FROM t WHERE a = 100),使用DPU運算符相比 Spark原生的運算符的加速比最高達到12.7。

wKgZomZ-fHWAK8o8AACJ7iopfBE806.png

5.不足和展望

中科馭數(shù)HADOS敏捷異構(gòu)軟件平臺可以十分輕松地與現(xiàn)有開源大數(shù)據(jù)加速框架相結(jié)合,并且為開源框架提供豐富的算力卸載功能。HADOS平臺在完美發(fā)揮開源加速框架優(yōu)勢的前提下,為大數(shù)據(jù)任務提供硬件加速能力。由于現(xiàn)在我們只實現(xiàn)了較小部分算子卸載的驗證,在執(zhí)行具有復雜算子操作的SQL時無法發(fā)揮出DPU的全部實力,并且因為開源方案在設計之處并沒有考慮到使用DPU硬件,所以在磁盤IO,算子優(yōu)化等方面的性能還有待優(yōu)化。后續(xù)我們也會從一下幾個方面來進一步做特定優(yōu)化:

開發(fā)更多較復雜的算子,例如重量級的聚合算子會消耗CPU大量的計算能力從而影響Spark作業(yè),通過將聚合算子卸載到DPU硬件來解放CPU能力,從而使得加速效果更加明顯;

優(yōu)化DPU的磁盤讀寫,讓DPU可以直接讀取硬盤數(shù)據(jù),省去數(shù)據(jù)在服務器內(nèi)部的傳輸時間,可以減少數(shù)據(jù)準備階段的性能損耗;

RDMA技術,可以直讀取遠端內(nèi)存數(shù)據(jù),數(shù)據(jù)傳輸內(nèi)容直接卸載到網(wǎng)卡,減少數(shù)據(jù)在系統(tǒng)內(nèi)核中額外的數(shù)據(jù)復制與移動,可以減少大數(shù)據(jù)任務計算過程中的性能損耗。

審核編輯 黃宇

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

    關注

    68

    文章

    11320

    瀏覽量

    225792
  • DPU
    DPU
    +關注

    關注

    0

    文章

    417

    瀏覽量

    27142
  • SPARK
    +關注

    關注

    1

    文章

    108

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于 SONiC 的高性能 IPsec 網(wǎng)關:VPP 與硬件卸載如何重塑路由性能?

    面對10G+帶寬挑戰(zhàn),傳統(tǒng)IPsec網(wǎng)關性能不足。本文深入解析SONiC操作系統(tǒng)如何通過硬件卸載與VPP加速,實現(xiàn)線速加密吞吐,為企業(yè)提供高性能路由安全方案。立即了解!
    的頭像 發(fā)表于 03-16 16:28 ?446次閱讀
    基于 SONiC 的高性能 IPsec 網(wǎng)關:VPP 與硬件<b class='flag-5'>卸載</b>如何重塑路由性能?

    首屆中國NVIDIA DGX Spark黑客松大賽開啟報名

    倒計時啟動!首屆中國 NVIDIA DGX Spark 黑客松(Hackathon)將于 3 月 13 日 - 3 月 28 日正式開啟報名!本屆賽事以“算力破局、AI 落地”為核心導向,依托
    的頭像 發(fā)表于 03-14 16:39 ?2690次閱讀

    “龍蝦” OpenClaw爆發(fā)卸載潮!上門卸載最高收費299元

    電子發(fā)燒友網(wǎng)報道(文 / 吳子鵬)此前騰訊大廈樓下近千人排隊安裝,有人靠 “上門安裝” 月入 26 萬;但短短數(shù)日后,“上門卸載” 服務悄然興起,報價從 29.9 元到 299 元不等
    的頭像 發(fā)表于 03-12 08:57 ?1.8w次閱讀
    “龍蝦” OpenClaw爆發(fā)<b class='flag-5'>卸載</b>潮!上門<b class='flag-5'>卸載</b>最高收費299元

    基于DPU的智能盤框方案,華為如何大幅提升AI推理的效率?

    DPU
    腦極體
    發(fā)布于 :2026年01月20日 12:53:10

    SeaVerse發(fā)布全球首個AI Native平臺,“All in AI Native”引領AI創(chuàng)作前瞻革命

    SeaVerse強調(diào)的"All in AI Native"對于既存的AI創(chuàng)作者和創(chuàng)作團隊來說注定是場"前瞻革命"。
    的頭像 發(fā)表于 01-14 17:41 ?1463次閱讀

    如何在DGX Spark上運行NVIDIA Omniverse

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

    NVIDIA DGX Spark系統(tǒng)恢復過程與步驟

    在使用 NVIDIA DGX Spark 的過程中,可能會出現(xiàn)配置故障,而導致開發(fā)中斷的問題,本篇教程將帶大家了解如何一步步完成系統(tǒng)恢復。
    的頭像 發(fā)表于 11-28 09:46 ?5854次閱讀
    NVIDIA DGX <b class='flag-5'>Spark</b>系統(tǒng)恢復過程與步驟

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

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

    NVIDIA DGX Spark助力構(gòu)建自己的AI模型

    2025 年 1 月 6 日,NVIDIA 正式宣布其 Project DIGITS 項目,并于 3 月 18 日更名為 NVIDIA DGX Spark,進一步公布了產(chǎn)品細節(jié)。DGX Spark
    的頭像 發(fā)表于 11-21 09:25 ?1478次閱讀
    NVIDIA DGX <b class='flag-5'>Spark</b>助力構(gòu)建自己的AI模型

    NVIDIA DGX Spark快速入門指南

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

    安泰新能源發(fā)布新一代智能跟蹤支架AT-Spark,為大型光伏電站提供一體化解決方案

    發(fā)電效率和更低平準化度電成本(LCOE)日益增長的需求,通過提供一體化解決方案來優(yōu)化整個項目生命周期的性能。 結(jié)構(gòu)設計升級后,穩(wěn)定性更強、安裝更快、成本效率更高 AT-Spark采用多回轉(zhuǎn)驅(qū)動系統(tǒng)和八角扭矩管,剛度提升40%,強度提升50%,同時材料成本降低30%。其優(yōu)化
    的頭像 發(fā)表于 11-13 21:08 ?324次閱讀

    NVIDIA推出全新BlueField-4 DPU

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

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

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

    RISC-V DPU,重塑數(shù)據(jù)中心算力格局?

    電子發(fā)燒友網(wǎng)綜合報道 在現(xiàn)代數(shù)據(jù)中心架構(gòu)中,數(shù)據(jù)處理單元(DPU)正迅速崛起為繼 CPU 和 GPU 之后的第三顆核心芯片。DPU 專為數(shù)據(jù)密集型任務設計,通過卸載 CPU 的低效工作負載,如網(wǎng)絡
    的頭像 發(fā)表于 09-13 00:51 ?5005次閱讀

    中科馭數(shù)攜DPU全棧產(chǎn)品亮相福州數(shù)博會,賦能智算時代算力基建

    會”)也拉開帷幕。共有150多家企業(yè)參展,展會吸引了八萬多名觀眾參觀。作為國內(nèi)DPU領域領軍企業(yè),中科馭數(shù)攜三大產(chǎn)品線亮相展會,其創(chuàng)新的DPU技術方案成為專業(yè)觀眾關注焦點。據(jù)大會報告的數(shù)據(jù)顯示,我國算力總規(guī)模已達280EFLOP
    的頭像 發(fā)表于 05-23 11:01 ?745次閱讀
    中科馭數(shù)攜<b class='flag-5'>DPU</b>全棧產(chǎn)品亮相福州數(shù)博會,賦能智算時代算力基建
    长顺县| 洛川县| 林西县| 永年县| 中西区| 天水市| 仁怀市| 南昌县| 乌兰察布市| 桦川县| 肃南| 四川省| 三明市| 深州市| 鹤庆县| 宁都县| 盐池县| 松溪县| 永平县| 台州市| 景洪市| 永吉县| 东莞市| 肃宁县| 红安县| 轮台县| 嘉定区| 桂林市| 东乡族自治县| 五指山市| 石林| 罗源县| 江口县| 威宁| 额济纳旗| 凤凰县| 乌兰县| 依安县| 彭泽县| 恩平市| 西充县|