查看原文
其他

软硬件融合的时代(修订版)

Chaobowx 软硬件融合 2022-09-24

欢迎关注软硬件融合公众号:


编者按

《软硬件融合的时代》是本公众号正式发布的第一篇文章,在还没有多少粉丝的情况下,获得朋友们的大量转发支持,使得阅读量迅速过千。这篇文章,代表了编者对本公众号的基本定位,以及对行业的整体看法。

半年多过去,对软硬件融合,很多朋友以及行业专家给了很多的反馈,有赞誉和肯定,也有中肯的意见和建议。在跟大家的碰撞中,编者自己也加深了对软硬件融合的更系统更深刻的理解。在此,对《软硬件融合的时代》修订一版,与大家分享讨论。
快速迭代,持续提升!相互学习,共同进步!

1 软硬件的定义

指令是软件和硬件的媒介,指令的复杂度(单位计算的密度)决定了系统的软硬件解耦程度。按照指令的复杂度,典型的处理器平台大致分为CPU、协处理器、GPU、FPGA、DSA和ASIC。从左往右,单位计算越来越复杂,灵活性越来越低。也即是说CPU具有最高的灵活性以及相对最低的性能;而ASIC则具有最高的性能以及相对最低的灵活性。
如果一个任务在CPU运行,则认为为此任务为软件运行;如果一个任务在协处理器、GPU、FPGA、DSA或ASIC运行,则认为此任务是硬件加速运行。
通常,除CPU之外,其他处理器都不是图灵完备的,因此异构计算通常是CPU+xPU的架构,也即异构计算是软件和硬件加速协同运行。

2 软件的发展日新月异

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

IT行业发展太快,唯一不变的只有“更加快速的变化”。基本上2年一个行业热点技术方向,云计算、大数据、物联网、人工智能、区块链、自动驾驶、边缘计算、5G等新的场景或技术在持续不断的推进着信息技术的迅猛向前。
人工智能是这一切技术的核心,人工智能训练需要大数据,大数据的价值挖掘需要人工智能,人工智能促使云计算落地到更多的场景,人工智能使得自动驾驶可以快速落地。
更加重要的是,已经出现的技术方向还以非常快的速度在快速迭代。例如,云计算在五六年前还主要聚焦在互联网相关的虚拟世界,现如今已经深入到各行各业,并且还在不断的演进。据IDC报告,2020年,全球云IT基础设施支出首次超过传统IT。未来,一切IT设施都将云化。

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

  • 大数据对数据的传输、处理、分析和存储都提出了更高的要求;

  • 人工智能需要更多的算力和数据进行训练和推理;

  • 区块链通过分布式的共识算法来提高整个系统的可信度,意味着更高的算力和数据吞吐要求;

  • 自动驾驶对服务的实时性和可靠性提出了更加苛刻的要求;

  • 5G通信是催化剂,催生了更多的应用和数据;

  • 还有更多的新技术在挑战底层的硬件平台的性能极限,无法一一列举。

2.3 运行软件的CPU,已经达到性能瓶颈

上世纪九十年代每18个月,CPU性能就会翻倍这就是著名的摩尔定如今,CPU性能提升每年只有3%要想性能翻倍,需要20年
这意味着,CPU越来越难以担当起未来算力持续快速提升的核心主力。

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

云计算便捷了IT基础设施的扩容,也方便了更多的用户可以上云。云计算多租户的模式,促使了单个数据中心数以万计的硬件服务器规模。例如AWS在全球拥有 22个地理区域和69个可用区,服务器数量为400万台左右。量变引起质变。
云计算庞大的规模,使得许多需求已经超越硬件个体的基本要求,而是宏观规模所引起的更多更复杂的需求。例如,在云的场景组织下,不再是传统如硬件设备级的资源映射,而是更细粒度级的服务调用映射,庞大系统解构的同时多租户、多系统、多服务共存。
与此同时,云计算为用户提供了各种类型的基于云服务的全球性产品,如AWS的服务包括计算、存储、数据库、分析、联网和内容分发、机器学习、移动产品、开发人员工具、管理工具、物联网、安全性和企业应用程序等大类。丰富的服务类型,意味着针对各种特定的场景,如高性能计算、机器学习、内存数据库、网络转发、存储等,进行了定制的、优化的服务设计。

3 硬件的门槛越来越高

3.1 硬件工艺的发展

苹果公司自研的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集成到一起,从3D到4D,都进一步增强了单位面积的晶体管集成度。
工艺持续进步、3D堆叠以及Chiplet多Die互联,使得芯片从2D->3D->4D。这些技术的进步,意味着在芯片这个尺度,可以容纳更多的晶体管,也意味着芯片的规模越来越大。

3.2 硬件设计的挑战

就像是一个硬币的正反两面,硬件工艺的进步,单芯片容纳更多晶体管的同时,在单个芯片里集成更多的设计,容纳不同架构的大规模处理引擎。如此大规模的设计,其复杂度势必成倍增加,失败的可能性也在增加。成本增高,失败可能性增加,一里一外的影响,共同推高了硬件设计的风险。
另外,如此大规模的硬件,软件系统如何驾驭?也是一个非常大的挑战。这需要从体系结构层面,结合软件和硬件一起,来协同应对挑战。

3.3 硬件加速大规模复制的挑战

CPU虽然相对性能最差,但极致的灵活性,使得CPU成为很多领域计算平台的不二选择。现如今,由于CPU性能瓶颈,我们不得不采取硬件加速的方式来持续提升算力。
但极致定制的ASIC,跟特定的场景密切相关,其灵活性很低。这意味着ASIC很难覆盖多个用户各自不同的场景;同时,由于业务的快速迭代,即使同一个用户,ASIC也很难满足用户未来若干年的业务场景迭代。
场景覆盖以及业务迭代覆盖这两个难题,是限制ASIC大规模应用落地的根本原因。

4 近些年来的一些发展趋势

4.1 以TPU为代表的DSA兴起

2017年图灵奖获得者John M. Hennessy和David A. Patterson认为,随着CPU的性能增加越来越缓慢,未来十年将是体系结构的黄金年代,通过DSA(Domain Specific Architecture,特定领域架构)的设计,可以进一步提升性能。
DSA是一种ASIC(相比CPU、协处理器、GPU、FPGA),是在传统ASIC基础上向灵活性的一种回调。例如谷歌TPU,支持一些简单的特定指令集,可以通过软件编程,但本质上是ASIC的一种变种。DSA因为其灵活性,相比ASIC能够覆盖相对更多的场景,实现定制设计成本和性能的兼顾。

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

未来芯片设计规模越来越大,单芯片集成更多架构的处理器成为一种非常常见的设计,也可以称为,多异构混合计算(Intel称为超异构计算)。如何驾驭如此复杂的异构混合计算平台,如何实现更友好的软件编程能力,则成为一个尤为重要的事情。
英特尔推出的One API是一个统一的软件架构,希望能够跨硬件、跨厂商地把不同硬件加速能力统一。OneAPI可以支持CPU、GPU、FPGA以及AI加速等类DSA处理器。

4.3 基于微服务和容器虚拟化的云原生

微服务是相对传统的“巨服务”而言的。传统的服务把前端呈现、业务逻辑和后端数据库等功能整合在一起,非常的复杂。通过把巨服务复杂的功能解构到不同的微服务中,多个微服务协同完成一项工作。把服务解构到不同的服务器,则意味着更多的东西向流量。
近些年来,随着Docker和Kubernetes的快速流行,云原生的概念深入人心。容器相比虚拟化具有更轻量的安全封装,更小的运行实体粒度以及更多产品服务的相互配合。
云场景下,是复杂系统解构的同时,多租户多系统共存。表现在硬件上,微服务和容器场景下,对迁移的需求相对不高,但对硬件更细粒度的虚拟化要求非常之高,并且,其灵活性对接口弹性的要求也非常之高,与此同时,会产生更多的东西向流量以及对网络延迟的敏感等。

4.4 云计算的业务和管理分离

云最典型的特征是多租户,基于多租户的视角,可以把云简单的分为业务和管理两个层次。在传统计算机虚拟化架构里,业务层也即虚拟机,而管理层则为宿主机,业务和管理共存于CPU运行。
AWS的NITRO系统,创造性的架构重构,把业务和管理分离到两个硬件实体中,业务运行在CPU,而管理则运行在NITRO芯片中。这个趋势最本质的价值在于硬件加速提升性能,而最大的价值则是业务和管理完全分离,提高了安全性。

4.5 云边端深度协同,成为一个超级大系统

站在整个云边端的视角:
  • 云计算是算力中心,负责服务的管理,ML训练,镜像管理,设备生命周期管理,数据存储,安全等;

  • 边缘计算依然是以云为中心,将算力、数据、应用、服务延伸到边缘端。基本功能:数据存储,实时响应设备事件,设备控制,ML推理,安全机制,脱机运行等。

  • 而终端设备的主要功能:数据采集,设备控制,基本的数据处理,物模型,数据及事件交互,设备固件更新等。

云、边、端三者一体化协同,成为一个整合的大系统。需要把云端的服务下拉到边缘侧运行,来提升服务响应,需要考虑服务与终端的交互。因此,需要考虑云和边,甚至终端,的异构环境一致性问题,以及服务的适应性问题。需要从芯片硬件、到系统级框架和库、以及上层应用系统的多方协作。

5 软硬件融合

5.1 软硬件之间的鸿沟越来越大

  • 任务在CPU软件运行,性能低下,CPU已经不堪重负;而定制ASIC,受限于研发周期以及无法大规模复制,产品研发风险很大。

  • 软件的新技术以及迭代越来越快;而硬件的更新换代却越来越慢。

  • 芯片开发高投入高风险,严重制约着软件的进一步发展空间。

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

5.2 软硬件融合概念

复杂而分层的系统、CPU的性能瓶颈、宏观的规模以及特定场景服务,使得:软硬件融合的过程其实就是系统不断卸载的过程。
软硬件融合不改变系统层次结构和组件交互关系,但打破软硬件界限,通过系统级的协同设计,达成整体最优。传统分层很清晰,下层硬件上层软件;软硬件融合的分层分块,每个任务模块是软件还是硬件,或软硬件协同,都有可能。软件中有硬件,硬件中有软件,软硬件融合成一体。
宏观的看,越上层越灵活软件成分越多,越下层越固定硬件成分越多。庞大的规模以及特定场景服务,使得云计算底层Workload逐渐稳定并且逐步Offload到硬件(被动趋势)。软硬件融合架构,使得“硬件”更加灵活,功能也更加强大,这样使得更多的层次功能向“硬件”加速转移(主动抢占)。

5.3 软硬件融合的应用领域

因为云计算:
  • 多租户多系统共存,是当前最复杂的计算场景;

  • 相对其他场景,对性能的需求更高,是CPU最先遇到性能瓶颈的场景;

  • 相比其他场景,云计算场景考虑的因素较少,主要是算力,以及如何更好的提供算力。

软硬件融合从云计算的软硬件挑战中抽象出来,系统化、理论化,并且持续不断的迭代完善。反过来,软硬件融合作为一个系统性的理论指引,可以指引包括云计算、自动驾驶等复杂系统场景的芯片及软硬件系统设计。
软硬件融合:
  • 面向对算力需求再上10-100倍的场景;

  • 面向更多的各种复杂系统场景;

  • 面向超异构混合计算。

5.4 软硬件融合的意义

  • 软硬件融合,既是理论和理念,也是方法和解决方案;

  • CPU + 协处理器 + GPU + FPGA + DSA + ASIC的多异构混合计算;

  • 每个Workload都是在软硬件均衡/解耦基础上的再协同;

  • 连接(软件之间的连接、软硬件的连接、硬件之间的连接)和调用的极致性能和灵活性;

  • 让硬件更加灵活、弹性、可扩展,弥补硬件和软件之间的鸿沟;

  • 兼顾软件灵活性和硬件高性能,实现既要又要;

  • 应对云计算、大数据人工智能、自动驾驶等各种复杂应用挑战;

  • 解决芯片一次性成本过高导致的设计风险;

  • 等等。

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

(正文完)


关注“软硬件融合”公众号,回复“介绍PPT” 下载软硬件融合技术介绍PPT。

《软硬件融合》最新直播回放:点击“原文链接”或访问网址https://aijishu.com/l/1110000000215003。


长按扫描二维码或公众号回复“加群”,加入“软硬件融合”技术讨论群:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存