产品探秘|开物——面向AI原生和云原生网络研究的首选科研平台

ops/2024/9/20 1:37:26/ 标签: AI-native, 云原生, 网络, DPU

在当今高速发展的信息技术领域,特别是对于那些致力于前沿科技探索与实践的高校而言,拥有一款能够支持复杂网络业务研究与开发的平台至关重要。开物™数据网络开发平台(Data Network Development Platform,简称DNDP),是中科驭数根据现代数据中心、智算中心等场景下网络研发的新需求,面向高校及科研院所打造的软硬一体化开发平台。

DNDP是国内首款DPU开发平台,集成了FPGA和CPU SOC两大核心模组,中科驭数经过多年的技术积累,为用户预置了完整的硬件通路,让开发者可以快速上手实践,节省基础软硬件调试的时间,聚焦核心创新业务研究。本文将深入解析DNDP的亮点,帮助开发者更好了解DNDP平台提供的强大助力。

亮点一:超大容量FPGA和高性能CPU,足以满足复杂网络业务编程空间及性能要求

DNDP配备的345万LUTs FPGA资源,为复杂网络任务提供了充足的编程空间。FPGA作为一种可编程逻辑器件,能够实现高度并行的数据处理能力,特别适用于需要实时响应的网络应用。例如,在智能网卡的设计中,FPGA可以用来加速数据包的转发,减少延迟,提高吞吐量。DNDP的FPGA资源不仅可以支持传统的网络协议栈处理,还能够实现定制化的数据包处理逻辑,满足特定应用场景下的需求。

除了强大的FPGA资源外,DNDP还拥有16核2.0 GHz的高性能CPU资源。这些CPU主要用于控制面的处理,如协议栈的配置、流量管理等。高性能的CPU确保了控制面任务的及时响应,使得开发者可以更灵活地管理网络资源,实现动态调度和服务质量保障。此外,CPU还负责与外部系统的交互,提供API接口,便于集成第三方服务或应用程序。

▲DNDP平台硬件架构图

亮点二:内置丰富的DPU功能模块,让开发者专注于创新而非重新造轮子

DNDP内置了丰富的可编程数据网络功能模块,涵盖了从基础网络通信到高性能存储、虚拟网络和微服务管理等多个领域,是中科驭数DPU商业产品级成熟的业务模块。开发者可以在此基础上进行二次开发,构建更为复杂的业务逻辑设计和编程,无需担心底层实现的复杂性,从而将精力集中在自身的核心开发计划上,从零开始构建基础功能。

▲DNDP平台逻辑模块架构

LAN基础网络功能模块:包括基础网络包处理功能、无状态卸载加速

NP可编程网络引擎:支持OVS虚拟网络数据面卸载和P4编程两个模块

NOC片上互联网络:系统各模块可自定义互联、零阻塞数据传输

NVMe加速引擎:采用NVMe-oF技术,支持多路径负载均衡

OVS 虚拟网络交换机:虚拟网络控制、管理,实现虚拟机之间和虚拟机与物理网络之间的数据交互及流表管理

SPDK高性能存储开发套件:提供SPDK虚拟化加速功能和支持多种存储协议的卸载

OVN 高性能开放虚拟网络:支持云原生网络加速和通用容器网络接口

ServiceMesh 服务网格:提供集中式共享服务网络架构,实现无感知的服务治理

亮点三:完整的可编程数据网络互联通路,确保数据在不同组件之间的高效传输

DNDP提供了完整的可编程数据网络通路,准备好了从光口到FPGA、CPU、PCIe的全互连通道;为了便于调试和监控,也设置好了多种管控连接通路,方便开发者进行多维度观测。开发者开发的功能也可以基于DNDP现有的通路进行功能调试、仿真。

▲DNDP平台提供完整的可编程数据网络通路

亮点四:丰富的参考设计样例和配套手册,帮助开发者快速上手、高效开发

中科驭数拥有丰富的设计和开发调试经验,自研DPU均基于DNDP进行原型开发和验证。因此,DNDP为开发者提供了丰富的参考设计样例和配套手册,通过这些从DPU实践中沉淀的文档,开发者可以更快地上手进行实践。

为了更加方便开发者,DNDP还提供DNDP-SDK一键式工程样例部署工具,可以快速生成可编程的工程样例框架;同时,DNDP还提供HADOS®软件工具包,并支持Xilinx Vivado®和Vitis设计套件,提供高性能P4开发环境,多样化的开发环境,可以帮助开发者基于DNDP快速完成符合设计目标的数据网络开发工作,完成业务场景可行性验证。

▲DNDP平台用户手册(官网可下载)

写在最后

DNDP来源于驭数多年DPU研发经验的沉淀。众所周知,DPU功能丰富,但结构和内部逻辑异常复杂。为了保证DPU定义特性的正确性,中科驭数三代DPU芯片流片前,都使用DNDP进行了详细、全量的特性验证。在这个过程中,DNDP持续升级——容量、性能、易用性、多样性、可调试性——直至今天,早已成为一个完备好用的数据网络开发平台。

与此同时,我们了解到,对于高校和科研院所来说,在以往的教研中,多数需要通过仿真对业务可行性进行验证。由于缺乏真实环境,没有办法让学习人员直观地理解掌握教学内容,直接影响了教学质量。DNDP从实际需求出发,结合中科驭数自身的经验,总结归纳了多种多样的业务实现模型,为技术创新提供了参考方案,帮助开发者总结经验,开拓思路,配合科研院所完成更好的科研项目,让学生可以从理论学习走到实践验证,从而助力高校高科技人才培养。

当您使用DNDP遇到疑问时,可以通过邮件(dndpsupport@yusur.tech)等方式联系中科驭数以获取及时的指导。


http://www.ppmy.cn/ops/110648.html

相关文章

[WEBPWN]BaseCTF week1 题解(新手友好教程版)

WEB A Dark Room 这道题的考点是查看网页源代码 网页源代码这里看到的是网页的html css js在用户浏览器上执行的代码 有时候很多铭感信息,或者关键信息。 查看网页源代码的几种方式 1 右键点击查看网页源代码 2 F12 3 Ctrl U 快捷键 HTTP是什么 HTTP&#x…

ip属地河北切换北京

我们知道,每当电脑或手机连接网络时,都会分配到一个网络IP地址,这个IP地址通常与设备所在的地区网络相关联。然而,出于业务或个人需求,有时我们需要将本机的IP地址切换到其他城市。例如要将IP属地河北切换北京&#xf…

主流日志框架Logback与Log4j2

一、Logback 1、介绍 Logback是由log4j创始人设计的又一个开源日志组件。 Logback当前分成三个模块:logback-core,logback- classic和logback-access logback-core是其它两个模块的基础模块,类似与springframework logback-classic是log…

项目——负载均衡OJ

项目要实现的一个整体的功能: 编写一个在线OJ网络服务器,只实现类似 leetcode 的题目列表在线编程功能 项目宏观结构: Oj服务器在收到提交的代码时,把代码负载均衡的选择发送给其他几个编译与运行服务器去编译运行代码,判断代码的编译运行结…

python打包工具Nuitka使用介绍

首先说一下,为什么我选择Nuitka而不是pyinstaller? Nuitka相对pyinstaller有以下优点: 1. Nuitka能够对 Python 代码进行深度分析,并在此基础上生成优化后的 C 语言代码会针对生成的 C 代码进行更多的优化,这意味着生…

java面试题-Sql 语句的执行顺序

远离八股文,面试大白话,通俗且易懂 看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。 java面试题汇总-目录-持续更新中 Sql 语句的执行顺序 fr…

Ubuntu22.04安装nginx

1.安装nginx 首先,更新你的包索引: sudo apt update 安装必要的软件包以允许apt通过HTTPS使用仓库: sudo apt install ca-certificates curl gnupg lsb-release 添加Nginx官方的GPG密钥: curl -fsSL https://nginx.org/keys/ng…

简单计算机网络概念

1.浏览器过程 输入url,解析url 1.协议http、https的区别;HTTPS就是在HTTP与TCP之间增加了SSL/TSL安全传输层 2.格式:协议//主机:端口/路径; 3.HTTP版本:1.0和1.1 4.HTTP/1.1:1. 持久连接:为了…

下一代 AI 教育:知识图谱RAG + 多智能体,听老师的话没前途,让老师听你的才是正道

下一代 AI 教育:知识图谱RAG 多智能体,听老师的话没前途,让老师听你的才是正道 下一代 AI 教育:基于最本质的用脑方式学习 理解 记忆?学习的 3 个层次文科:关联理解 关联分析 关联记忆秒背古诗古文商业…

Redis之pipeline与事务

前言 Redis使用的是单reactor网络模型,也就是io多路复用非阻塞io的异步处理流程(注册事件,在事件循环callback处理事件)。我们可以将每个连接抽象看成一个pipe,哪个pipe中的数据先满就先处理。注意,单react…

数组与贪心算法——215、75、324、517(3中1难)

215. 数组中的第K个最大元素(中等) 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 解法…

CSP-J 算法基础 排序算法的基本概念

文章目录 前言排序算法的稳定性稳定排序算法的例子不稳定排序算法的例子总结 有序度和逆序度有序度(Sortedness)逆序度(Inversion Count)计算逆序度的例子 总结 满有序度计算公式解释举个例子总结 总结 前言 排序算法是计算机科学…

Ubuntu 常用指令和作用解析

Ubuntu 常用指令和作用解析 Ubuntu 是一种常见的 Linux 发行版,它利用了 Unix 的力量和开源软件的精神。掌握常用指令可以提高我们在使用 Ubuntu 时的效率。本文将介绍一些常见的指令及其用途。 目录 更新与安装软件文件与目录操作系统信息与资源监控用户与权限管…

【贪心算法】贪心算法

贪心算法简介 1.什么是贪心算法2.贪心算法的特点3.学习贪心的方向 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.什么是贪心算法 与其说是…

认识泛型和包装类

认识泛型和包装类 包装类基本数据类型和对应的包装类装箱和拆箱自动装箱和自动拆箱 什么是泛型引出泛型语法 泛型类的使用语法示例类型推导 裸类型(Raw Type)说明 泛型如何编译的擦除机制 泛型的上界语法示例复杂示例 泛型方法定义方法示例使用类型推导和不用类型推导静态的泛型…

go语言给结构体绑定方法

定义结构体person,里面有一个字段Name。因为person首字母小写,没有暴露,所以定义函数NewPerson,返回一个person指针。 package test_utils import ("fmt" )type person struct{Name string } func (p person) Test(){fmt.Println(…

Leetcode面试经典150题-141.环形链表

题目比较简单,重点是理解思想 解法都在代码里,不懂就留言或者私信 /*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public…

sql severs 递归查询

在sqlsevers 里面 WITH RECURSIVE 语句(在SQL Server中,通常使用 WITH 语句的公用表表达式(CTE)来实现递归查询),来处理这类查询 假设你有一个简单的BOM表结构,它可能包括以下几个字段&#xf…

Python中的“异常”之旅:探索异常处理的艺术

在编程的世界里,错误如同旅途中的意外,总是不期而遇。Python,这门优雅的语言,赋予了我们优雅地处理这些“不速之客”的能力——异常处理机制。本文将带你深入了解Python中的各种异常类型,不仅限于理论上的讲解&#xf…

泛微OA流程表单中的字符串控制只能填写数字

WfForm.bindFieldChangeEvent("field513173", function(obj,id,value){ WfForm.changeFieldValue("field513173", {value:value.replace(/[\u4e00-\u9fa5]|[^\w\s]/g, ).replace(/[a-zA-Z]/g, ).replace(/\s/g, )});});解释: [\u4e00-\u9fa5] 为…