我们生活在一个以数字处理为主的模拟世界中,然而随着摩尔定律开始走到极限,以及内存墙的存在,传统的数字处理器难以以足够低的功耗和足够的内存资源提供必要的性能,尤其是对于在边缘运行的大型模型。现在人工智能和深度学习的应用逐渐被应用在各个领域,对更好性能、更大深度神经网络 (DNN) 模型容量和更低功耗的需求变得越来越重要。
在这样时代发展和需求下,模拟计算正在走向历史舞台。模拟计算或将是人工智能创新的关键。
什么是模拟计算?
首先需要了解到的是,模拟计算不是新事物,其出现在电子电路之前。一说到计算,本能的相关概念是跟“数字”有关,现在大多数计算机和计算功能都是用通用数字逻辑、专用算术逻辑单元 (ALU) 或专用计算引擎实现的。但在20世纪上半叶,在数字处理和计算机普及之前,都是用模拟计算机来进行计算。
据Analog IC Tips的报道,古老的计算尺是一种模拟计算机,如下图所示,它可用于乘法、除法、对数、根,甚至是复杂的微分方程等运算。
虽然模拟计算只能精确到两个、三个或者四个重要的数字,但它确实是以前工程师、科学家等的有效工具,点火表、行星和卫星轨道、核武器和能源工作、潮汐表等等都是使用模拟计算机设置和解决的,甚至1969年阿姆斯特朗成功登月,也有模拟计算机的参与。
早期的计算尺:模拟计算机
(图源:国际计算尺博物馆)
早期的模拟计算机大多包含旋转轮子和齿轮的机械装置,如下图这台机械模拟计算机用于预测潮汐。它被称为“Old Brass Brains”(或者更正式的说法是“2号潮汐预测机”),从1912年开始为美国海岸和大地测量局计算潮汐表。
到1940年代,电子模拟计算机开始得到广泛发展,电子模拟计算机是包含数百或数千个真空管,按照IEEE的报道说法,电子模拟计算机的编程是通过接线板手动连接各个组件之间的连接来完成的。
它们是复杂而古怪的机器,需要经过专门培训的人员才能理解和运行它们。1965年左右,这种电子模拟计算机将机械模拟计算机淘汰。
从上图的机械预测机和电子模拟计算机中,我们也可以看出,这些模拟计算机太难设计、建造、操作和维护。到1960年代,数字计算机开始起飞,因为他们能直接编程、进行算法操作,且易于存储,具有高精度等等。
自此以后,电子模拟计算机被数字计算机取代,并且随着MOS晶体管的不断发展,世界计算潮头完全转向了数字计算机,数字技术一直主导着计算领域,并且一直到今天。不过上述这些模拟计算机仍然在博物馆珍藏,以备后人观摩,并且让世人记住这些伟大的发明创新。
据清华大学电子工程系的乔飞副研究员(乔飞在低功耗集成电路设计、面向智能感知的新型高能效信号处理架构和集成智能感知电路系统领域有近20年的基础理论研究和关键芯片设计技术积累。)告诉笔者,模拟计算机被数字取代,主要原因有几点:一是早期的模拟计算机的工艺和器件不太稳定,再加上模拟计算是连续信号,容易受到噪声干扰,这些都导致了模拟计算的精度不足问题。二是模拟计算很大部分是存储器,但是却很难做高效率的存储,这也是制约其技术演进的原因。
模拟计算因应时代发展和本身优势,再登历史舞台
现在摩尔定律逐渐走到极限,数十亿晶体管组成的芯片上,数字计算所产生的热量和功耗是巨大的。进入后摩尔时代,单纯靠工艺的演进带来的效率提升已经逐渐达不到系统的需求。在架构上的创新已经是不得不做的一件事,特别是面向特定领域的计算架构创新。于是模拟计算开始再次被业界探究。
那么,为何现在模拟计算被再次重提呢?乔飞认为,随着现在工艺逐渐稳定可靠,已经可以支撑一定精度模拟计算的实现,再加上一些算法、电路、甚至是版图上的一些降低外部干扰的技术。
还有一点是,虽然模拟计算不太好做存储,但是通过在架构上的革新,与数字存储做融合,则能实现存储能力的提升。更重要的一点是应用需求的驱动,现在诸如电池供电的小型化的设备的边缘计算,对低功耗数量和质量的诉求越来越多、且越来越强烈。
其实,与数字计算相比,模拟计算一直以来都很有前景。计算机系统的模拟表示通常更自然,因为它直接反映了系统的结构。
在某些情况下,模拟计算机比数字计算机更快,因为它可能同时求解多个方程,而不是一次求解一个方程的数字计算机,只给出同时性的结果。再者,模拟计算无需转换器进行数字模拟转换,许多实时系统的信号可以同时计算。
而且,现在的许多应用可能只需要一点点计算能力,使用数字电路需要消耗的大量的处理器资源。
此外,在一些特定领域,模拟计算在非常低和非常高的频率下能发挥更好的作用。诸如说,在大约10 kHz 和 100 kHz 之间的非常低的速度下,数字计算功能的性能可能远远超过所需,造成成本高昂且耗电;在数百MHz和数GHz的最高速度下,以数字方式执行此操作可能需要高速 A/D 转换器和高性能处理器内核,这些内核既昂贵又耗电,或者根本不可用。
所以整体来看,模拟计算主要有两大优势:一是速度,因为我们计算机的核心是模拟的,在当今的许多应用中,数字计算机依赖于各种传感器,其中一些传感器可能非常复杂,并且可能涉及模拟计算,如果需要,可以将模拟计算芯片直接与传感器和执行器接口,它消除了数据移动;二是功率效率,它具有高性能和低延迟,使其适合在向量运算期间并行发生的数十万个乘加运算。
模拟计算也存在工艺选择和成本上的优势,据乔飞此前的实验得出,完成相同功能的计算,采用180nm的模拟工艺设计可以和65nm的数字设计是相当的。因为采取的是成熟的半导体工艺节点,他们通常成本更低,供应链可用性更广,也省去了外围组件的成本。
那么,模拟计算主要适合哪些应用呢?
“模拟计算非常适合现在的边缘AI计算要求,特别是神经网络和感知类的应用需求。因为这两个领域的容错特性很强,通过算法就可以实现容错,这样就可以配合电路设计方案,做软硬件的联合设计。”乔飞强调到。
美国ARM研究公司机器学习研究负责人Paul Whatmough 说:“模拟内存计算技术可能非常适合超低功耗TinyML感知任务,例如边缘计算应用程序中的关键字发现和视觉唤醒词。”
模拟计算的早期玩家显现
在模拟计算领域的商业化之路上,国外的Mythic一直在这个领域研究,Arm和IBM也合作打造了一颗模拟AI芯片;Innatera、Rain Neuromorphics正在进行模拟类脑芯片的研究;国内的每刻深思也在感知领域进行模拟计算的商业化落地。
现在网络边缘计算需要各种摄像头、激光雷达、安全等传感器,这些传感器产生如此多的数据,很难将如此大的数据模型放在芯片中。
在人工智能计算中,芯片通常必须处理大量的简单算术,每秒有数万亿次加法和乘法运算。Mythic选择用模拟AI处理器来处理计算,并将这些结果存储在闪存中,其在芯片中封装了大量的闪存,从而消除了系统中的多余部件,如散热组件等。他认为,在芯片尺寸、成本和功耗方面,这将比GPU或其他处理相同计算的方式更有效。
据Mythic所介绍的模拟计算原理:模拟计算将内存计算发挥到了极致,即直接在内存数组内部进行计算。使用内存元素作为可调电阻,提供输入作为电压,并收集输出作为电流。在核心神经网络矩阵操作中使用模拟计算,即用一个输入向量乘以一个权重矩阵。
图源:Mythic
2021年6月,Mythic推出了模拟AI处理器M1076 AMP ,它可在3瓦功率范围内支持高达每秒25万亿次 (TOPS) 的AI计算操作。M1076 集成了76个AMP块,所有这些都在一个芯片中,可存储多达80M的权重参数并执行矩阵乘法运算,无需任何外部存储器。这使得 M1076 能够提供桌面 GPU 的AI计算性能,同时只需消耗1/10的功率。
今年9月12日,Arm和IBM基于14nm工艺技术开发了一种可编程的最小面积相变存储器(PCM)模拟内存计算(CiM)加速器,称为AON-CiM。
荷兰公司Innatera正在模仿大脑处理感觉数据的机制来研发处理器。其处理器基于专有的模拟混合信号计算架构,利用脉冲神经网络的计算能力在狭窄的功率范围内提供突破性的认知性能。这些器件以前所未有的超低功耗和短响应延迟相结合,在传感器边缘的应用中实现了高性能的始终在线模式识别功能。据其官往所述,该处理器的每瓦性能比传统的微处理器和数字加速器高达10,000倍。
美国初创公司Rain Neuromorphics受大脑启发,也在进行模拟计算芯片的研究。该公司的模拟计算芯片使用ReRAM忆阻元件阵列,并结合了从 NAND 闪存工艺中借鉴的 3D 制造技术,商业芯片使用闪存等存储单元,以极低的功耗计算神经网络训练和推理。
国内方面,成立于2020年底的每刻深思是模拟计算的早期玩家。上文中提到的乔飞副研究员也是每刻深思的创始人之一,每刻深思致力于将清华大学的集成电路智能感知实验室成果落地。
说到模拟计算,其是否与现在比较火的存算一体这种新型架构有关系,二者之间的区别又在哪里?关于这点,每刻深思CEO邹天琦告诉笔者,存算一体在卷积和神经网络中的功耗确实可以做到很低,但其外部仍需要AD、DA的接口,所以从整机和系统的角度来考虑的话,其带来的颠覆性优势并不是特别明显。
而模拟计算可以把外部的AD、DA接口都省去,当传感器在最前端把信号输出来之后,在模拟域就可以完成信号处理和卷积神经乘和加运算。因此从系统角度来看,模拟计算比纯数字计算或者存算一体+外设接口的方案能带来更大程度功耗的下降,甚至可以达到1个数量级的功耗下降。
模拟计算的技术挑战
虽然模拟计算的优势颇多,但从理论上来看,模拟计算仍存在一些挑战。
挑战一是,特别复杂的计算需要大量的模拟块,所以最后做出来的芯片是大而昂贵的。可采取的解决方法是将这些复杂的计算问题分割成更小的子问题,搭配数字计算,进行混合计算。
再一个挑战是,虽然理论上模拟计算芯片可以直接与传感器和执行器之间互联,但是要实现这种远距离的随意互联是有很大难度的,所需的布线和连接规则都存在尺寸和复杂的难题。如同现在的Chilet,3D堆叠是一个很好的实现Chiplet互联的方式,各大厂商也是对互联提出了自己的方式,现在更是成立了UCIe联盟来共同推进Chiplet的发展。3D堆叠或许也能够解决模拟计算连接的问题。
然后是在提高精度方面,模拟计算芯片也存在着难度。在数字电路中,只需添加位即可提高精度。但是模拟计算则需要使用更大的芯片面积。所以这也是为何模拟计算适用于低精度应用的原因。
在实际商业化方面,乔飞指出,模拟计算不像是CPU这样的通用计算平台,它是面向特定领域的计算,其与算法和应用结合的非常紧密,所以第一个要解决的是软硬件联合设计的问题,在底层架构变成模拟计算单元后,上层的算法该如何去适配或优化。第二个挑战是电路设计上的难题,找到针对应用的最合适的模拟计算电路,因为模拟计算的电路实现方案很多,如何构建更加稳定鲁棒的实现、校准和纠错也是很重要的问题。
邹天琦也表示,如同半导体领域的其他新技术,模拟计算大约需要在3-5年的时间大规模的商业化落地。要实现在模拟域的处理并不简单,由于模拟电路本身的特性,在实际的工程化或量产过程中会存在一些问题,而这些问题并不能像数字处理那样通过仿真和FPGA的验证来实现,只能通过流片和测试,不断的进行迭代,才能达到预期的效果,实现比数字电路低很多的信号处理算法的计算。
结语
我们处于一个创新多变的半导体时间节点,各种新材料、新架构、新封装、新设计涌现,这些都是时代和技术演进的产物。在人工智能的下一代,模拟计算,或者更恰当的说,模拟数字混合将成为新的尝试。
审核编辑:刘清
评论
查看更多