从I/O的视角看DPU

news2025/1/13 15:32:42

计算的流动性

随手翻开一个公有云,都会发现有不同的计算实例,搭配不同的CPU、内存、网络和存储来应对不同业务的需求.

当云原生和大量的新技术出现后,作为公有云考虑的最重要的一件事情就是提供这些丰富服务的成本:

青云、Ucloud也都在A股上市了,市场给出的估值参考并不高,而且还在持续亏损。而阿里云即便是盈利,份额也在下滑。如果大家想想这么多年来对三大运营商动刀,搞增速降费
,同样也是鲸落万物生
。所以公有云市场作为基础设施的提供方是不会允许它有高额利润的. 这是一些公有云厂商做DPU的最根本的初衷.

流动性的诞生

冯诺依曼架构诞生时的I/O是纸带,然后逐渐才是键盘和显示器,这些决定了其标量处理架构的本质:

超标量结构,SIMD,或者VLIW暂时解决了一些问题。但是只能针对一些For-loop或者顺序执行的场景,有大量分支的逻辑计算场景就有些力不从心了。所以我们还是要从数据计算本身来看

而在云时代,实际上大量的标量交互
已经发生在了前端
终端
。我们可以很容易的用低代码
的方式构建表格,让最终用户填写数据。云端的交互更多的变成了一种API对结构体数据
的处理, 大量的计算伴随着数据的流动
发生。这就是流式计算
的处理方式,因此伴随着这样的计算方式,微服务
Serverless
流计算
这些东西,但是计算任务
分割
如何处理是一个难题,这也是很多企业在微服务改造过程中遇到大量坑的地方.

因此下一代的云计算架构的核心是:

如何满足计算
数据
的流动性需求

紧耦合

在数据中心内部,将底层网络变得更加简单,然后更多的功能集成到DPU
中采用计算
存储
网络
更加紧耦合的方式,这就是DPU的内生逻辑:

Amdahl定律大家都懂,Scale-Out的路似乎因为规模正在终结,因此在第五代分布式计算架构需要从计算机体系结构上考虑更加紧耦合的解决方案来获得性能的提升

(免费订阅,永久学习)学习地址: Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家-学习视频教程-腾讯课堂

更多DPDK相关学习资料有需要的可以自行报名学习,免费订阅,永久学习,或点击这里加qun免费
领取,关注我持续更新哦! !   

智能网卡提供了一些基本的连通性加速和批量数据解析、加解密、可靠传输等工作负载的加速,这些数据处理业务固然重要。但它并不是全部


紧耦合需要发生在一切有可能发生的地方,并且要以数据为中心,围绕着数据构建一个平衡的分布式系统才是第五代分布式计算架构的核心。


以数据为中心平衡调度才是整个系统架构的关键词。一方面是计算机体系结构上向以数据为中心的处理架构靠拢,通过一些紧耦合的架构追求单节点的性能。另一方面是整个数据中心或者整个阿里云作为一个操作系统更加均衡的调度数据处理任务。

解耦

IBM一直在提一个话题解耦
内存[2] ,事实上这也是我们整个体系结构设计上一直在考虑的话题. 去年花了几个月的时间实现了Ruta[3]就是为了内存解耦
获得一个无拥塞、无丢包的安全可信通信环境.

从IBM的视频来看,现在的架构处理器需要有多种总线连接,但是似乎无法很好的分配这些I/O:

而从处理器的视角来看,其它总线都是串行
的,唯独内存
是并行总线

所以基于这样的想法,IBM构建了OMI接口,并使用串行总线连接内存子系统,可以看到使用8个OMI Channel的芯片和8个标准DDR4 Channel的芯片针脚使用率的对比

然后顺便用Power10和AMD Rome、nVidia Ampere做了对比,串行总线的确节省了die size和pin的数量

Power10的内存带宽:

最终内存总线也变成一个串行总线了:

解耦合后的架构来看,虽然给一些设备增加了一道访问内存的延迟,但是从处理器视角来看,所有的总线都被更替为内存总线干净了不少吧:

看到这个PPT想起网络的十二条军规中的一条:

It is always possible to add another level of indirection.推论:总是可以增加一层来迂回解决问题

正如最近某些教育机构没法教育娃了,但是可以加一个Overlay去教育家长呀:)

提供流动性

事实上不同的应用有不同的需求,这也是公有云要提供那么多实例类型的原因:

因此IBM有了一个想法,如何像拼乐高那样把这些需求动态的组合起来?

所以最终就需要一种分布式的方法来构建整个系统: 

这里就要涉及到两种组合方式了, 一种是类似于Fungible的做法,将各种设备池化,另一种是Chiplet封装的技术,当然各自有一些优缺点.

然后IBM就提出了基于OCP OAM-HPC Module的方式来构建

利用通用的协议无感知的串口连接器来构建:

然后内存也可以池化了:

同时在Power10上还提供了内存多跳借用的机制:

从这个角度来看,Power10实现了接口的统一,利用OCP-HPC相对标准的接口,同时提供了OMI、SMP、PCIe5.0等多种总线的互访,乐高块搭好了.

加法容易减法难

正如前文所述,总是可以增加一层来迂回解决问题,最后一条军规则是

12.在设计协议时,仅当无法再拿掉什么时才算完美,而不是无法再增加什么

增加一颗DPU、增加一个串行内存,看似解决了不少问题,但是冯诺依曼架构真正的瓶颈还没触碰到: 

然后为了提升性能降低内存墙而设立的多级Cache逐渐也成了问题:

这些多级缓存犹如三峡的多级船闸:

DPU的实现,一定要告诉自己,做一个加法的时候,一定要顺手做两个减法。Clarence在做MPLS-SR的时候最大的成功就是利用SR剪掉了LDP、RSVP.但是SRv6至今并不成功的原因就是在v6 Option Header上的加法使得防火墙等很多节点还要做更多的加法、SID更长还要做uSID、gSID压缩的加法..

最终的减法,有OMI,有Ruta,有存内计算,还有操作系统...

Good, Fast, Cheap: Pick any two

Reference

[1]

夏寒:闲谈算法、云计算公司估值:https://mp.weixin.qq.com/s/JroLFecZzcvaDYFaohlqaQ

[2]

Decoupling Compute from Memory, Storage & IO with OMI:https://www.youtube.com/watch?v=c0DuGSwDpqY

[3]

Ruta:https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzUxNzQ5MTExNw==&action=getalbum&album_id=1364600286966415361#wechat_redirect

原文链接:​https://www.modb.pro/db/193490​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19365.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Redis] Spring Boot 使用Redis---RedisTemplate泛型约束乱码问题

✨✨个人主页:沫洺的主页 📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专…

牛客网-《刷C语言百题》第五期

✅作者简介:嵌入式入坑者,与大家一起加油,希望文章能够帮助各位!!!! 📃个人主页:rivencode的个人主页 🔥系列专栏:《C语言入门必刷百题》 &#x…

计算机毕业设计ssm+vue+elementUI高校志愿者服务招募网站

项目介绍 随着我国教育制度的改革和社会的进步,越来越多的人希望加入志愿者这个行列从而贡献自己的一份爱。加入志愿者不仅能够更好的锻炼自己,也可以帮助那些需要帮助的人,从而让社会变的更加温暖和美好,尤其是对比较发达的地区…

基于matlab创建基于物理统计的雷达模型(附源码)

目录 一、前言 二、、定义场景 三、定义用于检测生成的雷达 四、生成统计雷达检测 五、定义用于 IQ 信号生成和处理的雷达 六、IQ 信号和处理仿真 七、总结 八、程序 一、前言 此示例演示如何以编程方式从统计雷达模型创建基于物理的雷达模型。 雷达是一种感知系统&…

Zookeeper的功能简介

1.ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终&#xff…

超神之路 数据结构 2 —— Queue队列实现和循环队列和普通队列的性能比较

接上一篇继续往下挖,在上一篇,我们实现了一个属于自己的动态数组。利用这个动态数组,我们来实现一个基于动态数组,一个属于自己的普通队列Queue。 Queue 是一种它许我们从表的一段进行删除,表的另一端进行插入的线性表…

Docker—苹果Mac安装Docker的两种方式

文章目录Docker简介方式一:官网dmg安装方式二:homebrew安装前置条件brew安装docker关注微信公众号:CodingTechWork,一起学习进步。Docker简介 &emsp docker就是集镜像、容器和仓库三个概念于一身的集装箱,应用于…

GPO:组策略与系统配置

1、所有的服务器不需要按ctrl+alt+del交互式登录; 2、关闭所有机器的睡眠功能 3、所有计算机都不允许登录Microsoft账户; 4、允许IT组进行系统时间修改 5、设定所有职务为managers的用户为本地管理员,除了域控制器 GPO:组策略与系统配置 所有的服务器不需要按ctrl+alt+del;…

基于ELK搭建的本地社工库

简介 ELK原本是一个开源实时日志分析平台。 ELK是三个开源软件的缩写,分别为:Elasticsearch 、 Logstash以及Kibana 。目前又新增了一个Beats,是一个轻量级的日志收集处理工具,Beats占用资源少,适合于在各个服务器上…

Greenplum GPKafka【实践 01】使用GPKafka实现Kafka数据导入Greenplum数据库踩坑问题记录(不断更新ing)

1.说明 Kafka 是分布式消息订阅系统,有非常好的横向扩展性,可实时存储海量数据,是很常用的流数据处理中间件。物联网设备采集的数据很多时候就是通过 Kafka 进行处理的。当 Kafka 数据要入库分布式数据库 Greenplum 时,我们就需要…

二、IAR新建一个工程

之前录制了无线传感网综合项目实战课程,这个课程非常适合应届毕业生和想转行Linux的朋友,用来增加项目经验。 其中一部分内容是关于CC2530zigbee的知识,后面会更新几篇关于cc2530的文章,敬请关注! 下面是该系列文章链…

gcc 好玩的 builtin 函数

gcc 好玩的 builtin 函数 前言 在本篇文章当中主要想给大家介绍一些在 gcc 编译器当中给我们提供的一些好玩的内嵌函数 (builtin function)🤣🤣🤣 。 __builtin_frame_address 使用内嵌函数实现 __builtin_frame_address(x) // 其中 x 一…

【GPU】Nvidia CUDA 编程高级教程——利用蒙特卡罗法求解近似值(MPI方法)

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

无线蓝牙运动耳机推荐,目前实用性不错的运动耳机推荐

对于运动人士来说,运动耳机是日常出门标配,一款实用性好的运动耳机能给我们带来很大的动力,在运动时戴着听音乐,能够释放压力的同时让运动过程变得更加心情愉快。但是运动耳机实在是太多了,琳琅满目,各种各…

c++11特性(3)

1.lambda表达式 a.出现由来: 以sort为例,我们可以传入一个仿函数对自定义类型进行排序。但是,对每一种比较方式我们都要显示传一个仿函数太麻烦。要是乱命名更加要命,那就除了写这段代码的人没人看得懂了! b.lambda…

基于象虫损害优化算法的投资组合问题(Matlab代码实现)

📝个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,…

我的写作心得

前言 首先,博主是一个在校高中生,平常可以说几乎没有时间来创作文章,所以说断更也是很正常的 时隔半年,我也在csdn累计了400多个粉丝(截止我创作这篇文章的时候),从之前的一无所有&#xff0c…

PCL交互选择ROI区域

PCL的配置和如何配准点云可见博主之前的博客 win10环境下PCL安装和配置回顾(一)_竹叶青lvye的博客-CSDN博客_pcl win10 win10环境下PCL安装和配置回顾(二)_竹叶青lvye的博客-CSDN博客_win10 安装pcl PCL - 3D点云配准(registra…

状态保持-JWT

“ Web的状态保持技术 -JWT(Json Web Token)” 在分布式微服务技术流行的今天,大型网站对JWT的使用愈加频繁,相比较于传统的session cookie。 HTTP 是一个无状态的协议,何为无状态呢?就是说这本次请求和上次…

【毕业设计】67-基于单片机的三相电压型SPWM逆变器控制设计及应用(仿真、原理图、源代码、低重复参考文档、答辩PPT、英文文献)

【毕业设计】67-基于单片机的三相电压型SPWM逆变器控制设计及应用(仿真、原理图、源代码、低重复参考文档、答辩PPT、英文文献) 文章目录【毕业设计】67-基于单片机的三相电压型SPWM逆变器控制设计及应用(仿真、原理图、源代码、低重复参考文…