软硬件融合的时代

2021-01-18 14:22:01 浏览数 (1)

定义

按照单位计算的复杂度,处理器平台大致分为CPU、协处理器、GPU、FPGA、ASIC。从左往右,单位计算越来越复杂,灵活性越来越低。也即是说CPU具有最高的灵活性以及相对最低的性能;而ASIC则具有最高的性能以及相对最低的灵活性。

如果一个任务在CPU运行,则认为为此任务为软件运行;如果一个任务在协处理器、GPU、FPGA或ASIC运行,则认为此任务是硬件加速运行。而通常除CPU之外,其他处理器都不是图灵完备的,因此异构计算通常是CPU xPU的架构,也即异构计算是软件和硬件加速协同运行。

硬件

硬件工艺的发展:

苹果公司自研的ARM CPU M1基于TSMC 5nm工艺,具有160亿个晶体管,如此巨大规模的设计,使得M1集成了8核CPU和8核GPU,并且每个处理器都可以非常奢侈的使用内部Register、Buffer或Cache资源(这些是晶体管消耗大户)。

TSMC 5nm刚刚量产,其3nm工艺已经在路上,2nm、1nm也都在未来几年的路线图中。并且,TSMC已经开始在攻关0.1nm工艺,半导体工艺即将进入亚纳米(埃米)时代。近些年来还兴起了3D封装技术,使得集成电路从二维进入三维。以及芯粒(chiplet)机制,把多个芯片裸DIE集成到一起,都进一步的增强了单位面积的晶体管集成度。

这些技术的进步,都意味着在芯片这个尺度,可以容纳更多的晶体管,也意味着更庞大的设计规模。

硬件设计的挑战:

就像是一个硬币的正反两面,硬件工艺的进步,单芯片容纳更多晶体管的同时,芯片的一次性成本也在快速上升。在单个芯片里集成更多的设计,容纳不同架构的大规模处理引擎。如此大规模的设计,其复杂度势必成倍增加,失败的可能性也在增加。成本增高,失败可能性增加,一里一外的影响,共同推高了硬件设计的风险。

另外,软件系统如何驾驭如此大规模的硬件,也是一个非常大的挑战,这需要从体系结构层面,结合软件和硬件一起,来协同应对挑战。

软件

新技术层出不穷,并且快速迭代:

IT行业发展太快,唯一不变的只有“更加快速的变化”。基本上2年一个行业热点技术方向,云计算、大数据、物联网、人工智能、区块链、自动驾驶、5G等新的场景或技术在持续不断的推进着信息技术的迅猛向前。

人工智能是这一切技术的核心,人工智能训练需要大数据,大数据的价值挖掘需要人工智能,人工智能促使云计算落地到更多的场景,人工智能使得自动驾驶可以快速落地。

更加重要的是,已经出现的技术方向还以非常快的速度在快速迭代。例如,云计算在五六年前还主要聚焦在互联网相关的虚拟世界,现如今已经深入到各行各业,并且还在不断的演进。据IDC报告,2020年,全球云IT基础设施支出首次超过传统IT。未来,一切IT设施都将云化。

新的技术对性能提出了更高的要求:

大数据对数据的传输、处理、分析和存储都提出了更高的要求;人工智能需要更多的算力和数据进行训练和推理;区块链通过分布式的共识算法来提高整个系统的可信度,意味着更高的算力和数据吞吐要求;自动驾驶对服务的实时性和可靠性提出了更加苛刻的要求;5G是催化剂,催生了更多的应用和数据;还有更多的新技术在挑战底层的硬件平台的性能极限,无法一一列举。

云计算的发展,对硬件提出了更多的要求:

云计算便捷了IT基础设施的扩容,也方便了更多的用户可以上云。云计算多租户的模式,促使了单个数据中心数以万计的硬件服务器规模。例如AWS在全球拥有 22个地理区域和69个可用区,服务器数量为400万台左右。

与此同时,云计算为用户提供了各种类型的基于云服务的全球性产品,如AWS的服务包括计算、存储、数据库、分析、联网和内容分发、机器学习、移动产品、开发人员工具、管理工具、物联网、安全性和企业应用程序等大类。丰富的服务类型,意味着针对各种特定的场景,如高性能计算、机器学习、内存数据库、网络转发、存储等,进行了定制的、优化的服务设计。

趋势

以TPU为代表的DSA兴起:

2017年图灵奖获得者John M. Hennessy和David A. Patterson认为,随着CPU的性能增加越来越缓慢,未来十年将是体系结构的黄金年代,通过DSA(Domain Specific Architecture, 特定领域架构)的设计,可以进一步提升性能。

DSA是一种ASIC(相比CPU、协处理器、GPU、FPGA),是在传统ASIC基础上向灵活性的一种回调。例如谷歌TPU,支持一些简单的特定指令集,可以通过软件编程,但本质上是ASIC的一种变种。DSA因为其灵活性,相比ASIC能够覆盖相对更多的场景,实现定制设计成本和性能的兼顾。

单芯片多种架构处理器共存:

未来芯片设计规模越来越大,单芯片集成更多架构的处理器成为一种非常常见的设计,也可以称为,多异构混合计算。如何驾驭如此复杂的异构混合计算平台,如何实现更友好的软件编程能力,则成为一个尤为重要的事情。

英特尔推出的One API是一个统一的软件架构,希望能够跨硬件、跨厂商地把不同硬件加速能力统一。OneAPI可以支持CPU、GPU、FPGA以及AI加速等类DSA处理器。

基于容器虚拟化的云原生:

近些年来,随着Docker和Kubernetes的快速流行,云原生的概念深入人心。容器相比虚拟化具有更轻量的安全封装,更小的运行实体粒度以及更多产品服务的相互配合。

表现在硬件上,容器场景对迁移的需求相对不高,但对硬件更细粒度的虚拟化要求非常之高,并且,其灵活性对接口弹性的要求也非常之高,与此同时,会产生更多的东西向流量以及对网络延迟的敏感等。

云计算业务和管理分离:

云最典型的特征是多租户,基于多租户的视角,可以把云简单的分为业务和管理两个层次。在传统计算机虚拟化架构里,业务层也即虚拟机,而管理层则为宿主机,业务和管理共存于CPU运行。

AWS的NITRO系统,创造性的架构重构,把业务和管理分离到两个硬件实体中,业务运行在CPU,而管理则运行在NITRO芯片中。这个趋势最本质的价值在于硬件加速提升性能,而最大的价值则是业务和管理完全分离,提高了安全性。

总结

在云的场景组织下,不再是传统如硬件设备级的资源映射,而是更细粒度级的服务调用映射,庞大系统架构的同时多租户、多系统、多服务共存。

站在硬件加速的角度,CPU的性能瓶颈需要更多专用DSA来加速,而云的场景下则需要更多灵活性的资源及任务调度,甚至是跨CPU、跨异构处理器平台的调度。如何平衡硬件性能和软件灵活性,则是需要重点考虑的事情。

我们要突破软件和硬件的界限,在整个系统的层次,更好的软硬件划分,更好的软硬件协同。更进一步的,则是通过深度的软硬件融合,软件中有硬件,硬件中有软件。这样才能真正构建最优的系统。才能真正的构建更优的硬件架构,以及通过软件来更好的驾驭如此强大的硬件。

从量变到质变,未来必然是软硬件深度融合的发展大趋势!

0 人点赞