前言
互联网行业发展迅速,2010年以来,随着物联网、云计算、大数据、人工智能等互联网技术的快速发展,相关的产品和服务层出不穷,快速迭代。虽然软件技术日新月异,快速演进,但是相应的硬件体系结构却没有本质的改变,比如,目前支撑云端系统运行的依然是以CPU为核心的通用服务器。
软硬件之间本质上的需求矛盾是CPU的性能越来越无法满足软件的发展需要,主要原因如下。
·CPU的微架构已经非常成熟,不考虑工艺进步和多核技术,仅提升单核CPU的性能在多年前就已经非常困难。
·在互联网行业初期,工艺进步是提升CPU和芯片性能的主要手段,但随着半导体工艺突破10nm以来,依靠工艺进步来提升CPU和芯片性能的空间急剧缩小,摩尔定律逐渐走向终结。
·登纳德缩放比例定律表明,随着工艺进步,单位面积所能容纳的晶体管越多,单位面积的功耗也会越大,功耗会限制晶体管数量的进一步增加。
·受限于连接CPU核的总线效率、芯片面积及功耗等,CPU核集成数量的提升空间逐渐缩小。
作为计算机体系结构领域的领军人物,David Patterson与John Hennessy在获得2017年图灵奖的演说中提到未来十年将是计算机体系结构的黄金十年,两人给出的解决方案是DSA(Domain Specific Architecture,特定领域架构)。DSA是一种以硬件为中心的解决方案,可针对特定应用场景定制芯片,支持软件可编程,并且通常都是图灵完备的。从图灵完备的意义来看,DSA与ASIC(Application Specific Integrated Circuit,专用集成电路)不同,后者通常用于单一功能,软件代码很少发生变化。DSA也是一种加速器,具有很好的加速性能,与通用CPU执行应用程序相比,DSA只能加速某些特定的应用程序。例如,用于深度学习的神经网络处理器及用于软件定义网络(SDN)的处理器等。
在云计算场景下,软硬件融合问题变得更加复杂。云计算不仅需要虚拟化技术来共享物理服务器,还需要管理物理服务器切分出来的虚拟服务器,以此服务成千上万的用户。云计算需要提供基于虚拟网络技术的VPC服务来进行租户隔离,为巨量的数据提供高可用的存储服务等,还需要为各种用户性能敏感的业务(如大数据分析、视频图像处理、机器学习/深度学习等)进行加速。云计算软硬件融合最大的挑战在于,需要把多种多样的功能融合到一整套软硬件平台方案中。虽然DSA提供了比传统ASIC更多的灵活性,但它在云计算领域依然存在以下问题。
·与传统ASIC一样,DSA通常也要封装成一个具体的IC芯片,从一个应用场景的系统算法到IC芯片量产需要2~3年时间,而互联网的业务发展速度非常快,DSA是否能够满足未来2~3年的软件需求?硬件的使用周期一般是3~5年,在此期间,DSA是否能支撑软件的持续迭代?
·从系统的角度来看,DSA用于解决特定问题A,如果有A、B、C等多个问题同时需要解决,那么多个DSA如何共存?成本如何?或者重新设计一种DSA芯片解决所有问题?重新设计的DSA芯片的通用性和灵活性又如何?
·云计算场景的DSA方案通常选择基于经典的CPU+xPU异构计算架构,而不选择图灵完备的集成架构。CPU+xPU异构计算架构把特定场景算法的加速放在xPU,通过CPU的协调处理来完成整体任务。CPU+xPU异构计算架构可以让CPU侧的软件大幅度降低CPU资源消耗,从而提升CPU性能,但仍然需要CPU的参与。
在云计算的场景下,我们希望为用户提供一个标准的业务环境,后台管理的工作任务数据面和控制面都能够完整卸载。为了实现这些目标,我们就需要为云计算场景提供一个“宏架构”,统筹各种系统的硬件加速和任务卸载,并且能够为用户提供功能强大且简单的运行环境,让用户专注于自身业务的创新。
就互联网云计算而言,芯片公司距离市场和业务场景较远,虽然其对芯片级微观系统的理解非常深入,但对宏观的互联网系统缺乏深层次的敏感度,对热点方向布局不重视,这就导致很多高精尖技术难以落地。而传统的互联网公司虽然距离用户较近,有系统视角,但缺乏芯片及相关硬件技术储备,对芯片的理解比较肤浅,局限于硬件的浅层优化,犹如隔靴搔痒。
基于上述问题,互联网公司纷纷通过自研或与芯片公司合作的方式,更深层次地融合软件和硬件,研发符合互联网场景的新型芯片及硬件产品,以此支撑结构更加复杂、规模更加庞大、管理更加自动化的智能化互联网基础设施和应用系统。这种趋势当前还处于“八仙过海,各显神通”的阶段,有必要通过体系结构层面深度地理解、分析和思考,将这些新型技术和平台进行系统性的梳理、整合、重构,逐步演进成能够满足未来发展需求的新型云计算体系结构。
互联网新技术的快速发展带来翻天覆地的变化,要解决新的上层业务场景需求问题,离不开体系结构的创新发展。通常2~3年会出现一个新的技术热点,系统迭代速度越来越快,体系结构在系统快速迭代的节奏下,如何才能够拥有较长的生命周期,并且在整个生命周期都能很好地支撑业务发展,是需要深入思考的问题。
本书主要介绍如何通过软硬件融合的创新来构建能够应对未来业务挑战的云计算体系结构,核心理念是把软件的灵活性和硬件的高效性深度融合在一起。本书各章介绍的内容如下。
第1章为云计算底层软硬件。
第2章为软硬件融合综述。
第3章为计算机体系结构基础。本章内容与后续章节的核心内容是密切相关的,是核心内容的前导知识。
第4章为软硬件接口。软硬件融合首先面对的就是软硬件接口,需要重点掌握如何实现高效的软硬件数据交互。
第5章为算法加速和任务卸载。算法加速即某个算法的硬件实现;任务卸载以算法加速为内核,更加系统化、平台化,通常需要有快速构建特定任务卸载的基本软硬件框架。
第6章为虚拟化硬件加速。虚拟化硬件加速的核心是高性能虚拟化硬件处理,以及如何兼顾软件的灵活性和硬件的高效性。
第7章为异构加速。异构计算架构适合云计算场景业务加速,有较多的成熟方案。
第8章为云计算体系结构趋势。
第9章为融合的系统。本章内容是对云计算数据中心体系结构的总结。
感谢我的家人,在本书的编写过程中,我占用了许多用于陪伴家人的时间,是她们的支持让我有动力和毅力来完成本书的编写工作;感谢我所在公司的上级领导及同事,是公司提供了如此好的平台,让我有机会去实现创新的想法,上级领导和同事们也为我提供了很多帮助和支持;感谢我的大学老师和同学,毕业多年,老师依然关心我们这些学生的工作和生活,同学们的帮助也促进我一直成长。
受限于个人知识背景和技术水平,也因为这个快速发展的行业和时代,本书难免存在不足。集体的智慧是无穷的,希望大家提出意见和建议,我会不定期地修订、完善、更新本书,为大家呈现一本拥有更高价值的图书。
黄朝波
读者服务
微信扫码回复:40922
·获取各种共享文档、线上直播、技术分享等免费资源
·加入本书读者交流群,与更多读者互动
·获取博文视点学院在线课程、电子书20元代金券