所有主要的芯片厂商和系统厂商都在改变方向
所有主要的芯片厂商和系统厂商都在改变方向,他们引发了一场架构方面的竞赛,包括了从向内存中读取数据的方法到数据的处理和管理方式,以及最终各种元素如何打包到单个芯片中等方方面面。尽管节点的缩小依然会持续,但没有人会为了应对随着各种传感器和越来越多的机器间通信的爆炸式数据增长而把一切赌在扩展性上。
在这些改变之中,有一些值得我们注意:
新的处理器架构专注于在每个时钟周期内处理大块数据,根据应用程序的不同需要,有时可以选择较低的精确度,或让一些操作有更高的优先级。
新的内存架构正在开发,它将改变数据的存储、读取、写入和访问方式。
更多定向的处理元素被分散到系统中的各个部分,以配置到距离内存最近的地方。以后会根据数据类型和应用程序来选择加速器。
AI方面也有许多研究,以期将不同数据类型混合在一起组成模式,从而有效地增加数据密度,并将数据间的差异降低到最低。
封装(packaging)现在是架构中的核心组成部分,而且越来越强调修改设计的方便性。
Rambus的杰出发明家Steven Woo说:“有几个趋势促使人们希望从已有方案中获得最大的收益。在数据中心,人们希望压榨硬件和软件的一切性能。这使得人们重新认识数据中心的经济模式。创新的代价非常高。但技术切换才是瓶颈,所以我们才会看到专用芯片,才会看到许多提高计算效率的方式。如果能减少内存和输入输出之间的数据交换,就能带来重大影响。”
边缘设备的改变尤为明显
这种改变在边缘设备上尤为明显,而系统厂商们突然发现,几百亿的设备会将它们生成的一切数据都发到云端处理,这数据量显然太大了。但在边缘设备上处理巨大的数据量又提出了新的难题,必须在不显著提高能量消耗的前提下提高处理性能。
Nvidia的Tesla产品线的首席平台架构师Robert Ober说,“现在的关注点是降低精确度。这不仅仅是要求更多的计算周期,而且要求在内存中放入更多数据,而且只能使用16比特的指令格式。因此并不能通过将数据放到缓存中的方式来提高效率。从统计上来说,两种方式的结果是一样的。”
Ober预测,通过一系列架构上的优化,在可预见的未来,完全可能做到每两年处理速度提高一倍。“我们会看到最尖端的变化,”他说。
“为做到这一点,我们需要解决突破三个瓶颈。第一是计算。第二是内存。某些型号中是内存访问,其他型号则是计算问题。第三就是宿主带宽和I/O带宽。我们需要做很多工作来优化存储和网络。”
其中一些已经实现了。在Hot Chips 2018会议上的一次演说中,三星Austin研发中心的核心架构师Jeff Rupley指出了三星的M3处理器的几个主要架构变化。其中之一可以在每个时钟周期中执行更多指令,与它的前身M2的四条相比,M3能执行六条。再加上分支预测功能(大致是几个神经网络像执行搜索中的预读取一样的功能),以及一个两倍深的指令队列,已经有望解决这些问题。
从另一个角度来看,这些改变将创新的重心从制造和处理技术上转移到前端架构和设计,以及后端的制造后的封装过程上。尽管处理技术上依然会有创新,但每个新的节点增加15%~20%的性能是非常复杂的,而且很难跟得上目前飞速增长的数据的速度。
Xilinx的总裁和CEO Victor Peng在Hot Chips的一次演讲中说,“变化正在以指数的速度出现。每年都会产生10ZB(1021字节)的数据,其中绝大部分是无结构的数据。”
内存的新方法
处理这么多数据需要重新思考系统中从处理数据的方式到存储方式的每个组件。
eSilicon EMEA的高级创新总监Carlos Maciàn说,“在建立新的内存架构方面有过虚度欧尝试。问题是,你需要读取所有行,并从每行中选出一个比特。一种可选的方式是建立一种可以从左到右、从上到下读取的内存。还可以更进一步,将计算分布在距离各个内存最近的地方。”
这些改变包括改变内存的读取方式、内存的位置、处理元素的类型,以及使用AI来优化整个系统中数据的存储方式、位置、处理和移动的方法。
“如果对于稀疏数据的情况,我们能从内存阵列中一次只读取一个字节,或者从同一个字节的通道中一次读取连续的8个字节,而不用将能量耗费在其他我们不感兴趣的字节或字节通道上,会怎么样?”Cadence的产品市场总监Marc Greenberg说。
“未来可能对这种改变更感兴趣。拿HBM2的架构作例子,HBM2的晶圆堆叠组织为16个虚拟通道,每个通道为16比特宽,这样不论访问哪个通道,只需要拿到4个连续的64比特字即可。所以完全有可能构建1024比特宽的数据阵列并水平写入,同时在垂直方向上一次读取四个64比特的字。”
内存是冯诺依曼架构中的核心部件之一,但也成了最大的试验领域。AMD的客户产品首席架构师Dan Bouvier说,“最大的报应之一就是虚拟内存系统,它用许多不正常的方式移动数据。你需要不断进行地址转换。而我们早已习惯了这一点。但如果能在DRAM中消除bank冲突,就能进行更有效的数据传输。所以,离散的GPU能将DRAM利用到90%的有效范围,这已经非常不多了。但如果数据传输能更流畅,那么APU和CPU也能达到80%~85%的有效范围。”
IBM在研究另一种类型的内存架构,本质上是一种现代版的磁盘分割(disk striping)。这种架构不再限制于单一内存,而是利用一种连接技术适时地利用一切可以利用的内存。
这种连接技术被IBM的系统硬件架构师Jeff Stuecheli称为连通性的“瑞士军刀”。这种方法的有点是能使用不同种类的数据。
Stuecheli说,“CPU更像是坐镇中央的高性能信号接口。如果修改了微架构,那么无需提高时钟频率,核心就能在每个时钟周期内做更多事情。”
连通性和吞吐量对于这些架构处理不断生成的数据极其重要。Rambus的Woo说,“现在的瓶颈位于数据移动中。整个行业在计算方面做得很出色。但如果不得不等待数据,或等待某种数据模式,那内存的速度就得加快。所以,对于DRAM和NVM来说,性能取决于数据流动的模式。对于流式访问,内存的效率就非常高。而跳来跳去的随机访问就没那么快了。而且不论如何,随着数据量越来越大,我们能做的只有提高速度。”
更多计算,更少移动
更复杂的问题是,边缘设备会生成多种不同类型的数据,这些数据以不同的速度和频率生成。为了让数据能在各种处理元素之间更流畅地移动,数据就必须以更有效的方式管理。
Arteris IP的主席兼CEO Charlie Janac说,“有四种主要的配置——多对多,内存子系统,低功耗输入输出,以及网格和环状拓扑。这四个部分可以放在同一个芯片内,这就是在制造物联网芯片时的做法。或者,可以增加一个高吞吐量的HBM子系统。但复杂度会大大提高,因为一部分负载依赖于具体的芯片,而每种芯片都会有多种特别的负载和针脚。比如一些物联网芯片能处理海量的数据,特别是比如汽车中的雷达和LiDAR芯片。没有某种特别的高级连通功能,这些芯片就不可能实现。”
其中的难题是要尽可能减少数据移动,同时在不得不进行数据移动时,将数据的流量最大化,还要在本地处理和中央处理之间达成平衡,又不能消耗太多能量。
NetSpeed Systems的产品市场经理Rajesh Ramanujam说,“一方面是带宽问题。你会尽一切可能不移动数据,所以会将数据移动到尽量靠近处理器的位置。但如果必须移动数据,你会尽可能亚索数据。但这一切都不是天上掉下来的。这一切都要从系统的高度去审视。每一步都要从多个角度考虑,并要决定是按照传统的读写方式使用内存,还是使用更新的内存科技。一些情况下,你必须改变存储数据的方式本身。如果想要更快的性能,那这通常意味着更高的区域开销,这会影响到能耗。接下来就得考虑安全性,还得考虑数据过载的问题。”
这也是为什么许多人关心在边缘设备上进行处理以及多种处理元素之间的吞吐量问题。AI引擎可以在固态存储上自行进行分析。
Marvell的主工程师Ned varnica说,“你可以在SSD控制器上直接将模型加载到硬件中,并进行硬件处理。今天,云服务中的主机就在这么做。如果每个驱动器都要向云端发送数据,就会造成大量的网络流量。所以最好让边缘设备自行处理数据,这样主机只需要发送包含元数据的命令即可。这样,存储设备越多,处理能力就越强大。降低网络流量带来的好处是巨大的。”
这种方式中非常值得一提的是,它强调了不同应用程序的数据移动的灵活性。因此,主机可以产生任务并发送给存储设备记性处理,之后只返回元数据或计算结果。还有一种场合是,存储设备可以存储数据、预处理数据并生成元数据、标签和索引,这些数据由主机获取,用于未来的分析。
这只是其中一种选项。还有其他选择。三星的Rupley特别强调了乱序执行和混合惯用指令方式,后者可以一次解码两条指令,并混合为一个操作。
AI监管和优化
贯穿这一切的就是人工智能,它是芯片架构领域中的最新特性。功能不再由操作系统和中间件管理,而是在系统层次上分布在芯片内各个地方,以及分布在不同的芯片之间。某些情况下还可以在芯片内部内置神经网络。
eSilicon的市场副总裁Mike Gianfagna说,“实际上我们要做的就是把更多东西封装在一起,改变传统的方式。通过AI和机器学习,我们可以把这一切分散在系统各个地方,获得更有效、更可预测的处理。一些情况下可以使用系统中独立的不同芯片,另一些情况下可以使用同一个封装。”
Arm发布了它的第一个机器学习芯片,计划于今年晚些时候在多个市场上发售。Arm的接触工程师Ian Bratt说,“这是一种新的处理器。它有个基础模块,是一个计算引擎、MAC引擎和DMA引擎,再加上一个控制和广播网络。整体上一共有16个这样的计算引擎,利用7纳米技术,能以1GHz的频率处理4万亿条指令。”
由于Arm与生态系统合作伙伴合作,因此与仍在开发中的其他AI/ML芯片相比,它的芯片更具通用性和可配置性。
Arm并没有将一切都放到宏内核架构中,它按照功能将处理分类,这样各个计算引擎可以负责不同的功能。Bratt说有四个关键功能,分别是静态任务调度、有效卷积、带宽减少机制和为应对未来的设计而出现的可编程机制。
同时,Nvidia采用了不同的路径,他们在GPU旁边建立了一个独立的深度学习引擎,来优化处理图像和视频时的流量。
结论
通过实现这些方法中的一部分或全部,芯片厂商说他们可以每两年将芯片的性能提高一倍,从而跟上数据的爆炸式增长,同时保持芯片的功耗在一定范围之内。
这实现绝不仅仅是更多的计算机。它是整个芯片设计和系统工程的改变的起点,从此芯片开始跟随数据的增长,而不是受限于硬件和软件。
Synopsys的主席和副CEO Aart de Geus说:“当计算机进入公司时,许多人感到整个世界发展得太快了。他们当时还在一摞纸上进行会计工作。从那时就开始了指数级别的增长,而现在我们又会见到同样的事情。
现在发展的东西,你可以认为就是当年由会计账本向穿孔卡片的演化。在农田里,你必须在正确的日期、气温上升的时候浇水施肥,这就是为什么以前机器学习没有带来明显进步的原因。”
并不只他一个人给出了这种评价。西门子的子公司Mentor的总裁和CEOWally Rhines说,“人们最终会接受新架构。新架构最终会被设计出来。多数情况下这些架构会包含机器学习,就像你的大脑能从经验中学习一样。我见过20多家公司利用他们自己特质的AI处理器,每一种都有特定的用途。但你现在会在越来越多的应用中看到他们,最终他们会挑战传统的冯诺依曼架构。神经元计算会成为主流,这是我们在提高计算效率、降低成本并提高移动性和互联性方面的一大步。”