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

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

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

DPU軟件棧五層模型系列(一)DPU異構(gòu)計(jì)算架構(gòu)五層開(kāi)發(fā)模型

中科馭數(shù)(北京)科技有限公司 ? 2022-06-06 18:14 ? 次閱讀

一般說(shuō)來(lái),異構(gòu)計(jì)算的核心目的是解決特定應(yīng)用場(chǎng)景下算力不足的問(wèn)題,并且大幅度提升整體系統(tǒng)的計(jì)算性能。在整體架構(gòu)上,它的分層邏輯從應(yīng)用場(chǎng)景出發(fā),通過(guò)上層的需求來(lái)定義下層的功能,而每一層是對(duì)特定功能的抽象與封裝。在定義每一層功能時(shí),要達(dá)到以下幾個(gè)目標(biāo):

各層職責(zé)單一

層間邊界清晰

層內(nèi)功能實(shí)現(xiàn)獨(dú)立

靈活易擴(kuò)展

基于上述目標(biāo),將一個(gè)異構(gòu)計(jì)算的系統(tǒng)抽象為五層(如下圖所示),自下而上分別是:1)DSA設(shè)備層(DSA Device Layer),2)DSA操作層 (DSA Operating Layer),3)計(jì)算引擎層(Scheduling Operating Layer),4)應(yīng)用服務(wù)層(Application Service Layer)和5)業(yè)務(wù)開(kāi)發(fā)層 (Business Development Layer),詳述如下。

pYYBAGKdni-AKbWXABHPTwvC8VU475.png圖異構(gòu)計(jì)算系統(tǒng)抽象模型

一、DSA設(shè)備層

DSA設(shè)備層代表的是執(zhí)行異構(gòu)計(jì)算的DSA處理器以及集成了該處理器的硬件設(shè)備,例如,以DPU或GPU為處理器的異構(gòu)計(jì)算設(shè)備。異構(gòu)計(jì)算設(shè)備需要具備以下兩個(gè)核心能力:1)提供支持專(zhuān)用計(jì)算操作的指令集(Instruction Set),2)CPU或其他DSA設(shè)備的標(biāo)準(zhǔn)通信接口,如PCIe數(shù)據(jù)傳輸標(biāo)準(zhǔn)。

二、DSA操作層

DSA操作層是對(duì)DSA處理器的指令集的管理以及基礎(chǔ)開(kāi)發(fā)平臺(tái)的整合,該層完成了對(duì)硬件資源的抽象,從而使上層軟件對(duì)底層設(shè)備透明;DSA操作層是對(duì)DSA設(shè)備層計(jì)算設(shè)備的抽象和計(jì)算資源的封裝,是軟件與硬件、邏輯與物理的邊界。它基于如DPU芯片等DSA處理器提供的指令集,以更加抽象和編程友好的方式對(duì)上層提供了異構(gòu)計(jì)算開(kāi)發(fā)和訪問(wèn)的軟件接口、以及設(shè)備監(jiān)控管理的接口。該層內(nèi)部有四個(gè)必要的模塊,分別是設(shè)備驅(qū)動(dòng)器,指令集管理器,資源訪問(wèn)接口,開(kāi)發(fā)和管理平臺(tái)。

  • 設(shè)備驅(qū)動(dòng)器:設(shè)備驅(qū)動(dòng)器是硬件設(shè)備的軟件抽象,它基于操作系統(tǒng)標(biāo)準(zhǔn)的驅(qū)動(dòng)框架及PCIe協(xié)議,實(shí)現(xiàn)了對(duì)計(jì)算設(shè)備的物理訪問(wèn),主要包括設(shè)備處理器的指令執(zhí)行和設(shè)備存儲(chǔ)的讀寫(xiě)。
  • 指令集管理器:指令管理器的作用是對(duì)計(jì)算設(shè)備所提供的指令集進(jìn)行統(tǒng)一管理,通過(guò)對(duì)指令集的封裝及組合,提供更加友好的編程接口。
  • 資源訪問(wèn)接口:基于設(shè)備驅(qū)動(dòng)器和指令集管理器的功能,該模塊完成對(duì)整個(gè)計(jì)算資源訪問(wèn)的抽象和封裝,它以編程接口的方式對(duì)上層提供資源訪問(wèn)入口,服務(wù)于上層計(jì)算邏輯和控制邏輯的執(zhí)行。
  • 開(kāi)發(fā)和管理平臺(tái):除了上述運(yùn)行時(shí)所需的能力外,還需要針對(duì)開(kāi)發(fā)人員提供友好的編程工具,如指令集編譯工具、監(jiān)控管理工具、日志工具、異構(gòu)計(jì)算卡模擬器等。

三、計(jì)算引擎層

計(jì)算引擎層是對(duì)計(jì)算邏輯的封裝,為上層提供通用的計(jì)算能力。與DSA操作層的對(duì)計(jì)算資源封裝不同,計(jì)算引擎層是對(duì)計(jì)算邏輯的封裝,它基于DSA操作層提供的資源訪問(wèn)接口,根據(jù)上層應(yīng)用層軟件對(duì)算力的需求,提供了可復(fù)用的算子集合及執(zhí)行接口。

算子抽象

算子定義為實(shí)現(xiàn)某一特定功能或算法的函數(shù)或獨(dú)立的服務(wù),它是對(duì)計(jì)算邏輯的抽象。例如,根據(jù)指定條件對(duì)數(shù)據(jù)進(jìn)行過(guò)濾的函數(shù)可以是一個(gè)算子,稱(chēng)它為“過(guò)濾算子”。在標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)軟件中,它的算子有Scan, Join, GroupBy等,而在網(wǎng)絡(luò)處理軟件中,特有的算子會(huì)是以BSD Socket,NVMe等標(biāo)準(zhǔn)服務(wù)的形式呈現(xiàn)。由于異構(gòu)計(jì)算的“異構(gòu)”特性,每個(gè)算子在不同設(shè)備上的具體實(shí)現(xiàn)有所不同,所以針對(duì)每一個(gè)支持的算子,都要有多種不同設(shè)備平臺(tái)上的實(shí)現(xiàn),如ScanOnDPU、ScanOnGPU。

計(jì)算優(yōu)化器

異構(gòu)計(jì)算追求的是計(jì)算性能的提升,相應(yīng)的需要一個(gè)計(jì)算優(yōu)化器來(lái)對(duì)上層的計(jì)算請(qǐng)求做優(yōu)化。它的基本策略是根據(jù)應(yīng)用場(chǎng)景、上下文、數(shù)據(jù)規(guī)模等因素來(lái)動(dòng)態(tài)的選擇最優(yōu)的算子實(shí)現(xiàn)進(jìn)行計(jì)算。

四、應(yīng)用服務(wù)層

應(yīng)用服務(wù)層是數(shù)據(jù)處理的應(yīng)用服務(wù)軟件,也是算力的需求側(cè)。應(yīng)用服務(wù)層代表具有通用功能的軟件系統(tǒng),這些軟件系統(tǒng)可以利用計(jì)算引擎提供的算子進(jìn)行異構(gòu)計(jì)算,從而達(dá)到計(jì)算性能提升的目的。常見(jiàn)的應(yīng)用層軟件系統(tǒng)有分布式計(jì)算領(lǐng)域的Spark, Flink, Hadoop;數(shù)據(jù)庫(kù)領(lǐng)域的PostgreSQL, MySQL;分布式網(wǎng)絡(luò)中的gPRC,Network Gateway,Nginx;以及存儲(chǔ)服務(wù)中的Ceph等等,基本上通用服務(wù)型的系統(tǒng)都屬于該層的范疇。

在實(shí)際開(kāi)發(fā)中,針對(duì)應(yīng)用服務(wù)層中的軟件,需要解決以下幾個(gè)關(guān)鍵問(wèn)題:

  • 性能瓶頸的識(shí)別:通常應(yīng)用軟件的性能瓶頸會(huì)在高并發(fā)、大吞吐的情況下出現(xiàn),這些瓶頸一般源于CPU計(jì)算資源的競(jìng)爭(zhēng)、CPU計(jì)算性能的不足、網(wǎng)絡(luò)傳輸?shù)难舆t以及磁盤(pán)I/O的延遲等。識(shí)別出應(yīng)用軟件的性能瓶頸是算力卸載的第一步。
  • 異構(gòu)計(jì)算的有效性邊界:在定位到軟件的性能瓶頸后,需要從中識(shí)別出哪些是可以通過(guò)異構(gòu)計(jì)算來(lái)解決的。通常,CPU成為瓶頸的原因會(huì)有兩類(lèi),一類(lèi)是算力的問(wèn)題,另一類(lèi)是算法的問(wèn)題。針對(duì)算力的問(wèn)題,可以通過(guò)異構(gòu)計(jì)算來(lái)解決,而算法的問(wèn)題則不然。
  • 算子的高效調(diào)用:算子是異構(gòu)計(jì)算的執(zhí)行單元,只有把算子集成到應(yīng)用軟件的執(zhí)行路徑中,算力卸載才算完成。考慮到性能的優(yōu)化,還需要根據(jù)實(shí)際情況優(yōu)化算子的執(zhí)行策略,例如,數(shù)據(jù)在主機(jī)端與設(shè)備端內(nèi)存之間的數(shù)據(jù)拷貝策略、各算子執(zhí)行序列的編排策略等等。
  • 應(yīng)用軟件的向前兼容性:在整合應(yīng)用軟件與異構(gòu)計(jì)算的算子時(shí),要確保應(yīng)用軟件的向前兼容性,以保證應(yīng)用服務(wù)層的軟件迭代對(duì)正在運(yùn)行的上層業(yè)務(wù)系統(tǒng)是透明的,從而提高整個(gè)架構(gòu)的穩(wěn)定性與可維護(hù)性。

五、業(yè)務(wù)開(kāi)發(fā)層

業(yè)務(wù)開(kāi)發(fā)層是在某特定領(lǐng)域的業(yè)務(wù)系統(tǒng)。業(yè)務(wù)開(kāi)發(fā)層是最貼近實(shí)際業(yè)務(wù)場(chǎng)景的軟件系統(tǒng),通常它是針對(duì)某個(gè)特定行業(yè)的具體業(yè)務(wù)需求定制的軟件系統(tǒng),如金融行業(yè)的交易系統(tǒng),互聯(lián)網(wǎng)行業(yè)的數(shù)據(jù)分析系統(tǒng)等等。整個(gè)異構(gòu)計(jì)算架構(gòu)本質(zhì)上就是解決業(yè)務(wù)層的性能瓶頸問(wèn)題,所以在實(shí)際開(kāi)發(fā)過(guò)程中,應(yīng)該從業(yè)務(wù)端出發(fā),尋找要解決的根本問(wèn)題,然后驅(qū)動(dòng)整個(gè)異構(gòu)系統(tǒng)的構(gòu)建。同時(shí),整體架構(gòu)也要保證底層構(gòu)建對(duì)具體的業(yè)務(wù)系統(tǒng)完全透明,達(dá)到對(duì)各行業(yè)業(yè)務(wù)軟件系統(tǒng)的無(wú)縫支撐和業(yè)務(wù)邏輯開(kāi)發(fā)的隔離。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • DPU
    DPU
    +關(guān)注

    關(guān)注

    0

    文章

    343

    瀏覽量

    24044
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    IaaS+on+DPU(IoD)+下代高性能算力底座技術(shù)白皮書(shū)

    ,在其上掛載了各種計(jì)算、存儲(chǔ)資源的節(jié)點(diǎn),對(duì)于系統(tǒng)的資源彈性、運(yùn)行效率、性能都大有益處。但是這種使用方式的變化,需要對(duì)現(xiàn)有云計(jì)算架構(gòu)進(jìn)行定程度的變革,才能充分發(fā)揮出
    發(fā)表于 07-24 15:32

    AvaotaA1全志T527開(kāi)發(fā)板AMP異構(gòu)計(jì)算簡(jiǎn)介

    Avaota SBC 的部分平臺(tái)內(nèi)具有小核心 CPU,與大核心起組成了異構(gòu)計(jì)算的功能。 在異構(gòu)多處理系統(tǒng)中,主核心和輔助核心的存在旨在共同協(xié)作,以實(shí)現(xiàn)更高效的任務(wù)處理。這種協(xié)作需要系統(tǒng)采取
    發(fā)表于 07-24 09:54

    神經(jīng)網(wǎng)絡(luò)模型的優(yōu)缺點(diǎn)

    神經(jīng)網(wǎng)絡(luò)模型種常見(jiàn)的深度學(xué)習(xí)模型,它由輸入、兩個(gè)隱藏和輸出
    的頭像 發(fā)表于 07-11 10:58 ?238次閱讀

    明天線上見(jiàn)!DPU構(gòu)建高性能云算力底座——DPU技術(shù)開(kāi)放日最新議程公布!

    技術(shù)在不同行業(yè)中的應(yīng)用解決方案有哪些?能帶來(lái)怎樣的業(yè)務(wù)效果? 3月29日本周,中科馭數(shù)集結(jié)產(chǎn)品大咖及解決方案專(zhuān)家團(tuán),誠(chéng)邀您參加以“DPU構(gòu)建高性能云算力底座”為主題的線上DPU技術(shù)開(kāi)放日! 他們將逐
    的頭像 發(fā)表于 04-03 18:12 ?903次閱讀

    osi七模型各層功能及協(xié)議 osi七模型有哪些

    OSI七模型,是開(kāi)放式系統(tǒng)互聯(lián)(Open System Interconnection,簡(jiǎn)稱(chēng)OSI)參考模型,是國(guó)際標(biāo)準(zhǔn)化組織(ISO)在1984年定義的種網(wǎng)絡(luò)協(xié)議
    的頭像 發(fā)表于 01-25 11:03 ?1.1w次閱讀

    《數(shù)據(jù)處理器:DPU編程入門(mén)》DPU計(jì)算入門(mén)書(shū)籍測(cè)評(píng)

    架構(gòu)服務(wù),同時(shí)它般不直接面向于數(shù)據(jù)存儲(chǔ),通信接口等底層應(yīng)用。也不直接架構(gòu)頂層的服務(wù)。 因此對(duì)于DPU系統(tǒng)來(lái)說(shuō),現(xiàn)在CPU仍然是GPU于DPU
    發(fā)表于 12-24 10:54

    OSI七模型如何幫助網(wǎng)絡(luò)通信?

    OSI(開(kāi)放系統(tǒng)互聯(lián))七模型計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)的種描述方式,它為不同系統(tǒng)之間的通信提供了統(tǒng)的標(biāo)準(zhǔn)。這個(gè)
    的頭像 發(fā)表于 12-21 16:27 ?453次閱讀

    《數(shù)據(jù)處理器:DPU編程入門(mén)》讀書(shū)筆記

    首先感謝電子發(fā)燒友論壇提供的試讀機(jī)會(huì)。 第周先閱讀了DPU的技術(shù)發(fā)展背景,了解到DPU是結(jié)合了高性能及軟件可編程的多核CPU、高性能網(wǎng)絡(luò)接口,以及各種靈活和可編程的加速引擎。
    發(fā)表于 12-21 10:47

    《數(shù)據(jù)處理器:DPU編程入門(mén)》+初步熟悉這本書(shū)的結(jié)構(gòu)和主要內(nèi)容

    大幅度提高計(jì)算速度和效率,以滿(mǎn)足這些增長(zhǎng)的計(jì)算需求。 其次,網(wǎng)絡(luò)和數(shù)據(jù)處理的緊密結(jié)合是DPU演進(jìn)的另個(gè)核心驅(qū)動(dòng)力。在當(dāng)前的計(jì)算
    發(fā)表于 12-08 18:03

    什么是DPU?

    三個(gè)關(guān)鍵要素于身。DPU種SOC(System On Chip),它結(jié)合了: 行業(yè)標(biāo)準(zhǔn)的、高性能及軟件可編程的多核CPU,通常基于已應(yīng)用廣泛的Arm
    發(fā)表于 11-03 10:55

    解碼 DPU 編程,投稿贏取好禮!

    十余位資深系統(tǒng)架構(gòu)師歷經(jīng)數(shù)月編寫(xiě)而成,定位為 NVIDIA BlueField 系列 DPU 和 NVIDIA DOCA 開(kāi)發(fā)環(huán)境
    的頭像 發(fā)表于 11-01 20:25 ?334次閱讀
    解碼 <b class='flag-5'>DPU</b> 編程,投稿贏取好禮!

    【書(shū)籍評(píng)測(cè)活動(dòng)NO.23】數(shù)據(jù)處理器:DPU編程入門(mén)

    ? BlueField? 系列 DPU 利用 NVIDIA DOCA? 軟件開(kāi)發(fā)環(huán)境的程序開(kāi)發(fā)實(shí)踐案例。 讀者可以通過(guò)本書(shū)對(duì) DPU 硬件
    發(fā)表于 10-24 15:21

    NVIDIA發(fā)布首部DPU和DOCA編程入門(mén)書(shū)籍

    NVIDIA DOCA 是個(gè)為 NVIDIA BlueField 系列 DPU 量身定做的軟件開(kāi)發(fā)環(huán)境,通過(guò)打造個(gè)全面、開(kāi)放的
    的頭像 發(fā)表于 10-20 15:45 ?548次閱讀

    【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】Vitis AI 構(gòu)建開(kāi)發(fā)環(huán)境,并使用inspector檢查模型

    ,并且包含四個(gè)文件: 它們的作用如下: inspect_DPUCZDX8G_ISA1_B4096.gv:這是個(gè) Graphviz 格式的文件,它描述了模型DPU 上的計(jì)算圖,包
    發(fā)表于 10-14 15:34

    網(wǎng)絡(luò)模型的七結(jié)構(gòu)和結(jié)構(gòu)

    模型 這個(gè) ISO 網(wǎng)絡(luò)模型各層的名字、主要功能對(duì)應(yīng)的典型設(shè)備和傳輸單位如下圖: 這個(gè)七網(wǎng)絡(luò)模型
    的頭像 發(fā)表于 10-08 16:39 ?1557次閱讀
    網(wǎng)絡(luò)<b class='flag-5'>模型</b>的七<b class='flag-5'>層</b>結(jié)構(gòu)和<b class='flag-5'>五</b><b class='flag-5'>層</b>結(jié)構(gòu)