IPU是什么?

樱桃今天正式发布了IPU[1],正好我这几天也在写关于 流动基础架构[2] 和智能网卡[3]的东西,那么就稍微多说几句.

樱桃对IPU的定义还是简单的加速和Offload, 当然这么说有些含蓄,毕竟公司的家业是CPU怎么能喧宾夺主呢?

  • 通过专用协议加速器来加速基础设施功能,包括存储虚拟化、网络虚拟化和安全。
  • 通过把软件中的存储和网络虚拟化功能从CPU转移到IPU,从而释放CPU核心。
  • 允许灵活的工作负载分配,提高数据中心利用率。

然后内容发布上和AWS发布Nitro的视频差不多,先讲网络、存储Offload、再讲虚拟化、最后讲可信计算, 当然可能樱桃自己想明白了,只是不想多说,那么我继续来把这些背后的逻辑点破:

  1. 基础设施的构建一定要满足数据和计算的流动性需求
  2. 计算和数据流动性可以看作 CPU/内存/存储/网络 等资源的按需组合
  3. 计算任务的时延约束和不可分约束需要对池化资源进行有效的拆分整合
  4. 拆分对应虚拟化,以果金属为代表。
  5. 整合对应Fungible DPU场景,多资源组合成一个HPC,再进一步构建HPC集群

从樱桃视角看

如果从樱桃CPU的视角来看,以CPU为中心,早期可能还有南北桥,很多复杂的I/O设备 

IPU是什么?

但是这些年逐渐演进,存储的瓶颈伴随着NVMe逐渐使用被解掉,原有的南桥或者PCH芯片功能就越来越简单,以CPU的视角看,所有的设备(除内存)都可以挂PCIe上 

IPU是什么?

那么接下来就是处理内存的瓶颈了,于是Gen-Z、OMI、CCXI、NvLink逐渐提出,最终似乎CXL成了标准统一的答案。但是网络呢?樱桃一开始就尝试了Omni-Path,但是现在基本上销声匿迹了

然后买了Barefoot暂时还不知道下一张牌打什么..另一方面黄教主把NvLink和Infiniband 玩的风生水起,即便是以太网不走个RoCE都觉得丢人啊..当然网络的话等会儿再说..

回到CPU的视角来,Intel应该好好想想我给的这张图:

本质上你们看DPDK上做RSS和你们自己做DDIO是为了啥?减少网络I/O Path的长度,尽量把数据送到CPU内,然后最好CPU还能做一些结构体Parser的优化,毕竟数据中心业务以结构体数据为主,也就是NanoPU提出来的根本原因。然后针对结构体的修改和操作,添加和删除一些数据段通常在传统CPU中需要大量的内存移动,针对这样的处理迟早需要增加一个类似于P4 Deparser的东西,并采用快慢指针的方式直接streaming的边发送边修改数据.

从网络的视角看

但是最终呢?Omni-Path、Infiniband终将输给以太网,因为开放兼容的生态. 所以昨天我在跟Azure的一位大神调侃:

如果把智能网卡看成一个协议转换的路由器:

  • 局域网是PCIe/CXL连接各种CPU、GPU、DRAM、Nvme、PCH,主要负责In-Rack的通信,
  • 广域网Ethernet,主要负责Cross-Rack或者Cross-Pod、Cross-AZ的通信,在边缘计算节点替代传统路由器构建SDWAN的方式,
  • SRIOV是路由器的子接口,果金属类似于VRF/NFV构建虚拟的控制平面(BIOS、TPM、键盘鼠标、VGA等等)
  • DPU池化资源是port channel/VPC/FEX这些聚合技术把多个板卡组装成一台大机器,
  • QoS和拥塞控制:任何传输协议栈都需要
  • 安全:可信计算环境和安全组(Security Group)

这些都是一个标准的路由器该有的基本功能,也就是说Marvell的Oceteon、Tilera续命后的BlueField、IXP续命的Netronome为什么突然都说自己是做DPU的了,也难怪为啥Fungible的构成是来自于路由器团队了,也明白为啥MPLS这次卖了两代Pensando还是没有什么起色了吧。

而应用本身也在逐渐出现路由器特征的Sidecar

本质上就是大家都没有提炼出来SmartNIC真正的工作环境,被迫在各种细枝末节的Offload功能上纠缠

其实工业界最大的问题就在于各家开始自定标准、互联互通出现了问题。虽然有P4这样的PNA架构,本质上还是没有触及到本质.  就像一个前同事说的:脱离了应用的网卡是没有灵活的,然后我半调侃的补一句,脱离了网络的网卡是灵魂出窍的GPU,本质上想说的就是

在网络和计算紧耦合的智能网卡上,如何找到合适的分界点来松耦合,规范的协议和开放的生态才是不可避免的。

如果这个找不到,就如同SDWAN那样,整个市场那么大,但是因为各家都是私有的协议,然后各个卖智能网卡的都要为不同的客户定制,还要帮客户从其它Vendor手中迁移,为了多企业招标竞争,还要去满足大量无厘头的RFP..

渐进式架构

其实樱桃有一张很好的牌,没有打好。其实CPU+FPGA+可编程ASIC是一个非常完善的渐进式架构,

  • 完全灵活多变的事务丢给CPU去处理,然后每隔一两周就能更新新的功能
  • 相对固化半年一年都不会大改的丢给FPGA去做
  • 然后更多的三五年都不动的协议丢给可编程ASIC(不一定是Tofino或者P4)

这样的渐进式架构可以对逐个单元轮流软硬件升级,但是把它完全整合到一个Box上可能不是一个很好的解法,因为不经济不利旧. 各个芯片的生命周期是不同的呀, 当然像某云这样的土豪不差钱…

在编程语言上,某Java厂一时半会儿估计还没法动弹太多,毕竟Flink和其它大量的Java生态跑着,其它Go、C艹厂自然在整个过程中会更加迅猛,但是整个业界的生态上来看,P4本质上是对Verilog的封装,然后通过P4编译了跑DPDK、OVS有点本末倒置,而你看看人家Verilog都在干嘛,C艹的HLS或者Scala的ChiSel..哪个不是高级语言来解决底层问题, 樱桃虽然说了OneAPI,但是毕竟是一个大公司,执行力可能还是有些问题的,就像今天看到的日本某厂花了一万多软妹币利用摄像头图像识别然后读冰箱温度读数一样。要碰别的部门的东西比在外面找家Vendor都难..

Reference

[1]

英特尔推出全新的基础设施处理器(IPU): https://mp.weixin.qq.com/s/7cxb-CyCmSo7Yq9oaOP9fg

[2]

“流动”基础设施及云计算新范式: https://mp.weixin.qq.com/s/Nq8n3quEwyg4pWf43EcXfg

[3]

智能网卡的智障需求: https://mp.weixin.qq.com/s/BHX8Pb6DadXLEfJozmRqbA

IPU是什么?》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.bookhoes.com/728.html