绑定手机号
获取验证码
确认绑定
提问
0/255
提问
订阅开课提醒需关注服务号
回答成功
知道了
扫码关注智东西公开课服务号登录
请使用微信扫描二维码
扫描二维码分享给微信好友
您已订阅成功,有新课程,我们将第一时间提醒您。
知道了
发送提问成功
回答可在
“我的——我的提问”中查看
知道了
失败
欢迎来智东西
关注我们
智东西
车东西
芯东西
智东西公开课
0
0
预见·第四代算力革命(一):算力综述
分类: 智能计算
2022-04-23 15:45:41

国家发改委等四部门联合发布《全国一体化大数据中心协同创新体系算力枢纽实施方案》,提出在京津冀、长三角、粤港澳大湾区、成渝以及贵州、内蒙古、甘肃、宁夏建设全国算力网络国家枢纽节点,启动实施“东数西算”工程,构建国家算力网络体系。

当前,算力已成为全球战略竞争新焦点,是国民经济发展的重要引擎,全球各国的算力水平与经济发展水平呈现显著的正相关。在2020年全球算力中,美国占36%,中国占31%,欧洲和日本分别占11%及6%。近年来,美国、欧洲、日本纷纷制定行动计划,不断运用算力助推经济增长。

“数据、算法、算力”是数字经济时代核心的三个要素,其中算力是数字经济的物理承载。这里,我们通过“预见·第四代算力革命”系列文章(共四篇),从微观到宏观,详细分析跟性能和算力相关的各个因素以及主流的算力平台,尽可能的直面当前算力提升面临的诸多挑战和困难,展望面向未来的算力发展趋势。这四篇文章为:

  • 预见·第四代算力革命(一):算力综述;

  • 预见·第四代算力革命(二):三大主流计算平台CPU、GPU和DSA;

  • 预见·第四代算力革命(三):面向未来十年的新一代计算架构;

  • 预见·第四代算力革命(四):宏观算力建设。

本文为第一篇,欢迎关注公众号,阅读历史以及后续精彩文章。

参考文献:

  1. https://www.stcn.com/xw/sd/202201/t20220118_4085409.html,数字基建大工程启动,“西算”四大枢纽节点获批

  2. https://mp.weixin.qq.com/s/cWS4YeIlUEm1dexjgN8f-w,邬贺铨院士:算力如何赋能未来世界?

  3. https://mp.weixin.qq.com/s/_0_uwuCuKnMiuZM_jvYnaw, 性能提升10倍以上:阿里达摩院成功研发新型存算一体芯片

  4. CPU DB: Recording Microprocessor History, by Andrew Danowitz, Kyle Kelley, James Mao, John P. Stevenson, and Mark Horowitz, http://cpudb.stanford.edu/p55-danowitz.pdf

1 基础知识

1.1 摩尔定律失效?

上世纪80/90年代,CPU性能狂飙,每18个月,CPU性能就会翻倍,这就是著名的摩尔定律。如今,CPU性能提升,每年只有不到3%,要想性能翻倍,需要20年。可以说,基于CPU的摩尔定律已经失效,行业进入了后摩尔时代。但是摩尔定律赋予行业的意义远不止这些。

数字经济时代来临,各种各样的应用都需要强大的算力支撑。不管是从单个设备的角度,还是万千设备组成的宏观算力的角度,都需要持续不断的算力,来支撑数字经济的繁荣发展。可以说:用户“需求”的驱动,需要摩尔定律继续有效。

对消费者来说,摩尔定律意味着当前购买的电子设备性能会比一年前有非常显著的提升,摩尔定律是到了时间自然而然、轻轻松松就会发生的事情。而对行业从业者来说,摩尔定律是整个行业的KPI,代表了残酷的竞争法则:一个公司或产品,如果能达到或超过摩尔定律,就能够生存;反过来,如果达不到,就只能走向消亡。

站在算力的角度,摩尔定律一直在驱赶着行业中的你我:前进!前进!前进!

1.2 冯·诺依曼架构过时?

冯·诺依曼架构模型是计算机系统的经典模型,简单说,就是一个计算机系统包括输入、处理和输出三个部分。处理部分有控制单元、计算单元和数据暂存(内存),处理部分的控制单元和计算单元组成大家通常理解的中央处理单元CPU。

根据冯·诺依曼架构,可以绘制出一个典型服务器的模型。一个服务器,由核心的处理逻辑、分层级的寄存器、缓存、内存、本地外存四级的暂存存储(云服务器本地存储也是暂存,关键的数据必须存储到远程存储集群)、以及通过网络的输入/输出三部分组成。

站在处理器中处理逻辑部分的角度,不管是从各级暂存还是从网络I/O,都是数据的输入/输出。因此,计算模型就可以简单的分为两部分:数据处理和数据输入输出。并且,系统的性能 = 最小值(数据处理能力,数据输入/输出能力)。

近些年来,行业内有一种说法:冯·诺依曼架构已经过时。因此,需要打破冯·诺依曼架构,例如近年来非常火爆的存算一体化。但这些说法,其实是对冯·诺依曼架构的误解。

冯·诺依曼架构本身很简单,只是后来,为了更大规模的计算,才逐渐形成了复杂的存储分层结构。计算和I/O之间的不匹配导致了复杂的存储分层结构,而复杂的存储分层结构一方面增加了功耗,另一方面限制了性能的进一步提升。

于是,架构设计开始往回走,存算一体化反对的只是复杂的存储分层结构,而不应该是冯·诺依曼架构。存算一体化,更加简单直接的解决I/O和计算处理性能匹配的问题。但是,并没有改变冯·诺依曼架构的本质。

2 与性能相关的三个因素

我们举个形象的例子:

  • 团队A的每个工人可以在单位时间里加工5个零件,团队B的每个工人在单位时间里可以加工8个零件。

  • 团队A的单位时间是3分钟,这意味着团队A一个小时可以有20个单位时间;团队B的单位时间是5分钟,这意味着团队B一个小时拥有12个单位时间。

  • 团队A有10个人,团队B有20个人。

这意味着:在一个小时里,团队A可以完成1000个零件的加工,而团队B则可以完成1920个零件的加工。

这里说的性能,指的是单位处理器的性能。衡量一个处理器的性能,通常有三个因素:

  • “指令”复杂度,类比于例子中单位时间加工的零件数量,指的是单个指令中计算的密度。

  • 运行速度,即运行频率,类比于例子中一个小时的单位时间数量,指的是1秒钟时钟周期变化的数量。

  • 并行度,则类比于例子中团队的成员数量,指的是多个并行的处理。

也可以简洁明了的用公式表示性能和三者的关系:

(单个处理器的)性能 = 指令的复杂度(单位计算密度) x 频率 x 并行度

2.1 “指令”复杂度

CPU是硬件,基于CPU运行的程序是软件;GPU是硬件,基于GPU运行的程序是软件。那么CPU和GPU的差别在哪里?

  • CPU(不考虑协处理器)支持的指令称为通用指令,包括整形计算类、浮点类、数据传输类、控制类等。

  • 相比通用指令,一些复杂类指令(复杂类指令需要复杂的硬件逻辑来处理),则需要专用的硬件处理单元。比如SIMD(单指令流多数据流,Single Instruction Multiple Data)类和MIMD(多指令多数据流,Multiple Instruction Multiple Data)类指令,则可能是在GPU运行。

  • 对硬件加速单元(Accelerator,从设计架构的角度也就是ASIC)来说,“指令”则是对算法的一次处理。例如DES算法设计,其“指令”为一次64bits DES计算。CPU对DES的一次处理需要上百条指令,而在DES硬件加速器这里,只需要一条“指令”,可见DES硬件加速器“指令”的复杂度远大于CPU指令的复杂度。

指令是软件和硬件的媒介,指令的复杂度(单位计算密度)决定了系统的软硬件解耦程度。按照指令的复杂度,典型的处理器平台大致分为CPU、协处理器、GPU、FPGA、DSA、ASIC。任务在CPU运行,则定义为软件运行;任务在协处理器、GPU、FPGA、DSA或ASIC运行,则定义为硬件加速运行。

鱼和熊掌不可兼得,指令复杂度和编程灵活性是两个互反的特征:指令越简单,编程灵活性越高,因此我们才说软件有更高的灵活性;指令越复杂,性能越高,因此而受到的限制越多,只能用于特定场景的应用,其软件灵活性越差。

一个系统,必然经过前期快速迭代,后期逐渐稳定的过程。因此,系统运行的处理器平台选择也必然有如下的一些规律:

  • CPU通用软件平台:当一个新的应用出现的时候,最早出现的一般是软件实现。一来实现所需要的代价较少,可以快速实现想法;二来CPU所提供的灵活性,不考虑性能的情况下,使之几乎可以处理任何场景的任务。

  • 协处理器扩展指令加速平台:随着技术的演进,对性能提出了一些要求。这个时候,可以针对一些比较消耗CPU资源的程序进行一定的编程和编译优化。

  • GPU向量及并行加速平台:更进一步的,技术广泛应用,并且我们能从算法中寻找到更多的并行性。这个时候,我们就可以找一些专用的处理器,如GPU、DSP、NPU等,来处理。通过特定的并行优化以及支持向量(SIMD)、多指令并行(MIMD/VLIW)等复杂指令编译优化的方式,深度的优化性能。

  • FPGA硬件可编程加速平台:随着技术越来越成熟,应用的规模越来越大。也越来越消耗资源。这个时候,我们值得花费更多的精力,提炼出复杂度非常高的算法(或者可以当作一个非常复杂的“指令”)然后通过硬件逻辑实现。再通过FPGA硬件可编程的方式快速落地。

  • DSA/ASIC定制加速平台:再进一步的,技术更加成熟稳定,应用规模足够庞大,这个时候就非常有必要为此场景定制开发DSA/ASIC,来达到最优的性能、最低的成本、最小的功耗。

需要注意的是,性能和灵活可编程能力是矛盾的两面。当我们通过定制硬件加速器的方式来获得性能提升,同时也就意味着放弃了软件应有的灵活性。

特别是复杂场景,对灵活性的要求更甚于对性能的要求,这样的场景需要花费更大的代价,实现灵活可编程能力的同时,提供非常好的性能。

从软件到硬件的一个经典的例子就是比特币,其激烈而快速的完成了从CPU到ASIC的过渡。比特币使用的技术区块链核心算法是SHA-256,它在各个平台上的性能对比如下:

  • CPU:最开始的时候,大家使用CPU挖矿,一台高端个人电脑,处理速度大概20MH/s(H/s, Hash per second);

  • GPU:后来有人用GPU加速挖矿,SHA-256可以继续拆分成普通的算术逻辑运算,而GPU具有超级多的算术逻辑运算单元,一个高端显卡的处理速度可以达到200MH/s;

  • FPGA:再后来出现了定制SHA-256算法硬件逻辑的FPGA加速卡来挖矿,精心设计的定制电路的FPGA,可以使运算速度达到1GH/s;

  • ASIC:而比特大陆公司2015年发布的ASIC矿机芯片BM1385,其性能达到单颗芯片算力可达32.5GH/s。

2.2 运行频率

(a) 组合电路示例

(b) 数字电路中的关键路径

图 运行频率与电路逻辑的关系

频率越高,计算速度越快。不考虑其他因素的制约,计算速度和频率是正比的关系。而频率受电路中的关键路径(延迟最大路径)约束,两者呈反比关系:关键路径越短,频率则越高。如上图所示,频率受关键路径制约,而关键路径与两个因素有关:

  • 一个是关键路径所包含门的数量,即从前一级寄存器到后一级寄存器之间的最长路径所包含的逻辑门的数量;

  • 另一个则是单个逻辑门的延迟时间,逻辑门的延迟时间跟半导体生产工艺相关,一般情况下,工艺尺寸越小,单个逻辑门的延迟越小。

因此,要想优化频率,就是要优化关键路径:一个是优化关键路径的逻辑门的数量,另一个则是优化单个逻辑门的延迟。当逻辑门的延迟越小,或者两级寄存器之间的逻辑门数量越少,则频率越高,计算速度也就越快。

要想减少两级寄存器间逻辑门的数量,则需要采用更多级的流水,这样每一级流水所做的事情越少,所需要的逻辑门也就越少。

要想减小单个逻辑门的延迟,主要有如下办法:

  • 最立竿见影的就是采用更先进的工艺,当然了,更换工艺需要更多的资金和研发投入。

  • 另一个办法是提升工作电压,提升电压会降低逻辑门的延迟,但与此同时会提升功耗和发热。发热过高又会影响到逻辑门的延迟,产生的热量如果不及时排出,甚至有可能烧坏整个电路。所以,通常是把电压控制在一个均衡的区间。

  • 还有一个办法是做定制的门电路。通常,大家都选择的是工艺厂商提供的标准库。如果采用定制门电路,则会在相同工艺下相比别人有更好的性能。例如,在比特币挖矿芯片行业,在均采用当时最先进工艺的情况下,比特大陆采取全定制电路设计,获得相比别人更多的性能优势,使其获得比特币挖矿的大部分市场。

2.3 并行度

并行的设计在硬件逻辑设计里非常常见。例如:

  • 指令流水线:指令流水线是一种时间并行,在同时有多条指令处理流水线的不同阶段,这样相当于有多条指令在并行处理。

  • 指令多发射(Multiple Issue):一条流水线,从指令缓冲区一次发送到译码阶段就有多条指令,然后在执行阶段也是多条指令并行。

  • 超线程(Hyper-Thread):在一个处理器核内部,多组不同的指令流处理,分时的共享处理器核内部的各种硬件资源,达到更佳的资源利用率,提升整体性能。

  • 多总线:例如,指令、数据总线分开,多数据总线等设计,进一步增加处理器的数据处理带宽。

  • 多核技术:通过一些内部互联总线,把多个处理器核集成到一块芯片内,以此来提升综合性能。

  • 多处理器芯片:受限于芯片工艺、功耗水平、设计架构,单芯片内的多核互联不能无限制增加下去,也可以通过一些芯片间互联技术,把多个CPU Socket连成一个NUMA系统,当前比较常见的是2-8个Socket互联的架构。

  • 总线:对并行总线来说,增加数据线的宽度,对增加总线的带宽是显而易见的,并行总线一般用于芯片内部逻辑通信;串行总线,例如PCIe,相比PCI并行总线,一方面可以快速提升频率,还可以通过很多组串行线组合通信来提升传输性能,串行总线一般用于芯片间数据通信。

  • 异构计算单元:CPU和GPU、xPU以及各种硬件加速器组成异构多处理单元共同协作完成工作任务,CPU更多的是承担控制和数据交互的角色。

  • 多服务器集群:现在大型的互联网系统需要成百上千的服务器,分为业务处理、网络处理、存储和数据库处理等不同功能分工的服务器,共同组成一个性能强大并且运行稳定的系统对外提供服务。

通过不同方向、不同层次的并行技术,都可以提升硬件系统的性能。我们把不同复杂度的单位处理都当作了“指令”,那么,我们就可以通过IPC(Instruction per Cycle)来评价并行度。对一个CPU核来说,IPC代表的是每个周期执行的指令数;对一个硬件加速模块来说,IPC则代表了一个周期所能进行的单位处理的数量。

3 I/O和处理的性能匹配

3.1 优化泛义的I/O,形成存储分层结构

如第一部分内容的介绍,数据I/O的带宽和数据处理的性能是相互配合的。当两者不匹配时,两者之间性能低的那个就代表了整个系统的性能(或者说,性能低的那个托了整个系统的后腿)。

  • 如果计算处理的性能低于I/O性能,则通过提高指令复杂度、运行频率和并行度的方式提升处理的性能。

  • 如果I/O性能低于计算处理的性能,则常见的提升I/O(这里的I/O是泛义的I/O,不仅仅是计算机架构中的I/O设备)的方法有:

  1. 缓存Cache。内存访问延迟无法匹配处理器流水线的处理能力的情况下,缓存Cache得以应用,随后还出现了多级Cache。

  2. 内存带宽。在DDR控制器的内存带宽不满足需要的情况下,基于HBM的内存得到采用。

  3. 高速存储。在存储HDD不能满足性能的情况下,切换到Sata SSD,再切换到NVMe SSD,以此来提高存储I/O。

  4. 高性能网络。不仅仅是因为处理性能的提升。还因为服务器集群的高可扩展性,以及分布式存储的广泛使用,还有整个应用逐渐微服务化,都使得东西向网络流量(数据中心内网流量)激增。因此,需要低延迟并且高吞吐量的网络来处理网络I/O。

在计算机体系结构里,根据访问延迟和容量大小来对计算机存储分层(Memory Hierarchy),利用程序局部性原理对存储进行性能优化,既可以匹配处理器延迟又可以提供大容量存储。

图 计算机存储分层结构

如上图所示,只考虑架构层面不同存储层次的功能和作用,可以把存储结构简单分为五个存储级别:

  • 处理器通用寄存器;

  • 各级缓存;

  • 内存,ROM及系统RAM等;

  • 本地外部存储;

  • 远程外部存储。

3.2 存储分层结构瓶颈,新的I/O优化

物极必反!

因为优化I/O的性能,形成了存储分层结构。然而复杂的存储分层已经开始成为问题的瓶颈,主要体现在功耗、延迟和访问带宽,也就是我们常说的“存储墙”和“功耗墙”的问题。

存储分层结构存在的一个关键原因是程序的局部性。然而,在大数据和人工智能时代,大通量计算的场景,再加上服务器多集群扩展以及微服务等对计算的拆分,计算开始呈现“高数据量低计算量”的特点,程序局部性逐渐失效。再加上各种数据处理引擎开始采用DSA甚至ASIC架构,计算量也在快速上升。这样如何更好的提供I/O成为整个计算性能的瓶颈。

行业当前大概有两个方向的做法:

  • 一个方向是往计算逻辑里放入更多的存储单元。如增加片内内存,并且增加各级的访问带宽,尽可能的减少层级,以及尽可能不让中间结果到下一级存储,尽可能的让计算全速进行。

  • 另一个方法则更加极端,直接“反其道而行之”,在存储体里放计算逻辑,这就是大家现在所说的“存内计算”。

总之,两个方法都是尽可能的让I/O和计算的性能更加匹配。

4 性能提升的各种方法

前面我们通过跟性能相关的四个因素(处理引擎性能的三个因素:指令复杂度、运行频率和并行度,以及I/O性能匹配)介绍了如何提升性能。接下来,我们介绍一些主要的提升性能的方法。

4.1 工艺封装的进步

tsmc 5nm已经量产,3nm工艺已经在路上,2nm、1nm也都在未来几年的路线图中。并且,tsmc已经开始在攻关0.1nm工艺,半导体工艺即将进入亚纳米(埃米)时代。此外,在存储领域,近些年来还兴起了3D封装技术,使得集成电路从二维进入三维。还有,芯粒(chiplet)机制的出现,把多个芯片裸DIE集成到一起,从3D到4D,都进一步增强了单位面积的晶体管集成度。工艺持续进步、3D堆叠以及Chiplet多Die互联,使得芯片从2D->3D->4D。这些技术的进步,意味着在芯片这个尺度,可以容纳更多的晶体管,也意味着芯片的规模越来越大。

过去50年里,工艺进步是推动摩尔定律的主要因素。每隔两年左右,单个晶体管变得更小、更快、功耗更低。在面积、功耗不变的硅片上,可以放下更多的晶体管。上图是斯坦福大学的学者在2012年整理的CPU性能提升的示意图,可以看到,在架构不变,仅靠工艺进步,其提升的性能依然是相当的可观。可以不夸张的说,工艺进步才是摩尔定律持续发挥作用的“主力军”。

总结一下,工艺进步主要可以优化三个因素:

  • 工艺进步不直接影响处理引擎架构,也就意味着没法提升“指令”复杂度;

  • 由于工艺进步,单个晶体管的速度可以更快,这样,可以立竿见影的提升频率;

  • 因为资源足够富余,可以通过并行多个处理引擎的方式实现更高并行性;

  • 工艺进步,可以内部嵌入更多片内存储、通过多DIE互联/封装,进一步优化泛义I/O;或者通过3D和chiplet等方式实现更大的系统下的更高的交互性能。

4.2 存算一体化

随着AI等高算力场景的爆发,业界迫切需要新技术来解决算力的瓶颈。存算一体化芯片成为一种重要的选择。阿里达摩院总结了存算一体的三种技术路线:

  • 近存储计算(Processing Near Memory):计算操作由位于存储芯片外部的独立计算芯片完成。

  • 内存储计算(Processing In Memory):计算操作由位于存储芯片内部的独立计算单元完成,存储单元和计算单元相互独立存在。

  • 内存执行计算(Processing With Memory):存储芯片内部的存储单元完成计算操作,存储单元和计算单元完全融合,没有一个独立的计算单元。

站在架构的视角,近内存技术是一种优化内存访问性能的办法,能够通过工艺或封装,提供数量级提升的内存性能。能够:提高内存访问的性能,降低内存访问的代价,缓解由于数据搬运产生的性能瓶颈。

AI、大数据处理等应用,大数据量低计算量。这样,AI-DSA类的芯片,都有一个大的特点,内部有非常大的片内存储(On-chip Memory)。而内存储计算则更加激进,直接是在存储中放计算处理逻辑。不过在此刻,内存和计算处理依然是分开的独立模块。

而内存执行计算,当前主要是用于AI场景,可以认为是一个偏ASIC的设计。通过模拟计算,把卷积计算和存储体深度结合起来。由于模拟计算的精度有限,也由于较定制的设计,这样的内存计算主要用于终端AI推理场景,或者说对能效比非常敏感的小规模的嵌入式场景。

总结一下,存算一体化主要优化的是I/O,主要是通过工艺和封装的设计和调整,使得系统能够更加轻量而高性能的进行存储访问。内存执行计算则相当于定制芯片,可以算作是提高“指令”复杂度,不过这些要归属到接下来要介绍的架构的范畴。

4.3 架构优化和创新

工艺的进步,给架构师们提供了更多的资源和发挥的空间:

  • 总线,从最简单的单总线到总线开关,再到Ring环形总线,甚至Mesh网络,以及基于更加功能强大总线完成的集成越来越多复杂模块的超大SOC。

  • CPU的流水线、多发射、多级Cache、多核,以及扩展的各类协处理器;

  • GPU也从专门的图形加速卡变成了GPGPU(后续,GPU默认为GPGPU),集成了数以千计的通用处理核心,成为并行计算的主力平台。

  • 近些年,兴起了DSA的热潮,进入了体系结构的“黄金年代”。DSA当前的两个重要特点,一个是更加复杂的计算引擎,一个是更加庞大的片内存储。

工艺进步提供了更多的晶体管资源,使得大家能够更加自由的发挥架构创新的价值。工艺发展和架构创新相辅相成:工艺发展给架构创新提供了更多的发挥空间,而架构创新让工艺的价值落地。

架构创新是整个设计的主导,架构创新可以从所有四个方面全方位的优化整体性能:

  • “指令”复杂度,处理引擎选择CPU、GPU还是其他DSA/ASIC定制设计,均可以提升指令复杂度;

  • 通过更优化的流水线,每个阶段做的事情减少,在同等工艺下,依然可以提升频率;

  • 通过架构上的优化,实现在共享资源情况下的并行。比如Hyper-thread并行共享ALU/MAC等执行单元,比如多核并行共享三级Cache和内存。也包括充分利用资源实现的其他并行机制。

  • 对I/O访问也需要更多的优化。比如总线的非独占、Outstanding,多总线,还有多通道内存、NVMe以及高性能网络等等。

5 宏观的算力

5.1 实际总算力的定义

性能是微观的概念,代表了单个个体的计算能力。而算力则是宏观的概念,算力是很多个体的计算能力的总和。为了避免混淆,我们采用总算力的叫法。

在前面我们已经介绍了单个个体的性能(在泛I/O不拖后腿的情况下):

(单个处理器的)性能 = 指令的复杂度(单位计算密度) x 频率 x 并行度

那么总算力则和单个处理器的性能以及处理器的数量成正比:

总算力 = (单个处理器的)性能 x 处理器的数量

虽然总算力可以很高,但如果因为各方面的原因,其利用率不高,则也不够好。因此:

实际总算力 = 总算力 x 利用率

= 指令的复杂度(单位计算密度) x 频率 x 并行度 x 处理器的数量 x 利用率

5.2 处理器的数量,实现规模化

总算力的概念非常的直观,一方面是单颗芯片的算力要高,另一方面,芯片要被大规模采用。像CPU、GPU以及DPU这样的大芯片,只有得到了大规模的采用,才能真正的发挥芯片的价值,在商业上才能做到真正的成功。反之,如果芯片没有大规模落地,即使性能太好,一切都是浮云。

那如何做到芯片能够规模化呢?这是一个非常复杂的问题,涉及到很多方面的因素。如果只考虑核心的架构设计,则是需要在性能和灵活性这两个矛盾的关键因素达到平衡甚至兼顾。CPU极度灵活,但性能瓶颈;ASIC性能极致,但灵活性差。如何设计一个均衡的算力平台,兼顾性能和灵活可编程能力,使得总算力尽可能最高,是一个非常巨大的挑战。

5.3 算力的利用率,降低成本,普惠大众

云计算没有出现的时候,如果我们想部署一套互联网系统给大家提供服务,则需要自己购买物理的服务器,然后租用运营商的机房。整个过程成本很高,而且弹性不足。不知道用户会有多少,也不知道服务器应该购买多少量,应该是10台还是1000台。买少了,用户访问量快速上升,服务会挂掉;买多了,如果用不到,浪费钱财资源闲置。超过一定数量,有可能就需要自己建机房,自己运维硬件。整个业务模式很重。

后来,云计算帮助用户完成了基础设施的建设,用户只需要按需购买。一方面,不需要关心门槛高而且距离业务非常远的基础设施建设。另一方面,实现完全的按需付费,快速而方面的扩容或者缩容,可以非常明显的降低运维成本。

再后来,云计算这种集中计算的架构其性能挑战越来越大,于是有了边缘计算。类似于集中(云计算)和分布(边缘计算)的关系,边缘计算能够相比云计算提供更低延迟的服务,与此同时,大幅度减轻云的压力。不过边缘计算也带来了一些问题,就是资源规模小,地域分散,而且运行环境各异。如何充分利用分散到各处的边缘计算资源,成为了需要重点解决的事情。

近些年来,宏观的一些技术趋势,比如云网融合、超云(云MSP实现跨云和混合云模式,我们定义为超云)以及国家“东数西算”战略等等。本质的,都是在通过各种各样的手段,尽可能的提高算力的整体利用率,以此来降低算力的成本,让算力变得更加唾手可得。

6 总结

把相关的若干因素再总结一下,要提高宏观的实际总算力,就必须要:

  1. 提高指令的复杂度(单位计算密度)。新的DSA架构创新,均衡的考虑不同的算力平台,以及通过异构和超异构计算,融合多种平台一起协作,完成系统级计算。

  2. 提高运行频率。优化设计,选择最优的流水线级数以及工艺等的持续进步,优化系统的运行频率。

  3. 提高并行度。更高的扩展性(Scalibility),更高性能的各层级的互联总线,并行更多的处理引擎。

  4. 优化I/O和处理的匹配度。通过工艺和封装优化,实现更加匹配的计算和I/O匹配。

  5. 实现处理器芯片的更大规模落地。均衡芯片的整体性能和灵活可编程能力,实现宏观的总算力最大化。

  6. 进一步优化宏观算力的利用率。算力上规模后,通过云计算、边缘计算、超云、云网融合等手段,持续优化算力的利用率,降低算力的成本。

简单一些的说,算力提升核心就两个方面:

  • 一个是增大规模(Scale out),通过扩大算力基础设施建设,以及“东数西算”等方式,构建更加规模庞大并且低能耗的现代化数据中心。

  • 另一个是提升单个计算节点的性能(Scale up),构建新一代的创新计算范式,要把算力再持续提升1-2个数量级,并且能够提供非常好的易用编程能力,来持续应对未来10年的更加复杂系统的算力需求爆炸的挑战。