0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DOCA SDK及框架的综述

jf_C6sANWk1 来源:软硬件融合 作者:Chaobowx 2022-10-10 11:24 次阅读

编者按:

NVIDIA最大的成功是把GPU变成了GPGPU,使之成为了最广泛的异构加速器件;而构筑起坚固护城河的的则是庞大的CUDA生态。 2020年10月,NVIDIA DPU发布,同步发布了DOCA开发SDK及框架。是否能够基于DOCA构建DPU的成熟生态,复制GPU和CUDA的成功,大家拭目以待。本文是DOCA SDK及框架的综述。

1 DOCA定义

现代企业数据中心是软件定义、完全可编程的数据中心,旨在跨越云、核心和边缘环境为高度分布式的应用工作负载提供服务。软件定义的数据中心可提供类似云的灵活性和敏捷性,但会消耗许多CPU核资源,降低服务器和数据中心的效率。通过DPU和DOCA(Data Center Infrastructure on a Chip Architecture),可以实现软件定义且硬件加速的基础设施,更大限度地提高数据中心的性能和灵活性。

4eb7fa72-3743-11ed-ba43-dac502259ad0.png

DPU位于数据中心的服务器节点内,DOCA是用于在BlueField DPU上开发应用程序的软件框架。借助DOCA,可以在BlueField DPU,从主机CPU卸载并加速基础设施工作负载。 开发者基于DOCA开发运行在DPU上的各种服务,让DPU成为与业务隔离的、安全的服务域(或Enclave),用于网络、安全、存储和基础设施管理。

DPU可加速所有关键数据中心的基础设施服务,还可以运行控制平面的软件,如软件定义网络(SDN)的控制器、分布式存储软件,或在可编程Arm核上运行新一代防火墙代理。

2 NVIDIA Bluefield DPU

BlueField DPU包括:

一个强大的智能网卡,可支持高速以太网或InfiniBand两种接口

一组Arm核以及DRAM

PCIe交换机

通过高速Mesh网络连接在一起。

嵌入式ConnectX智能网卡包含许多加速器(网络、云、存储、加密、流媒体、时间同步等),BlueField更是增加了面向安全、存储虚拟化、硬件隔离和远程管理的加速器和功能。

3 DOCA的功能组件

4ed20d18-3743-11ed-ba43-dac502259ad0.png

从开发者的角度来看,DOCA可划分为两大领域:

SDK组件,帮助您构建在DPU上运行或使用DPU的应用程序。

DOCA运行时集,包含在DPU上运行应用程序所需的组件。

DOCA软件包括:

DOCA SDK提供行业标准的开放式API和框架,其中包括用于网络和安全的DPDK和P4,以及用于存储的SPDK。这些框架通过集成的NVIDIA加速包简化了应用卸载开发。

DOCA SDK支持一系列操作系统及其发行版本,并且包含驱动、库、工具、文档和示例应用程序。

基于DOCA的服务以行业标准的I/O接口开放给计算节点,从而实现基础设施虚拟化和隔离。

DOCA运行时环境包括用于在数据中心内的数百或数千个DPU上进行预置、部署和编排容器化服务的工具。

BlueField DPU和DOCA框架允许将基础设施服务转移到DPU,从而卸载和加速这些服务。DOCA支持在应用层和基础架构服务层进行开发。SDK包含的关键组件:

行业标准API:DPDK、SPDK、P4;

网络加速SDK:ASAP2 SDN、模拟的VirtIO、P4、5T for 5G技术;

安全加速SDK:inline加密、深度数据包检测

存储加速SDK:存储Emulation和虚拟化、加密和压缩;

RDMA加速SDK:UCX、RDMA Verbs、GPUDirect;

管理SDK:部署、预配置、服务编排;

用户空间接口和内核空间接口。

运行时包含二进制库、运行时二进制文件、编译工具、安装工具、基准测试程序以及各种DOCA服务代理。借助这些,您可以使用不同的DPU API和功能,设置DPU卡、安装合适的操作系统,以及在DPU上运行您的软件。运行时还包括各种管理工具,用于配置和支撑服务器中和网络中的DPU卡,同时支持编排容器化操作与各种加速服务。

DOCA 1.0包括了使用DPI的加速负载均衡器参考应用程序,以及使用DPI和regex模型匹配的下一代防火墙代理参考应用程序。他们都充分利用了DOCA库和DPU上的加速功能的优势。它们包含源文件,无需在DPU上进行编程。但是,它们可以提供DPU API和库的使用示例,从而简化应用程序的开发和集成。未来的DOCA版本中可能会添加更多的参考应用程序。 DPU管理工具和其他功能:

SDK管理器。帮助在运行DPU的机器上安装和更新BlueField SDK。它会在主机上安装 DOCA SDK和运行时,并在主机上安装用于更新BlueField的操作系统和DOCA的开发容器。

配置工具。旨在简化管理和自动化部署数据中心中的大量DPU卡,可以通过脚本和管理工具来实现。

遥测。可以在DPU上选择性地捕获和共享网络和服务器的关键遥测数据,然后分享和收集这些数据给日志管理工具、数据分析工具或网络安全工具等。

以下功能目前可以从BlueField DPU软件包或Mellanox OFED库中获得,并将被添加到未来版本的DOCA SDK中:

网络流量加密(使用IPSec或TLS);

面向时间同步数据中心的超级准确的精度时间协议(PTP);

高性能计算/AI的集合通信卸载;

关于NVIDIA GPUDirect Storage(GDS)的支持;

等等。

通过DPU将远端网络存储虚拟为本地NVMe SSD或virtio-blk(虚拟IO-块存储)设备的BlueField SNAP技术。DOCA运行时包含的SNAP功能,可支持通过SPDK库访问上层开发者SDK,更多的SNAP功能将会逐渐添加到DOCA SDK。 4ee1c5aa-3743-11ed-ba43-dac502259ad0.png

BlueField操作系统包含引导加载器、操作系统内核、必要的网卡固件、NVIDIA驱动、示例文件系统和工具链。NVIDIA BlueField DPU预装商业级Linux发行版Ubuntu Server 20.04,并且持续提供操作系统和安全更新。作为一个独立的软件包,DOCA可以在多种业界领先的操作系统上使用,而不与某个特定的Arm或x86操作系统进行捆绑。

4 DOCA的价值和作用

DOCA的关键作用

DOCA利用行业标准API,基于NVIDIA DPU快速创建应用程序和服务;

DOCA和BlueField DPU相结合,使得开发者能够开发具备突破性的网络、安全和存储性能的应用程序。

BlueField将基础设施服务域与工作负载域隔离开来,显著提高了应用程序和服务器的性能、安全性和效率;

同时,DOCA为开发者提供了实现优化、安全、加速数据中心所需的各种工具。

DOCA的特点:

满足未来需求。DOCA可提供多代产品支持,给予开发者充分信心,确保今天开发的应用程序能够在未来各代的BlueField上持续运行,并持续获得性能加持。

卸载、加速、隔离基础设施。网络、存储和安全服务可通过DPU进行卸载、加速和隔离,同时以线速性能安全地把数据传输给上层工作负载。

开放式生态系统。DOCA提供软件应用程序框架,加速生态系统开发。

4.1 加快基础设施服务走向市场的时间

DOCA包括了API、驱动、库、示例代码、文档和预设的容器等,可激活BlueField-2 DPU的加速、安全和虚拟化功能。DOCA提供一套统一且可靠的工具,用于开发基于DPU运行的关键数据中心服务,以处理多种类型的数据处理。其中包括:

定向网络流量;

存储的加速、虚拟化和压缩;

数据加密和解密;

安全威胁扫描;

与远程管理工具的集成;

在Arm核上运行控制平面应用。

您可以对这些卸载和加速器进行编程,实现单独或一起使用,并可与基于GPU的NVIDIA AI平台进行集成。 DOCA助力应用程序开发者、设备供应商、研究人员和NVIDIA软件合作伙伴通过SDK对所有这些DPU功能进行编程。许多功能的接口在底层的API和上层编程语言中均会提供。

这些基于DPU运行的服务不仅仅是软件定义、硬件加速,而且支持AI、易于编程。 未来几代BlueField DPU将借助新的增强型加速器提供更强的计算力。DOCA可通过扩展API的方式来支持新的功能,确保了与DPU的前向兼容。NVIDIA致力于通过架构流程技术和软件创新来提升性能。我们持续提升云、核心和边缘环境以及应用工作负载的性能和功能。

4.2 简化BlueField DPU上的服务创建流程

4.2.1 网络

DPU可加速SDN和NFV:开放虚拟交换(OVS)、Overlay网络(例如VXLAN)、网络地址转换(NAT)、自动负载平衡、细粒度流量管理和内容分发网络。 DOCA支持通过标准DPDK API将服务应用和DPU加速引擎关联起来,例如rte_flow库可以支持基于流的不同操作,包括Overlay封包、包头重写、Hairpin,以及对虚拟网络功能的测量。

为提升性能和主机CPU效率,DOCA还包含了原生OVS-kernel和OVS-DPDK应用程序,通过BlueField DPU的硬件加速交换和数据包处理(ASAP2)技术提供无缝加速。

DPU硬件对于主机网络的加速,由DOCA编程平台上运行的OVS应用来定义,数据中心SDN控制器来编排所有网络,并通过DPU的带外管理端口进行连接。 P4是另一种语言,可以对BlueField DPU中灵活、可编程的数据路径加速器进行编程。

DOCA 支持P4语言,可支持未来基于P4开发的VNF业务。这个功能被集成到了已经拥有丰富的VNF产品生态系统的其它API中。此架构允许同时执行面向内核、RoCE、DPDK、SPDK、P4 和P4.runtime接口编写的程序,这些可无缝共存并充分利用DPU数据路径加速。

4.2.2 存储

对于存储,DPU支持加速软件定义的弹性存储、NVMe over Fabrics (NVMe-oF)、RoCE、静态数据加密、数据删除、分布式纠错和数据压缩。BlueField DPU NVMe SNAP技术可提供弹性块存储功能,并向主机提供远程块存储,如同它是本地NVMe块存储或VirtIO-blk块设备一样具有低延迟、高吞吐量和高IOPS等特性。

DOCA完全支持SPDK开源框架,可助力您创建自己的存储解决方案。通过模拟对PCIe NVMe磁盘的的访问,利用BlueField DPU的多项加速功能来实现各种自定义的逻辑,主机应用可以透明地管理模拟出来的NVMe存储。其中包括加密、ECC分布式纠错、压缩、重复数据删除和恶意软件扫描。如果您要通过DOCA进行编程,现在无需对个别引擎进行显式编程,即可轻松调用用于数据存储的功能。

4.2.3 安全性

DPU还可以卸载、加速和隔离所有关键数据中心安全服务。其中包括支持新一代防火墙、微分段、使用透明IPSec和TLS进行动态数据在线加密以及入侵保护。DPU拥有一组专用的安全引擎,包含了构建安全解决方案的所有模块。 DOCA包含一组用于开发安全应用程序的标准化API。

所有安全服务均始于数据包采集、解密、连接状态的有状态跟踪,一直到7层深度数据包检查。这样会将应用程序流量分类为受信任或恶意。此外,它最终还会将定义的安全策略转换为一系列操作,例如数据包允许、丢弃、重写或重定向。编程通过标准DPDK API完成,如下所示:

rte_security,用于加密和解密

rte_sft库,用于连接感知

rte_regex库,用于正则表达式模式匹配

rte_dpi库,用于对所有流水线加速函数进行深度包检查

DOCA还支持基于IPSec、TLS和存储AES-XTS的原生内核加密,由DPU实现在线加速,可以轻松用于基于OpenSSL或OVS-IPSec的应用。这支持DPU在不通知主机的情况下透明地对所有流量进行加密和解密。其中包括DPU在安全Enclave内执行密钥管理。

通过RDMA库对主机进行快速内存访问,DOCA可让您创建严格的主机自检方案。借助自动恶意软件扫描,您可以进一步了解从DPU到主机的一举一动。如果发现恶意活动,您可以通过对DPU的硬件加速引擎的编程,达到以线速来执行策略。

4.2.4 基础设施管理

传统管理会在每台服务器上运行代理。但是,运行这些代理会消耗本可用于业务应用的CPU周期。代理通常无法监控服务器上VM之间以及容器之间的网络流量。如果代理执行数据包过滤或流量遥测等功能,则会消耗更多CPU周期。如果服务器发生严重故障,则基于VM 或容器的管理代理不太可能报告状态或重启服务器。

DOCA允许业务隔离的、基于DPU的代理执行带内或带外管理,而不会给服务器CPU增加负担。如果服务器需要重置,或者甚至租户或业务应用需要一台无代理的裸金属服务器,通过DOCA编程的DPU仍可发送遥测数据、执行远程重置或允许安全启动服务器,这些操作均无需在服务器CPU上运行代理。

4.3 使用DOCA的益处

BlueField的许多功能和加速器均可通过特定API、开源SDK或现有驱动进行访问,使用DOCA的主要益处是简化使用DPU的基础设施应用程序和功能的开发和部署流程。这样可以加快应用和其它BlueField的功能进入市场的速度:

统一访问所有DPU功能,不必学习和使用多种不同的工具。

在DPU的底层API上提供一个抽象层给上层的库,可以更快速、更轻松地进行开发,实现和上层业务的集成;也可以直接和底层接口交互,从而达到更精细的控制。

向前/向后兼容性。使用DOCA进行开发意味着应用可以在未来版本的BlueField DPU上无缝运行,且得到了更高的性能和扩展性。

基于容器化服务的DPU调配和部署。DOCA包含用于简化DPU设置、配置和服务编排的工具。

5 BlueField DPU和DOCA密切协作

通过BlueField DPU和DOCA,可以整合通常无法一起部署的数据中心基础设施服务。例如,由CPU或独立Look-aside加密卡对动态数据进行加密时,无法和RoCE、压缩、哈希或 Overlay网络一起工作。事实上,执行此类加密会禁用以上操作及许多其它网络卸载功能。

这是因为,如果先对数据进行加密的话,意味着网络设备不再能识别数据包的内容,进而无法执行巧妙的数据包重路由、过滤、拥塞管理等操作。但是,使用BlueField DPU和DOCA, 您可以通过编程将RoCE、VXLAN、哈希计算、压缩,以及许多其它卸载功能与加密功能组合在一起,以及它们之间互相组合。

DOCA将所有功能合并到一个SDK,使用基于通用开放API的加速库来即刻释放DPU的力量。您还可以使用DOCA,透明地将关键控制平面应用或代理从X86域移植到DPU的Arm 核,从而提高服务器性能、效率,并实现工作负载和安全的隔离。

6 对数据处理加速和AI进行编程

重要的是,DOCA更进一步地支持先进的GPU加速的AI工作负载,被完全整合到了大型NVIDIA NGC加速计算软件平台,成为了其中的一个测试项。 对于传统的企业应用,DOCA可加速包含BlueField DPU的系统中的数据中心基础设施服务。

但是,对于包含DPU和GPU的系统,加速AI和数据分析工作负载具有巨大优势。DOCA 已集成到NGC认证计划。它可以充分利用大量的开发、集成和测试资源,支持NVIDIA的全部AI应用程序框架(NVIDIA Riva、NVIDIA Merlin、NVIDIA Metropolis、NVIDIA Clara、NVIDIA Aerial等)。

DOCA与NGC平台集成,还释放了各类第三方软件基础设施与应用的强大功能。 可以将DOCA与CUDA结合使用,通过GPU加速计算并通过DPU加速数据中心服务。还可以使用DOCA启用GPUDirect,加速整个网络中GPU之间的通信。

7 DOCA编程选项

当对DPU进行编程时,可以直接访问驱动。这通常需要底层编程和详细的驱动知识。在大多数情况下,对DOCA库进行编程会更加轻松,这些库为驱动提供了上层的抽象层。它的优势就是已经针对每个用例进行了调优,可获得更出色的加速性能。

参考应用提供了实际工作代码以及DOCA库的使用示例。在某些情况下,可以使用这些参考应用作为基础,然后通过修改它们来满足运行在DPU上的不同应用和方案。 例如如果想构建一个可加速的负载均衡器,或者集成一个分布式防火墙的代理到DPU,可以选择DOCA中关于深度数据包检测(DPI)库的相关参考应用。

这些库又运行在DPDK库上,利用DPU内的有状态连接跟踪和正则表达式(regex)匹配引擎进行加速。

加速负载均衡器 NGFW下一代防火墙代理 弹性存储
DOCA参考应用 负载均衡器 防火墙代理 <2021年6月推出>
DOCA库 DOCA Flow和DPI DOCA Flow和DPI SPDK
底层API/Lib FTE_FLOW、DPDK SFT、DPDK REGEX、DPDK RTE_FLOW、DPDK RegEx SPDK、BlueField SNAP
DPU硬件功能 eSwitch、连接跟踪、RegEx eSwitch、连接跟踪、RegEx RDMA、BlueField SNAP、PCIe交换机


表1 三个例子来解释DOCA是如何运行在底层API/Lib和DPU上,以及如何来访问底层API/Lib和DPU件功能的

8 DOCA 1.1更新

DOCA 1.1版本建立在DOCA 1.0的强劲势头之上,并包含以下更新:

DOCA FLOW-LIB,用于网关性能的加速,以实现不同网络间互操作性;

DOCA FLOW示例应用,用于URL和DNS过滤与转发功能;

加速有状态流表(SFT),用于连接追踪功能;

加速正则表达式(RegEx),用于与DPI Lib进行模式匹配;

引入x86平台上的DOCA Runtime,用于加速在主机x86处理器上运行的应用,不必所有的业务都卸载到DPU。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16159

    浏览量

    177279
  • DRAM芯片
    +关注

    关注

    1

    文章

    84

    浏览量

    17997
  • DPU
    DPU
    +关注

    关注

    0

    文章

    354

    浏览量

    24116
  • sdn
    sdn
    +关注

    关注

    3

    文章

    254

    浏览量

    44743

原文标题:DOCA综合介绍:让NVIDIA DPU更加强大

文章出处:【微信号:阿宝1990,微信公众号:阿宝1990】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    通过Google Play SDK管理中心打造更安全、更优质的SDK

      虽然 SDK 可以为应用开发者带来许多好处,但也可能会以不易识别或难以控制的方式影响应用。因此,我们在 2021 年推出了 Google Play SDK 管理中心,并在其中纳入了一些被广泛采用
    的头像 发表于 11-14 10:36 95次阅读
    通过Google Play <b class='flag-5'>SDK</b>管理中心打造更安全、更优质的<b class='flag-5'>SDK</b>

    NVIDIA DOCA-OFED的主要特性

    NVIDIA DOCA 软件平台释放了 NVIDIA BlueField 网络平台的潜力,并为NVIDIA BlueField和ConnectX设备提供了所需的所有主机驱动程序。DOCA 针对峰值
    的头像 发表于 11-09 13:50 145次阅读

    简单了解SDK与APK的区别

    不少小伙伴在开发软件中会提到两个词:API和SDK。虽然它们看起来很专业,但其实背后的概念并不复杂。这篇文章能简单的帮你了解SDK与APK的区别。
    的头像 发表于 10-11 10:08 638次阅读

    IB Verbs和NVIDIA DOCA GPUNetIO性能测试

    NVIDIA DOCA GPUNetIO 是 NVIDIA DOCA SDK 中的一个库,专门为实时在线 GPU 数据包处理而设计。它结合了 GPUDirect RDMA 和 GPUDirect
    的头像 发表于 08-23 17:03 476次阅读
    IB Verbs和NVIDIA <b class='flag-5'>DOCA</b> GPUNetIO性能测试

    BES2300 SDK简介

    BES平台SDK软件开发
    发表于 06-14 16:56 1次下载

    借助NVIDIA DOCA 2.7增强AI 云数据中心和NVIDIA Spectrum-X

    NVIDIA DOCA 加速框架为开发者提供了丰富的库、驱动和 API,以便为 NVIDIA BlueField DPU 和 SuperNIC 创建高性能的应用程序和服务。
    的头像 发表于 05-29 09:22 454次阅读

    聚沃科技SDK使用指南

    本文主要针对SDK如何重定义硬件接口和外设参数进行说明,方便让大家快速灵活使用聚沃科技SDK
    的头像 发表于 05-06 10:23 453次阅读
    聚沃科技<b class='flag-5'>SDK</b>使用指南

    SLAMWARE ROS SDK的基础架构、部署方法和应用示例介绍

    ROS作为机器人行业应用最广泛的基础架构之一,是很多用户开发机器人应用的首选框架,如果要在基于ROS开发的系统中集成思岚科技的机器人底盘或者SLAMKit建图定位解决方案,有什么最便捷的方法呢?ROS SDK就是为此而生。
    的头像 发表于 03-21 10:44 827次阅读
    SLAMWARE ROS <b class='flag-5'>SDK</b>的基础架构、部署方法和应用示例介绍

    基于NVIDIA DOCA 2.6实现高性能和安全的AI云设计

    作为专为 NVIDIA® BlueField® 网络平台而设计的数据中心基础设施软件框架,NVIDIA® DOCA™ 使广大开发者能够利用其行业标准 API 在 NVIDIA BlueField
    的头像 发表于 02-23 10:02 427次阅读

    跨Android、iOS、鸿蒙多平台框架ArkUI-X

    ArkUI是一套构建分布式应用界面的声明式UI开发框架。它使用极简的UI信息语法、丰富的UI组件、以及实时界面预览工具,帮助您提升移动应用界面开发效率30%。您只需使用一套ArkTS API,就能
    的头像 发表于 01-31 14:52 1709次阅读
    跨Android、iOS、鸿蒙多平台<b class='flag-5'>框架</b>ArkUI-X

    DA14592 SDK发布说明

    电子发烧友网站提供《DA14592 SDK发布说明.pdf》资料免费下载
    发表于 01-29 13:45 0次下载
    DA14592 <b class='flag-5'>SDK</b>发布说明

    芯圣SDK工具,让开发更方便——SDK-HC89S105A

    SDK-HC89S105A是基于HC89S105A设计的快速开发工具。SDK-HC89S105A由HC89S105A微控制器的主控板和HC-LINKV4.0仿真烧录器两部分组成。用户只需使用此开发板
    的头像 发表于 01-17 09:42 513次阅读
    芯圣<b class='flag-5'>SDK</b>工具,让开发更方便——<b class='flag-5'>SDK</b>-HC89S105A

    快速入门BlueNRG SDK固件开发流程

    本文档指导用户快速地对 BlueNRG SDK 有一个直观、清晰的认识,了解其软件架构,以便顺利地学会利用 SDK 开发自己的用户固件。
    的头像 发表于 01-13 10:43 1853次阅读
    快速入门BlueNRG <b class='flag-5'>SDK</b>固件开发流程

    NVIDIA DOCA 2.5 长期支持版本发布

    基础设施开发者的全面软件框架,NVIDIA DOCA 已被领先的云服务提供商、企业和 ISV 创新者所采用,为开发、优化和部署基于 NVIDIA BlueField 系列产品的加速应用程序和服务提供
    的头像 发表于 12-26 18:25 379次阅读
    NVIDIA <b class='flag-5'>DOCA</b> 2.5 长期支持版本发布

    DshanMCU-R128s2 SDK 入门

    本章介绍基础的SDK编译,打包等操作,方便快速上手 SDK 开发。
    的头像 发表于 12-22 15:40 622次阅读
    DshanMCU-R128s2 <b class='flag-5'>SDK</b> 入门