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