鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

概述

简介

在可编程场景下,Data Acceleration Kit DPAK配套DPU卡使用,主要应用在公有云、私有云等场景中。在云场景中DPU一般作为计算节点(服务器)对外业务通信的主要通道。

DPAK面向开发者提供了可编程接口框架FlexDA(Flexible Data Accelerate),是一种开放式的软件架构设计方法,通过模块化、互操作性和扩展性,解决了传统架构在灵活性、集成能力和适应性方面的不足。它适用于企业级应用、分布式应用、云计算平台等多种场景,显著提升了系统的灵活性、扩展性和维护效率。

实现原理

FlexDA开放编程框架通过编程库和工具链,提供OVS开放编程和RDMA UCC开放编程能力。

  • OVS开放编程

    支持外部开发者基于华为DPU卡的OVS业务进行扩展定制,外部开发者可以在OVS的match-actions机制上,实现自定义报文解析、自定义流表、流表key/action和自定义pipeline能力。

  • RDMA UCC开放编程

    支持外部开发者可以基于华为标卡的RDMA业务进行扩展,将客户自有的RDMA拥塞控制算法嵌入到华为标卡的RDMA主流程中,用户通过修改配置文件的方式切换至自定义的拥塞控制算法。

软件架构

FlexDA编程框架提供的开放编程库和工具链整体如图1所示。

图1 FlexDA编程框架

编程库主要定义了DPU/NIC开放可编程的各种开放编程接口,按整体的业务设计,DPU/NIC开放编程库包括了L2和L3层接口。

  • L1层开放:配置接口,不属于开放编程的范围。
  • L2层开放:聚焦在对基础业务的开放上,针对DPU上的业务,开放业务层的编程接口,允许开发者通过实现Hook API和调用Lib API这些接口。开发者能够在基础业务的能力上进行一定程度的扩展,加入个性化的业务逻辑到基础业务能力上,实现对基础业务的扩展定制。
  • L3层开放:聚焦在对DPU通用算力的开放上,通过提供面向一个业务领域的通用基础库,可以让开发者从零构建自有的业务能力。

应用场景

FlexDA编程框架通过发布开放编程库和编程工具链,支持DPU/NIC上的网络领域的业务开发,从版本化演进转变成生态化定制。通过改变DPU/NIC当前的产品发布模式,引入生态开发者、目标客户、研究机构共同在芯片上开发业务场景,充分利用芯片上的算力,实现CPU、DPU在生态业务上的多样算力融合,实现业务加速。

作为构建DPU/NIC开放编程生态的基础,FlexDA编程框架会基于L2、L3层开放接口,逐步完善开放编程库;同时会基于DPU/NIC开放编程的开发全流程分析、完善开发工具链条,提升开发工具的友好性和易用性。另外,DPU/NIC开放编程在演进过程中,通过抽象DPU/NIC业务开放能力,逐步形成业务领域亲和、硬件信息无关的专属的开发语言DSL。DSL语言让开发者不需要了解硬件架构,硬件设计原理,只需要描述业务逻辑本身,即可完成可在芯片上高效运行的微码程序。