DPU软件栈五层模型(二)典型软件框架案例

一、NVIDIA DOCA软件框架

1)设计目的

NVIDIA BlueField DPU的核心目的是解决数据中心中基于CPU计算的基础设施的算力问题,主要涉及网络、存储、安全及基础设施管理这个几个方面。而DOCA是为了将BlueField DPU提供的硬件能力做软件抽象和封装,以SDK Library的形式提供友好的可编程接口,提高应用开发的效率。

2)技术细节

DOCA架构如图所示,DOCA有三个模块,分别是:

1DOCA drivers: DPU硬件资源的低层次封装,其提供low-level API是对硬件卸载能力的访问,主要包含网络卸载、安全卸载、存储卸载等算力的访问,同时支持DPDK, RDMAVirtio-net网络虚拟化)Virtio-blk存储虚拟化),PCIe等通用能力。

2DOCA libs: 基于DOCA drivers为上层应用封装的high-level API, 这些API是面向应用层所需的功能,例如面向网络应用的FlowData Integrity, UPF(User Plane Function), VNF(Network Functions Virtualization);面向存储应用的SPDK;面向安全应用的DPI(Deep Packet Inspection), Host introspection

3DOCA services: 封装了基础设施的控制和管理功能,如DPU设备的管理,SDNSoftware-Defined Network)的控制接口, 存储管理,Network Telemetry等。

   DOCA软件栈

3功能分析

从纵向的功能角度来看,DOCA SDK提供了网络加速、安全加速、存储加速和基础设施管理加速的功能,相关的技术细节如下:

1)网络加速SDK:支持ASAP2 (Accelerated Switching and Packet Processing) SDNVirtIOOVS (open virtual switching) P4 编程RDMA

2)安全加速SDK:支持Inline encryptionDPI (Deep Packet Inspection)TLSIPSec

3)存储加速SDK:支持SPDKVirtIONVMe-oF数据加解密和数据压缩等。

4)基础设施管理加速SDK:支持DPU managementTraffic telemetryPacket 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整合并封装了业界流行的异构计算设备(如GPUAIFPGA等)及其软件框架(如CUDAOpenCL),并提供统一的针对硬件资源访问的low-level API。这样,不同的硬件平台对上层应用开发来说是透明的,从而起到了跨平台的作用。

L1 APIOneAPIL1 API提供了一系列针对特定应用场景的High-level API, 这些API主要服务于机器学习数据分析并行计算视频处理等特定领域,有Deep Learning API, Data Science API, Data Analysis APIMultiple 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侧重点是支持基于Yusur DPU的网络、计算、存储服务加速的场景。

针对这三款软件框架在设计目的、五架构模型及各自特点上做了详细比较。

 

猜你喜欢

转载自blog.csdn.net/yusur/article/details/125258860