整理 | 琰琰
编辑 | 青暮
12月16日,第十八届中国计算机大会(CNCC2021)在深圳隆重开幕。今年大会主题是“计算赋能加速数字化转型”,设有17个特邀报告、3场大会论坛、113场技术论坛,超过600位国内外计算机领域知名专家、企业家聚焦不同专业和话题,从学术、技术、产业、教育、科普等方面,全方位探讨数字经济与计算技术的前沿发展趋势。
开幕当天,CCF会士、CCF常务理事、CCF王选奖获得者、中国工程院院士、中国科学院计算技术研究所研究员孙凝晖做了题为《从工程科学视角看计算机系统中的一个规律》的特邀报告。在报告中,孙凝晖从工程科学中的基本方法出发,分析了计算机系统中“求通用”的基本规律,介绍电子计算机和高性能计算机成为通用设备的技术发展过程,最后探讨了未来通用计算平台和高性能计算机的发展趋势和可能的重要创新。
在他看来,工程科学的基本规律牵引着高性能计算机等大工程的发展。从工程科学概念性、关键性、共同性的视角来看,工程系统的建构目标遵循两大典型规律,即求极致和求通用。通过计算摄像显微仪器和手机成像技术两个案例分析,孙凝晖认为求极致系统的突破点在于抓主要矛盾,再结合新理论和新工程技术来突破关键指标。而求通用系统一般是一个松散耦合结构,关键在于刻画描述问题,并将其映射到关键工程结构设计中去,再结合技术的时空局限性构建系统。
在历史性回顾中,孙凝晖从工程科学视角总结了从算盘时代,到机械计算工具,再到通用型电子计算机繁荣发展的关键转折点和突破原因。结合自身研究工作,孙凝晖回顾了从求极致的超级计算机到求通用的高性能计算机的发展过程,总结了构造通用高性能计算机的工程科学基本方法。最后,他预测,未来的先进计算系统在概念性、关键性、共同性三个方面会呈现出以下特点:(1)在概念上系统熵把无序变为有序;(2)以数据为中心,具备内构安全特点的高通量计算系统会成为新的关键性结构;(3)系统的共同性将从以数据建模为中心的第四范式迈向以建模复杂系统为核心的第五范式。
以下是演讲全文,AI科技评论做了不改变原意的整理:
今天的报告主题是从工程科学视角看计算机系统中的规律,与大家一起来探讨指导高性能计算机这样大工程的科学原理或者规律是什么?我们一般从计算机理论和数理基础出发来思考工程科学的规律,那么,我今天试图从工程科学规律视角来看这样大的计算机系统。
2017年底,两院院士郑哲敏先生发表了一篇文章《从钱学森的技术科学思想谈起》,从这篇文章中,我得到一些启示。这篇文章谈到在科学发现的早期,科学和技术没有严格的区分,以牛顿为例,他既是力学三大定律的提出者,也是剑桥大学物质结构研究的科学家。到了19世纪,科学和工程开始分道扬镳,背后的原因是自然科学本身没有一个完整的体系,加上很多科学理论对工程的实际贡献有限,所以,大多工程师只采用纯工程的方法来解决问题。后来到了20世纪中期,自然科学和工程技术再次紧密联系在一起。特别是二战期间,火箭、雷达、核武器,这些装备都是大工程,它们不是依靠工程实践积累和经验判断设计出来的,而是需要大量的自然科学作为依据,是科学家和工程师密切合作的产物。所以工程科学、自然科学和工程技术,三者之间的联系本质上是非常紧密的。
工程技术虽然是对自然界事物的经验累积和对工艺的改进,但把其中的一些共性经验和理论提炼出来,就可以形成工程科学理论或者具有普遍意义的规律;而工程科学对技术科学的成果加以分析和提高就有可能成为自然科学的一部分,比如工程控制论。
郑哲敏先生在这篇文章指出:“技术科学与工程技术的区别在于,每项工程涉及各种各样的具体技术问题,而技术科学是研究其中概念性、关键性、共同性的规律,给出一些工程上解决类似问题的共同方案。就是说,技术科学对工业技术有着引导的作用,能极大地促进和推动工程技术的发展。”简单来看,我们可以把它称为“三性”,分别是概念性、关键性和共同性。
今天我想用这三大类方法来看一下计算机系统中的典型规律,我称它们为求极致的规律和求通用的规律。我们做大工程的系统建构主要有两个大目标,一个叫求极致,在特定维度或者核心技术上突破最高、最大、最快的技术极限,开拓科学研究的新疆界,比如,类似的工程有最快的超级计算机,最重的重型火箭,或者最大口径的望远镜,这类系统通常在学术研究中比较普遍。
另一个叫求通用,这类系统的设计要求约束多,可快速迭代,使用范围广,可兼容性强,比如我们的手机摄像头,汽车工业,民航客机,高性能计算机,这些都是求通用的典型系统,一般工业界对类似系统的建构更感兴趣。这两类系统在相互促进和相互转换的过程中,也存在一些内在规律。
我举两个例子,一个求极致的例子是戴琼海院士在《自然-光子学(Nature Photonics)》杂志上发表的一项研究工作,这项研究将光学、微电子、计算机视觉以及信号处理等学科交叉,提出了一种显微成像新架构,研制了“实时超宽场高分辨率成像显微镜”,各项研究指标都达到了极致,比如1厘米x1.2厘米的超宽带视场,1.2微米的高分辨率,51亿像素每秒的数据通量。这一工作为生命科学和医学研究提供了一件“利器”。
另外一个求通用的例子是我们非常熟悉的手机成像技术,它不追求每一个单项指标都达到极致,而是用软硬一体化来补短板,占据除了专业相机以外的市场。它通过图像信号处理器( ISP)弥补硬件在单项指标上的不足,让成像器件,图像计算硬件和处理软件协同进步,并通过快速迭代实现性能提升。
我简单总结了一下这两类系统建构的一些基本方法。
求极致的关键是抓主要矛盾,再结合关键的科学理论和工程技术突破指标上的极致,形成紧耦合结构,最后整合所有技术,定制系统内部需要的部件。
求通用系统在概念性上是一个多问题,需要对多个问题进行刻画和描述;在结构上通常是松散耦合的,需要对工程结构做最优映射;在共同性上要克服短板,解决技术的时空局限性等问题。
接下来,我首先回顾一下计算系统的发展历程。从工程科学的规律的角度,我们把视角拉远一些,我们观察到这样一条曲线,从最早的算盘,发展到电子计算机,再到现在的高性能计算机,中间出现了三个顶峰,三个山坡。这三个顶峰分别代表机械计算工具、超级计算机和未来Z级计算机。比如我们最早的算盘,爬到了机械计算工具的顶峰,因为有了一些规律,走到了通用计算机的繁荣。但这些系统在演化的过程中,究竟需要什么样的规律?这是我们需要思考的。
我先来介绍第一个曲线,这是一个历史的回顾,我们如何从算盘发展到通用的电子计算机。
如果做一个简单的罗列,人类历史上第一个人造计算工具诞生于中国公元1200年前,在它出现之前,我们只有数学(算术),没有Computing(计算)的概念。
第二步,帕斯卡和莱布尼兹发明了机械式加法器(1642)和乘法自动计算机(1673)。
第三步,1801年,杰卡德发明了首个可编程织布机——通过穿孔卡对织布机进行编程。
第四步,1837年,巴贝奇设计了差分机与分析机,虽然在工程上没有彻底实现,但已经可以完成非常复杂的计算,比如通过多项式逼近对数、指数和三角函数。
第五步,1843年,世界上第一位程序员爱达设计了一个算法,用来计算伯努利数列的值。这是第一个利用计算机进行运算的算法程序。
第六步,机械计算工具到了顶峰。二战期间,图灵为了破译密码设计出“图灵甜点”解码机。
至此机械式计算工具达到了工程技术积累的巅峰,直到出现了三位伟大学者,他们的发明奠定了现代通用计算机工程科学的三大基石,分别是:
在概念性上的图灵机模型:提出了能够自动执行程序的通用计算装置的科学原理。
在关键性上的冯诺依曼体系结构:为图灵机的实现提供了一个通用的体系结构——所有计算机分为输入设备、存储器、运算器、输出设备5个部分;采用存储程序方式,将指令和数据存储于同一存储器。
在共同性上的肖克莱晶体管:能够实现计算机的数学基础布尔代数的开关器件。
从历史的发展中,我们可以看出,如果工程技术仅仅是一个无限的经验积累,大概会止步于机械计算工具的巅峰,也就是图灵甜点机。
第二条曲线,从超级计算机到高性能计算机时代。
我们经常会混淆这两个概念,想一想我们为什么会发明两个名词来说明一件事,可能就是对于计算工具,我们永远希望它的计算速度越快越好。在历史上,高性能计算装置可以简单分成三个时代:在 CRAY时代,通过部件的并行向量化来提高性能;在MPP时代,通过大规模并行和定制化组件,把机器性能做到极致;在机群时代,利用三大规律把一个高端的装置变成通用的计算部件。
这些过程是如何发生的?一个极致的计算装置如何变成一个通用的计算装备呢?
从概念性、关键性和共同性三个方面来讲,我们认为应该有以下三点变化:
在概念性方面,要有一个牵引型的目标,也就是评价标准从求最大极值转变为最大积分;
在关键性方面,机群架构应该是松散耦合结构+标准化的部件;
在共同性方面,性能工程要采用通用结构,并达到极致性能。
我们超级计算机一般以单一的极限指标作为评价指标,任何一台计算机,先设计一个目标,谁的性能更高,谁的技术就更强。在历史上有很多这样的指标,比如LINPACK(1993)、Graph500(2010)、Green500(2013)、HPCG(2014)、HPL-AI(2019)。追求这些单一指标的“极值”显然不是求通用的一个驱动力。超算追求的是计算能力,也就是求一个点的“极值”,让所有指标在访存计算比和饱和性能的二维结构里,一条线达到最高。但真正的通用,是需要反映非常多的计算和访存特性的,所以光一个点求最高是不够的。那么,如果要造一个通用的容量计算系统,从线到面,我们就需要一个类似于“积分最大”的系统,高效支撑多种应用。这是第一个变化。
第二个变化体现在关键性,也就是机群结构。机群结构需要有三个的基本条件,第一是结构是松散耦合的;第二是每个组件要可标准化。如果部件是定制化的,可能不能适应通用的应用场景;第三是高性能计算的要求,如果采用标准的组件一般不太容易建构出高性能的系统,所以还要有一系列性能可拓展的方法。三者加起来才能做到通用高性能计算机。时间关系,我们简述一下标准化的几个关键点。第一个是“造”标准化,把机群基础软硬件货架化,包括软件标准化、硬件标准化、互联标准化;第二个是“送”标准化,让用户可以“容易”获取算力;第三个是“用”的标准化,通过屏蔽不同层次的细节实现“用” 的目标。
一般来讲,从基础库和函数抽象,再到框架/领域编程方法来实现标准化,会带来所谓的“软件肿胀”,性能损失非常大,所以我们需要通过性能工程来获取一个极致的性能,这也就是刚才提到的第三个变化。到目前,通用结构获取极致性能的调优方法经历了三个阶段。早年使用的是单一模型方法,由图灵奖得主Fra Allen在2006年提出的性能优化模型。后来随着负载特征变得更加复杂,美国工程院院士Jack Dongarra设计出了软件工程方法。而目前采用的多是智能调优技术,以应对更加碎片化的负载特征。
首先讲一下通用计算系统,也就是计算系统如何变得“更通用”?我们认为主要是要形成“平台型计算装置”。计算机系统存在一个通用趋势或规律,我们称之为“X as a Computer”,就是每隔10年就会出现一类新的计算机系统,包括新的编程平台、新的网络连接,新的用户接口,新的使用方式。它们更廉价,应用范围更广泛,形成了新的平台型通用计算机装置。
如果我们把过去60年形成的规律加以总结,大致可以分成三个时代。
首先是IT 1.0 时代,我们把专用计算装置变成了高性能计算机(Calculator as a Computer,CaaC),服务国家部门实现了信息化;把专用的制表装置变成了一个通用服务器(Tabulator as a Computer,TaaC),实现了企业的信息化升级。
其次是 IT 2.0 时代,在这个时代里,人类社会和机器在现实世界有了交互,称之为Communication时代。我们把专用办公设备用到PC端实现了办公信息化(Office as a Computer,OaaC);把专用通信设备移植到智能手机(Phone as a Computer,PaaC ),实现了消费者的信息化。
我们现在正在一个“人机物”三元融合的万物智能互联时代,也可以成为IT 3.0时代。我们将为创造的各种设备,比如人造汽车,人造车床,智能硬件,提供一个“物端通用计算机(Thumb Computer)”。除了人造设备外,我们人体和自然物体也可以信息化(Body as a Computer)。这样整个世界和物理世界统一同一个庞大的信息网络空间里。
按照上面的规律,我们发现在求通用设备的泛在演化的过程,形成了当前信息社会的五个成功的平台型计算装置:(1)用于关键部门的高性能计算机;(2)企业级服务器;(3)员工使用的PC;(4)大众智能手机;(5)工控/武器装备使用的嵌入式计算机。未来可能还会出现第六个平台型计算装备。
第二,未来高性能计算这一类追求极致性能的系统的发展有哪些共性方法,是否有章可循?
我们认为关键在于Z级计算机如何提高系统能效。当前求通用的高性能计算机撞上了一堵能耗墙,计算能力每增加10倍,能耗曲线就会上移一个台阶,也就是说,算力提升过程产生了巨大的能源消耗。2020年《Science》曾发表一篇文章,从新结构、新器件、新工艺和应用驱动四个维度总结了几种创新解决方案。
比如在工艺创新上,从现在的集成电路发展到集成芯片,利用Chiplet等技术突破单芯片晶体管数量的上限。
在器件创新上,通过超导电子器件把高频率运行系统的能耗降到最低。比如基于超导约瑟夫森结实现的布尔逻辑计算系统,运行频率可以达到100GHZ,具有极高的能效。
在模型创新上,通过自然计算将对应问题解演化为最低能量态。这里所说的自然计算,是利用相似性原理模仿自然规律,或利用物理材料,构建自适应、自演化的动力系统,近似求解传统计算方法难于解决的高阶复杂问题。
在结构创新上,到底最少有几个XPU?回归到计算机科学的三个基本问题,思考巴贝奇自动计算问题、布什广义关联问题和图灵测试问题,也许我们有三种基础的xPU,比如SPU、DPU、NPU,通过三者组合能够覆盖所有应用场景的计算需求。其中,SPU结构可以解决计算访存特征的差异性;DPU结构解决数据通路的全局有序控制问题;NPU能够对机器学习负载运算加以抽象化,以及数据带宽自适应的神经元。
借用1991年 Bruce G. Buchanan发表的一篇报告,报告中提出任何一个计算系统都可以通过两个维度,划分成四个象限(横坐标代表确定性和启发式算法,纵坐标表示符号计算和数值计算),那么每个求通用系统、求极致系统都是其中的一个圆圈。如果我们把刚才提到的计算系统发展的3个时代、7个通用系统以及面向不同应用场景的求极致系统汇集在一张表格里,我们就可以从中发现每个系统的一个定位。
最后,如果未来求极致的计算机系统实现了,下一个更加繁荣的通用系统会是什么?这个问题现在来看可能还太遥远,但我们不妨做一个大胆的猜想,从工程科学的三个基本方法来看,我认为首先在概念上,“系统熵”会让系统从无序变到有序,这是现在AIoT发展带来的一种显著需求。在关键性方面,未来的系统结构应该以数据为中心,实现数据处理的内构安全,我们用“高通量”来代表这类技术。最后在共同性上,我们要解决复杂系统的建模问题,并从过去以数据建模为核心的第四范式,转向以建模复杂系统为核心的第五范式。
这就是我今天报告的全部内容,谢谢大家。
2021-12-10
2021-12-09
2021-12-12
2021-12-12
雷峰网(公众号:雷峰网)雷峰网