一、NVIDIA DOCA軟件框架
(1)設(shè)計目的
NVIDIA BlueField DPU的核心目的是解決數(shù)據(jù)中心中基于CPU計算的基礎(chǔ)設(shè)施的算力問題,主要涉及網(wǎng)絡(luò)、存儲、安全及基礎(chǔ)設(shè)施管理這個幾個方面。而DOCA是為了將BlueField DPU提供的硬件能力做軟件抽象和封裝,以SDK Library的形式提供友好的可編程接口,提高應(yīng)用開發(fā)的效率。
(2)技術(shù)細(xì)節(jié)
DOCA架構(gòu)如下圖所示,DOCA有三個模塊,分別是:
(1)DOCA drivers:是對DPU硬件資源的低層次封裝,其提供的low-level API是對硬件卸載能力的訪問,主要包含網(wǎng)絡(luò)卸載、安全卸載、存儲卸載等算力的訪問,同時支持DPDK, RDMA,Virtio-net(網(wǎng)絡(luò)虛擬化),Virtio-blk(存儲虛擬化),PCIe等通用能力。
(2)DOCA libs:是基于DOCA drivers為上層應(yīng)用封裝的high-level API,這些API是面向應(yīng)用層所需的功能,例如面向網(wǎng)絡(luò)應(yīng)用的Flow,Data Integrity, UPF(User Plane Function), VNF(Network Functions Virtualization);面向存儲應(yīng)用的SPDK;面向安全應(yīng)用的DPI(Deep Packet Inspection), Host introspection等。
(3)DOCA services:封裝了基礎(chǔ)設(shè)施的控制和管理功能,如DPU設(shè)備的管理,SDN(Software-Defined Network)的控制接口,存儲管理,Network Telemetry等。
圖DOCA軟件棧
(3)功能分析
從縱向的功能角度來看,DOCA SDK提供了網(wǎng)絡(luò)加速、安全加速、存儲加速和基礎(chǔ)設(shè)施管理加速的功能,相關(guān)的技術(shù)細(xì)節(jié)如下:
(1)網(wǎng)絡(luò)加速SDK:支持ASAP2 (Accelerated Switching and Packet Processing) SDN、VirtIO、OVS (open virtual switching)、P4編程、RDMA。
(2)安全加速SDK:支持Inline encryption、DPI(Deep Packet Inspection)、TLS、IPSec。
(3)存儲加速SDK:支持SPDK、VirtIO、NVMe-oF、數(shù)據(jù)加解密和數(shù)據(jù)壓縮等。
(4)基礎(chǔ)設(shè)施管理加速SDK:支持DPU management、Traffic telemetry、Packet filtering。
二、Intel OneAPI軟件框架
(1)設(shè)計目的
OneAPI設(shè)計的目的是通過實現(xiàn)一個跨平臺,開放的,標(biāo)準(zhǔn)的通用編程模型及接口來提高在異構(gòu)加速器架構(gòu)下的開發(fā)效率。OneAPI本身并不提供DPU設(shè)備,而是構(gòu)建一個軟件框架來整合業(yè)界現(xiàn)有的異構(gòu)計算設(shè)備11。
(2)技術(shù)細(xì)節(jié)
OneAPI抽象出兩層APIs,分為L0 (Low-level) API和L1 (High-Level) API。其結(jié)構(gòu)如下圖所示。
圖OneAPI軟件棧
L0 API: OneAPI的L0 API整合并封裝了業(yè)界流行的異構(gòu)計算設(shè)備(如GPU,AI,FPGA等)及其軟件框架(如CUDA,OpenCL),并提供統(tǒng)一的針對硬件資源訪問的low-level API。這樣,不同的硬件平臺對上層應(yīng)用開發(fā)來說是透明的,從而起到了跨平臺的作用。
L1 API:OneAPI的L1 API提供了一系列針對特定應(yīng)用場景的High-level API,這些API主要服務(wù)于機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、并行計算、視頻處理等特定領(lǐng)域,有Deep Learning API, Data Science API, Data Analysis API,Multiple Thread API, Video Processing API等。
基于上述兩層的抽象和封裝,上層應(yīng)用程序可以利用L1 API進(jìn)行特定領(lǐng)域的數(shù)據(jù)處理加速,也可以直接訪問L0 API進(jìn)行編程來服務(wù)更加廣泛的場景。
三、中科馭數(shù)HADOS?軟件框架
馭數(shù)DPU的軟件框架是基于上述五層模型構(gòu)建的,整體架構(gòu)如下圖所示:
圖 馭數(shù)異構(gòu)計算系統(tǒng)架構(gòu)
DSA設(shè)備層集成了馭數(shù)自研DPU芯片加速卡設(shè)備,分別是針對數(shù)據(jù)計算、軟件定義網(wǎng)絡(luò)、軟件定義存儲以及安全相關(guān)的的硬件設(shè)備。這些硬件設(shè)備在物理上是由馭數(shù)DPU芯片、內(nèi)存、存儲、I/O通道和KPU指令集等共同構(gòu)成;DSA操作層是一個為支撐基于DPU設(shè)備開發(fā)的軟件操作平臺,即DPU操作平臺,該平臺提供了DPU資源訪問、調(diào)度、監(jiān)控和管理的功能,同時也提供了完備友好的開發(fā)工具庫;計算引擎層為針對數(shù)據(jù)計算應(yīng)用軟件封裝的一個通用的數(shù)據(jù)計算加速引擎,它基于DPU操作平臺提供的計算能力,實現(xiàn)了硬件卸載的算子及相應(yīng)算子的軟件優(yōu)化器,這些算子分為計算類算子、網(wǎng)絡(luò)類算子和存儲類算子;應(yīng)用服務(wù)層為使用馭數(shù)DPU進(jìn)行加速的數(shù)據(jù)處理平臺、網(wǎng)絡(luò)服務(wù)平臺和存儲服務(wù)平臺,如大數(shù)據(jù)領(lǐng)域的Spark,數(shù)據(jù)庫領(lǐng)域的PostgreSQL,機(jī)器學(xué)習(xí)領(lǐng)域的XGBoost,微服務(wù)架構(gòu)中負(fù)責(zé)遠(yuǎn)程通信的gRPC框架,Web服務(wù)平臺Nginx以及分布式存儲平臺Ceph等;業(yè)務(wù)開發(fā)層為馭數(shù)數(shù)據(jù)計算加速產(chǎn)品所服務(wù)的業(yè)務(wù)系統(tǒng),主要來自對計算、網(wǎng)絡(luò)、存儲性能敏感的領(lǐng)域,如金融計算、交易、數(shù)據(jù)分析、云服務(wù)等。在上述五層架構(gòu)中,DPU操作平臺與數(shù)據(jù)計算加速引擎共同構(gòu)建了馭數(shù)為支撐DPU異構(gòu)計算而打造的專用軟件框架,即敏捷異構(gòu)軟件開發(fā)平臺,Heterogenous Agile Developing & Operating System,簡稱“HADOS?”。
四、DOCA,OneAPI與HADOS比較分析
整體來看,這三款軟件框架的出發(fā)點是相似的,都是在異構(gòu)計算的架構(gòu)下提供一套通用且編程友好的軟件開發(fā)框架。它們在設(shè)計這套軟件框架時都采用了分層抽象的思路,目的是使各層職責(zé)清晰,對上層提供足夠簡單且功能完備的接口。
具體到功能實現(xiàn)上,它們都是在網(wǎng)絡(luò)、計算、存儲、安全這些范疇內(nèi)做了相應(yīng)的支持,不過由于它們待解決的問題及根本目的存在差異,所以在架構(gòu)設(shè)計和功能實現(xiàn)上的側(cè)重點有所不同。簡單來說,DOCA側(cè)重點是支持基于Blue Field DPU的數(shù)據(jù)中心基礎(chǔ)設(shè)施服務(wù)加速的場景;OneAPI側(cè)重點是構(gòu)建設(shè)備無關(guān)的資源訪問庫和編程接口;HADOS側(cè)重點是支持基于YusurDPU的網(wǎng)絡(luò)、計算、存儲服務(wù)加速的場景。
下表針對這三款軟件框架在設(shè)計目的、五層架構(gòu)模型及各自特點上做了詳細(xì)比較。
-
DPU
+關(guān)注
關(guān)注
0文章
358瀏覽量
24182
發(fā)布評論請先 登錄
相關(guān)推薦
評論