软硬件融合的概念和内涵

描述

编者按

跟很多朋友交流,当提到软硬件融合的时候,他们会这么说:“软硬件融合,难道不是显而易见吗?我感觉在二三十年前就已经有这个概念了。”在他们的想法里,其实:软硬件融合等同于软硬件协同,甚至等同于软硬件结合。他们混淆了软硬件结合、软硬件协同和软硬件融合的概念。

今天这篇文章,就跟大家详细介绍一下软硬件融合的概念和内涵,以及软硬件融合和软硬件协同、软硬件结合之间的区别和联系。

1 背景知识:软硬件协同的发展

cpu

传统的系统设计,软硬件划分不够仔细,软硬件是紧耦合的,相互掣肘。这即是我们经常说的“软硬件结合”的设计思路。在系统规模较小的时候,遇到的问题不多,即使遇到问题,调整的代价也不高,可以承受。

但随着系统的规模逐渐扩大,软硬件结合的设计方法开始暴露问题:

硬件/软件划分在还未充分理解系统的情况下进行,很容易产生设计错误;

软硬件划分的设计错误,会对系统产生巨大的负面影响;

而受开发周期和纠正代价的影响,难以纠正在软硬件划分阶段的错误。

系统规模逐步扩大,量变引起质变,传统的软硬件结合设计的问题逐渐凸显。需要升级设计方法论,需要从软硬件结合,走向软硬件协同。

软硬件协同是1990s提出的概念,强调在系统划分之前,需要深刻的理解系统,并且经过非常仔细的系统分析和架构映射,慎重而准确的进行系统的软硬件划分。

软硬件划分是为了软硬件协同,因此软硬件协同设计的关键是在划分之前,而不是在划分之后。划分之前,深度思考软硬件工作划分的准确,确保“接口”清晰、高效,确保软硬件充分地协同。划分(解耦)之后,没有了相互掣肘,软硬件都可以充分创新,实现更加强大的功能/性能。

传统的软硬件结合设计,适合于小系统;而软硬件协同设计,适合于大系统。软硬件协同,是用于大系统的、统一的设计方法论。软硬件协同可以充分利用已有软硬件资源,使得效率最大化,缩短产品上市时间。

2 软硬件融合的根基

2.1 软硬件划分,暨处理器类型划分

cpu

世间万物由基本粒子组成,复杂处理由基本计算组成。软硬件划分指的是,软件和硬件通过一定的“接口”解耦,而指令(集)则是软件和硬件的“接口”。指令的复杂度(计算粒度或密度)决定了系统的软硬件解耦程度。

ISA(指令集架构)之下,CPU、GPU等各种处理器是硬件;ISA之上,各种程序、数据集、文件等是软件。

按照指令的复杂度,典型的处理器平台大致分为CPU、协处理器、GPU、FPGA、DSA、ASIC。从左往右,单位计算越来越复杂。性能越来越好,而灵活性越来越低。

CPU、GPU、DSA等各种类型的处理器,本质上是在不同层次的软硬件解耦基础上的软硬件协同。

2.2 分层分块的系统

cpu

系统由分层分块的各个组件,即工作任务(Workloads),有机组成。整个系统,是一个分层的体系:每一层都建立在下面一层的基础之上,每一层再通过特定的接口向上一层提供服务;同一层中,模块也可以通过接口向其他模块提供服务。

多个小系统组成大系统,多个大系统再组成宏系统;反过来,宏系统可以分解成多个大系统,每个大系统还可以再分解成多个小系统。

3 软硬件融合

3.1 首先,软硬件融合是一种设计理念

CPU、GPU等标准化的处理器已经成为我们主流的计算平台,也已经拥有了非常庞大的生态。在这些软硬件标准化解耦的平台上,芯片工程师仅需要关注芯片的设计实现,软件工程师仅需要关注软件开发。大家并行不悖的各种努力工作,平台“长年不变”,是一种非常舒服但又不可能的理想的状态。

事物发展不会停滞。CPU已经存在了50多年,性能早已见顶;GPU也有20多年的历史,性能增长也相当缓慢。大模型应用通常需要上万张GPU加速卡,据说GPT5需要5万张GPU卡。上层业务应用日新月异,已有的硬件平台已经无法满足我们的需要。

是时候打破已有的软硬件界限了!

没有条条框框的限制,回到系统的本源,重新思考系统的设计,重新构建新的更复杂的软硬件协同。这就是我们所强调的软硬件融合!

3.2 从软硬件结合、软硬件协同到软硬件融合

cpu

软硬件协同是上世纪90年代的产物,到现在已经有了30年左右的时间。上层的业务系统早已经翻天地覆,系统规模增加了成百上千倍,很难对如此复杂的系统进行准确的软硬件划分。

于是,软硬件融合应运而生。

我们把软硬件结合面向的系统称之为小系统,把软硬件协同面向的系统称之为大系统,那么软硬件融合则面向宏系统。

宏系统可以拆分成系统,每个系统需要软硬件协同,并且各个系统间还需要再协同,众多的软硬件协同组成的新的软硬件交互机制,即为软硬件融合。

软硬件协同,面向单个系统的计算场景;软硬件融合,面向多个系统混合的复杂计算场景。因此,软硬件融合面向的系统规模,通常是软硬件协同面向的系统规模的10+倍。

从软硬件协同到软硬件融合:软硬件协同,是单系统软硬件设计的方法学;软硬件融合,是多系统复杂计算软硬件设计的方法学。

3.3 软硬件融合的内涵

cpu

如果我们把工作任务映射到一个或多个处理引擎:

定义一个一维的坐标系:在这个坐标系里,CPU是100%的软件,ASIC是100%的硬件。其他处理器引擎介于两者之间,是不同比例软硬件的混合态。

动态均衡+极限拉扯:根据任务的特点,把之映射到最合适的处理器引擎。类似拔河一样动态的、极限的拉扯到极致,而不是简单的天平一般的平衡。

工作任务处理器引擎的动态性:工作任务最合适的处理引擎,并非一成不变,而是随着系统发展有可能下沉(Offload)/上浮(Onload)。

需要注意的是,这里的基于软硬件引擎的工作任务分层,跟系统工作任务的分层是不同的概念。

软硬件融合不改变系统层次结构和组件间交互关系,但打破传统软硬件的界限,系统的、动态的重构软硬件划分/协同,达到整体最优。

在传统软硬件的系统里,分层是非常清晰的:下层硬件上层软件。软硬件融合的分层分块,每个任务都是不同层次软硬件解耦基础上的再协同;并且,在不同工作任务的软硬件协同基础上,再实现工作任务之间的协同。

从全局看,整个系统呈现出:软件中有硬件,硬件中有软件,软硬件融合成一个有机的整体。

3.4 软硬件融合的趋势

cpu

受限于目前:

一方面,业务对算力的强劲需求;

另一方面,CPU、GPU等传统的灵活型的处理器性能逐渐瓶颈;

此外,量子等颠覆性新技术进展缓慢,短期内芯片底层工艺不太可能颠覆式创新。

因此,在未来一定时期内,软硬件融合的主要趋势,是工作任务逐渐从软件向硬件卸载。  

哪些工作任务适合卸载?“无规模,不卸载(Offload) ”,超大的规模是工作任务卸载的前提。因此,我们可以总结适合卸载的工作任务的两个基本特征:(1)性能敏感,占据较多CPU资源;(2)广泛部署,运行于众多计算设备。

宏观的看,分层的系统,越上层越灵活软件成分越多,越下层越固定硬件成分越多;与此同时,随着系统规模越来越大,复杂分层的系统,其“二八定律”的特征越发明显。于是,许多底层的工作任务逐渐稳定并且逐步卸载到硬件(被动趋势)。

此外,通过软硬件融合的架构设计,可以使得“硬件”更加灵活,功能也更加强大,从而更多的层次功能加速向“硬件”卸载(主动抢占)。

4 软硬件融合总结

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

软硬件融合系统中的每一个工作任务,都是在软硬件均衡/解耦基础上的再协同。软硬件融合系统的每个工作任务之间的连接(软件之间、软硬件之间以及硬件之间的连接)和调用均具有极致的性能和灵活性。软硬件融合系统,能够兼顾软件的灵活性和硬件的高性能,实现既要又要。

软硬件融合落地为CPU、GPU、DSA等多种处理引擎充分协同的异构融合计算。

cpu

软硬件融合承上启下,从产品定义和系统架构开始,逐步拓展到整个系统栈。

软硬件融合的必要性和必然性:

理论根基:①CPU到ASIC的不同层次的软硬件划分,②系统的分层分块。

落地条件:③“二八规律”广泛存在;④超大规模的计算。

驱动力量:⑤算力需求数量级提升,⑥先进工艺和封装支撑超大规模的芯片。

软硬件融合的意义:

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

应对人工智能、云/边缘计算及超级终端等复杂场景的挑战;

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

等等。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分