类似智能手机的发展,数据中心将进入完全可编程时代
欢迎关注软硬件融合公众号:
编者按
一个是,不要试图帮助用户决策。智能手机提供给用户的是一个平台,而不是一个具有具体功能的产品。用户是通过安装APP来实现自己要的五花八门又各自不同的具体功能的。
另一个是,易用性。在智能手机表现的则是人机交互,也就是划时代意义的触摸划屏交互。在2017年iPhone之前,其实微软已经早在2000年就发布了基于Windows的智能手机。但其因为通过触控笔实现类似鼠标的单击双击,非常难用,所以一直没能流行起来。
2 再分析一下各类处理引擎
2.1 CPU
2.2 GPU
2.3 DSA
网络领域处于基础设施层次,其场景变化相对较小。DSA相比ASIC较好,但相比GPU较差,的灵活可编程能力,基本符合网络领域的灵活性要求。因此,其可以在确保灵活可编程能力的基础上实现最极致的性能。
而AI领域,目前算法多种多样,很多新的算法还在出现。AI领域,在性质上,仍然属于应用层次,也即场景灵活多变。这样对引擎的灵活可编程能力提出了更高要求,而DSA架构的处理器很难满足。从实践可以看到,目前大量的AI是基于更高灵活性的GPU部署的。
2.4 ASIC
3 未来发展:完全可编程
3.1 智能网卡、DPU等芯片的落地困境
因为不同用户业务场景存在差异化,并且用户业务场景仍在快速迭代。
跟客户场景深度绑定,是偏ASIC级别的定制,会导致市场碎片化。碎片化的市场会导致某一芯片产品能覆盖的规模较小,也即出货量会少。
偏ASIC的定制会导致芯片设计复杂度高。ASIC紧耦合的系统,把业务逻辑完全变成电路,芯片设计工作量大,设计复杂度高。另外场景的多种多样和快速迭代,也使得ASIC设计难以覆盖更多的差异。
芯片NRE、IP等费用高,需要芯片大规模落地。工艺进步,使得大芯片的研发成本进一步提升。这就需要芯片销量进一步提升,才能摊薄一次性成本。而偏定制的方案则完全走向了相反的方向。大芯片,一定需要足够通用灵活可编程,才好大规模落地。
目前很多加速卡、智能网卡、DPU的做法仍是类似功能机的做法。整个功能是确定的,硬件中实现了很多具体功能和业务逻辑,越庖代俎,帮助用户决策。
还没有做到,类“智能手机”的做法,完全可编程的硬件平台,把决策交给用户。
3.2 架构:从同构到异构,再到超异构
3.3 用户/开发者视角:完全可编程的芯片平台
所有功能由用户通过软件定义。授人以鱼不如授人以渔,既然提供的是平台化解决方案。那么一些主要的组件一定是要集成的,然后这些单元又可以自由组合,给用户提供一个几乎“无限”可能的平台。不同的用户,根据自己的需求组合功能,实现功能和场景差异。
所有业务逻辑由用户通过编程实现。用户自己的软件已经存在,业务逻辑也是经过长期打磨。业务逻辑是一个非常重要的事情:一些大的云计算公司,其底层业务逻辑支撑的上层云客户的业务都超万亿。这样,底层的业务逻辑修改一定是慎之又慎。用户期望的是不修改业务逻辑情况下,通过硬件实现业务处理的加速。
用户没有平台依赖。软件热迁移需要一致性接口的硬件,上层业务逻辑也需要一致性的硬件功能支持。这些都需要,站在用户视角,不同芯片厂家提供的是接口和架构完全一致标准化的产品。
3.4 性能和灵活性,似拔河一样拉扯到各自极致
完全可编程,是要在满足灵活可编程的基础上,实现最极致的性能;
完全可编程,是要在性能满足要求的情况下,实现最极致的灵活可编程性。
并不是说所有的事情,都CPU来完成,这是一种“懒惰”、“躺平”,因为CPU的性能是最差的;
也不是说,所有的事情都DSA完成。这样又会过犹不及。因为很多场景,对灵活性的要求超过了DSA可提供的灵活性能力。最典型场景就是AI加速,目前很多AI芯片落地困难的原因就是不满足灵活性的要求。
应用层。站在硬件平台的视角,应用是完全不确定的,也不确定知道运行的应用到底是什么。这样,应用层的工作就适合CPU来做。
应用加速。有很多应用层的工作,性能敏感,需要通过加速的方式。但一方面受限于应用本身的算法变化较大,另一方面,硬件平台也可能给其他用户的相似应用使用,因此,弹性一些的加速会更合适一些。这样,GPU就成了应用加速的首选。
基础设施层。基础设施层相对变化较少(但并不意味着不变化),所以通常DSA架构处理引擎可以满足灵活性的基础上,实现最极致的性能。
这个划分,并不一定完全准确。还需要根据具体的工作任务特定,决定选择具体的处理器类型。
还有一点就是动态变化。可能随着系统的发展,有的任务会“上浮”,越来越需要灵活性;有的任务会“下沉”,更可以通过更优的硬件加速来极致的提升性能。
3.5 案例:Intel愿景,完全可编程的网络
第一阶段(2010–2020年):通过Openflow将控制面和数据面分离,用户可以通过集中的控制端去控制每个交换机的行为;
第二阶段(2015–2025年):通过P4编程语言以及可编程FPGA或ASIC实现数据面可编程,这样,在包处理流水线加入一个新协议的支持,开发周期从数年降低到数周;
第三阶段(2020–2030年):展望未来,网卡、交换机以及协议栈均可编程,整个网络成为一个可编程平台。
4 完全可编程,还需要在硬件层次提供更多通常属于软件的能力
4.1 可扩展
功能的扩展。各类处理引擎的可编程能力来实现不同的功能;不同引擎的组合可以组织成不同的宏功能。
平行扩展。处理引擎要支持虚拟化,类似硬件里的多通道的概念。可以提供数以千计甚至数以万计的通道,使得每一个租户每个VM/容器甚至每一个应用都可以独占物理通道(资源)。
多芯片扩展。可以通过多芯片、多服务器、多Rack甚至多POD扩展,并且大家都是完全平行的,不产生新的Hierarchy分层(会显著增加系统复杂度,编程困难)。
4.2 软件实体和硬件平台分离
4.3 云网边端融合
4.4 开放生态
NVIDIA DPU和DOCA。NVIDIA走的是一套完全封闭的路子,给客户提供性强劲功能相对完善的解决方案;但对可编程能力的支持,不是很友好。我们是不是可以类比为塞班?
Intel IPU和IPDK和OPI。Intel走的是开放平台的路子,如果类比到智能手机领域,那么IPDK是否可以类比为安卓?
博通计划收购VMWare。博通走的是直接收购现有技术生态的路子。底层芯片公司收购虚拟化技术和生态公司,强强整合,从DPU芯片到系统到生态,在企业和私有云场景,基本上可以通吃。VMWare的虚拟化技术本身,也是全球领先。博通可以通过这次收购,引领虚拟化相关技术发展趋势。现在收购还未成功,说类比苹果iOS还为时尚早,未来发展,继续观察。
DPU发展面临的困境和机遇 因为同一项“黑科技”,Intel收购Barefoot,AMD收购Pensando 软硬件融合:超异构算力革命(幻灯片第六版,附下载链接) 是否存在足够“通用”的处理器,在性能快速提升的同时,还能够“包治百病”? Chiplet UCIe协议已定,CPU、GPU、DPU混战开启,未来路在何方? 预见·第四代算力革命(四):宏观算力建设 预见·第四代算力革命(三):面向未来十年的新一代计算架构 预见·第四代算力革命(二):三大主流计算平台CPU、GPU和DSA 预见·第四代算力革命(一):算力综述 “DPU”非DPU 硬件定义软件?还是软件定义硬件? 直面NVIDIA DPU挑战,Intel推出全新处理器家族IPU 软硬件融合视角的SmartNIC、DPU和IPU定义 软硬件融合的时代 DPU/IPU关键价值:云计算的业务和管理分离