本文来自半导体产业纵横,特邀作者:金瑞祥,上海交通大学电子信息科学与电气工程学院
为了缓解CMOS工艺达到极限而导致的可靠性问题,发展新计算架构、新技术和促进编码多样化来提升集成电路性能成为热点,人们逐渐由传统的精确计算范式转向随机计算范式。
过去半个世纪以来,电子产品一直在稳步地从模拟向数字迈进。计算引领着电话、音乐录制和播放、摄像机以及无线电和电视广播的发展,在20世纪中叶基本实现了数字化。
然而,计算机和人类大脑处理的许多信号都是模拟信号。模拟信号具有一些固有优点:即使包含一些小的错误,通常也并不重要。例如,没人会在意录制的交响乐中某个音符比实际上的更响亮或者更柔和,也不会有人介意图像中某个区域比现实中的稍稍明亮。人类听力和视力没有敏感到能识别这些微小的差异。在许多情况下,电子电路不需要为了精确和可完全重复的处理方式而首先将这些模拟量转换为二进制数。如果可以将这些从模拟到数字的转换减到最少,那么就可以节省大量的能量。如果你能想出如何以节能的方式处理模拟信号,那么你就将先人一步。在电力稀缺的应用中,此项能力尤其重要,例如用于恢复听力或视力的生物医学植入物。
而数字技术的好处多于模拟技术是不可否认的,这也是为什么通常使用数字计算机来处理信号,而且处理精度比实际需求高得多——所用能量亦是如此。一种有趣且不太常见的折中方法被称为随机计算,它通过数字电路来处理模拟概率。举两个我们已经研究过的应用,这种基本已被遗忘的技术可以显著改进未来的视网膜植入物和机器学习电路,这就是我们认为随机计算即将卷土重来的原因。
随着数字化产业的发展,计算领域对集成电路面积、功耗和稳定性的需求日益增长。由于技术的进步,晶体管的尺寸不断减小,从而可以在芯片上集成越来越多的晶体管。然而,晶体管尺寸的减小会增加泄漏电流,从而增加功耗和不可靠性。为了解决这些问题,要么晶体管必须被其他设备取代,要么经典计算方式必须被其他计算技术所取代。而晶体管的材料一时难以突破,为了缓解CMOS工艺达到极限而导致的可靠性问题,发展新计算架构、新技术和促进编码多样化来提升集成电路性能成为热点,人们逐渐由传统的精确计算范式转向随机计算范式。
随机计算(stochastic computing)是一种通过随机比特流(bit stream)进行计算的范式,通过对比特流的简单位运算实现复杂的计算,是近似计算的一种。
随机计算基本原理
在随机计算中,实数由随机二进制比特流表示,而数字本身被解释为概率,即这串比特流中每一个比特为1的概率,而基于伯努利大数定律,概率可以用频率来估计,即每一位比特为1的概率可以用这串比特流中的1的个数在比特流中的占比来表示,即PX=N1/N2,其中是X中出现的1的数量。例如比特流1100101110表示数字0.6。由于1的位置是没有规定的,这也就意味着许多不同的比特流可以具有相同的值。下图为二进制数转换为随机数的方式,由随机数生成器(SNG)得到随机二进制数R,其中,然后与B进行比较后采样得到比特流X。因此一个的估计值可以简单地通过计算X中的1来估算,估计的准确性取决于X中位数的随机性及N的长度。此外随机数生成器通常采用逻辑电路,而非真随机源。
B.R.Gaines定义随机数有单极格式(区间为[0,1])及双极格式(区间为[-1,1])两种。通过改变变量,可以得到随机数的单极格式与出双极格式之间的关系如下:P*=2P-1,其中为双极格式下的随机数值。
随机计算的乘法
随机计算从刚引入开始,其第一个吸引点则是可以通过基础的逻辑门搭建一个成本低的具有计算功能的电路。在随机计算中通过单个与门即可实现单极中的乘法,对于双极格式的乘法也可以通过一个XNOR门轻松实现。其中需要注意的是,若要AND门利用随机计算理论准确表示乘法运算,需要两个输入的比特流是不相关的或者独立的。
随机计算的加法
加法的目的是计算输入的随机比特流中1的总和。常见的加法硬件实现有两种:基于多路复用器(MUX)的加法和基于近似并行计数器(APC)的加法。对于前一种结构,计算结果PZ=0.5(P1+P2)。
另一种方法是APC使用并行计数器对所有输入比特流中的1进行计数,并输出一个二进制数。基于MUX的设计具有简单的结构,适用于少量输入的加法运算,但是当输入数量变大时,会表现出不准确性。基于APC的设计非常精确,适合大量输入,但电路结构更加复杂。
随机计算的发展
起源
随机计算最早可以追溯到20世纪50年代冯•诺依曼关于随机逻辑的开创性工作,但既没有在理论上得到发展,也没有在实践中加以实施。
随着电子及计算机技术的发展,在20世纪60年代期间,通过两组研究人员分别独立的研究,发展出随机计算的基本概念。其中B.R.Gaines和J.H.Andrea主要从事机器学习领域的研究工作,在标准电信实验室上发表文章Stochastic Computing;同期,德国的Ted Popplebaum在伊利诺伊大学厄本那分校工作期间研究图像处理系统,与Afuso和Esch一起出版了书籍Stochastic computing elements and systems。通过两个小组共同的努力随机计算的概念得以完善。
在当时由于晶体管价格高昂,而随机计算仅需要几个晶体管或者简单的逻辑门就可以实现复杂的数学函数的计算,因此深受工程师的喜爱。
低迷
到20世纪70-90年代,随机计算的发展进展变得缓慢,随着晶体管的成本与价格逐渐走低,随机计算的优势逐渐被削弱。1978年在法国图卢兹举行了一次有关随机计算及其应用的专门会议,20世纪90年代,随着FPGA(现场可编程门阵列)的出现,人们对随机计算的兴趣也有了小规模的增长。
再次兴起
在2005年左右,新的错误检测和错误纠正方案——低密度奇偶校验(LDPC)——刚刚普及不久后,没落的随机计算迎来了一个小小的转折。LDPC编码发明于20世纪60年代,如今广泛用于各种通信系统,包括Wi-Fi网络。但LDPC解码则是一件棘手的事情。不过由于解码涉及概率算法,因此可以使用相对简单的随机计算电路来实现。随机电路在上述应用中的成功,以及控制功耗已成为芯片设计人员面临的最大挑战之一这样一个事实,促使研究人员在重新审视随机计算,观察随机计算在现代电子时代还能发挥什么作用。目前已通过随机计算完成机器学习及控制中的特定任务,此外随机电路已成功用于图像处理任务,例如边缘检测、图像阈值等方面。
随机计算的优点
渐进式精度。随机计算无须修改硬件即可调整计算精度,这在其他计算系统中是无法实现的,能够通过牺牲精确度实现以更低能耗完成复杂功能。随机计算的运算精度与比特流的相关,比特流越长则所产生的数值精度就越高,随着对比特流的扩展,会越来越精确,能非常迅速地提供一个粗略的估计。
这就好比数字的最重要位在其最不重要位之前到达;与传统的算术电路不同,最重要位通常最后到达。在一些迭代系统中,通过渐进式精度获得的结果可以提供比传统计算方法更快的反馈,从而带来更快的收敛。
所需的逻辑资源非常小,如,两数之间的乘法运算可简单地用一个二输入与门或XNOR运算来实现,具体取决于所采用的随机数格式;而加法器只需要一个多路复用器。这两种操作都可以用比它们的普通二进制运算电路少得多的硬件来实现。
固有的容错能力。由于采用随机数作为运算数据,其运算过程中的输入噪声或数据错误不会导致最终结果完全偏离。随机数的每个比特具有相同的重要性,而二进制数中比特的重要性则有很大的不同。此属性使随机计算通常可以非常好地避免“软错误”,因为比特翻转只会导致随机数数值的微小变化,不会对结果产生重大影响,而在普通二进制运算中,一个高有效位的比特翻转会导致重大错误。
随机计算存在的问题
计算精度的增长会导致比特流长度的指数速度增长。例如,若要求计算精度从4变成8,比特流长度需要从变成,从而也导致计算时间呈指数增长,使得处理时间变长。
高昂的随机性需求。使用微小元件进行加法和乘法是随机计算最明显的优势。然而,加法必须缩放以保持其结果在单位间隔内,而乘法则需要输入独立不相关的比特流。为了计算的正确性,需要保证SNG产生的各个随机流序列相互独立或不相关,因此SC电路计算核心电路需要多少个输入,就需要多少个SNG。这意味着需要大量的由独立随机源驱动的SNG,也就意味着高昂的成本,其门电路的优势将会丧失。此外SNG引入了初始转换错误及不同比特流的数据相关性引起的计算误差是随机计算系统中的两个主要误差源,需要通过改进SNG的设计来减轻此问题,以提高准确性和高度不相关的随机随机序列生成。
技术应用
随着数字化产业的发展,计算领域对集成电路面积、功耗和稳定性的需求日益增长。而取代晶体管的材料一时难以突破,因此发展新计算架构、新技术和促进编码多样化来提升集成电路性能成为热点。随机计算使用和加权二进制完全不同的数值表征系统,它的数据是无权重的,可以使用非常简单的逻辑电路来实现在加权二进制系统中非常复杂的运算,这有助于降低功耗和硬件复杂度,这使得随机计算非常适合集成电路设计。
随机计算仍在飞速发展中,有一些应用正在进行中,如美国普渡大学的Minsuk Koo等人提出了随机计算在脉冲神经网络的应用,实现了高效节能和内存压缩的神经形态计算实现。在90nm CMOS工艺中制作了基于随机计算的神经元和突触,从而实现高效的图像识别任务的片上训练和推理。
也有研究人员直接在半导体器件级来实现随机计算,这些方法建议利用底层电路结构的固有概率行为,如最直观的是利用热噪声影响下的二进制开关的概率行为。基于这一原理,佐治亚州理工学院的Sureh Cheemalavagu等人提出了概率CMOS(Probabilistic CMOS,PCMOS)系列电路。
此外,由于应用于随机计算的熵源可靠性和自相关性问题,基于RRAM的随机计算芯片相关的详细研究较少。2021年中国科学院微电子重点实验室科研人员首次在28nm HKMG CMOS平台上制作了基于RRAM闪烁噪声的128Kb SC芯片,通过使用该随机计算芯片,测试的边缘检测应用实现了极低的错误率(3.13% 128BSL)。
未来在芯片领域应用的趋势
随着大数据发展,需要AI芯片处理的数据量正在呈指数级增长,芯片速度的提高正随着摩尔定律可能的终结而渐趋缓慢。随着越来越多的计算系统向嵌入式和移动设备发展,降低能耗成为AI芯片设计的头等大事。随机计算作为能够有效提高芯片能效的方法之一,逐渐受到相关工作者的重视,在一些方面展现出了广泛的应用前景。
现场可编程门阵列(FPGA)与传统的大规模集成电路相比,具有可重构性好、并行性高的特点,成为了非线性系统在硬件实现的一种热门选择。但FPGA器件存在DSP资源昂贵的缺点,而大多数的非线性系统在硬件实现时,都需要相当数量的DSP资源。随机计算是以概率的形式对数据转化的比特流进行处理,可以用简单的门电路来实现加减乘除和其他复杂运算,从而降低FPGA中的计算资源消耗,提高非线性系统在FPGA硬件实现时的效率。因此,开展基于随机计算的非线性系统在FPGA的优化与应用研究具有重要意义。
此外类脑芯片作为AI芯片未来发展的方向之一,可以模拟人脑功能进行感知方式、行为方式和思维方式。而生物大脑的运作具备非常好的容错机制,并不强调精确计算,因此生物大脑的能耗非常低。因此是否可以从逻辑电路、存储器到算法,借助随机计算优势,接受不精确的计算结果并代入容差功能,以实现效能的提高?随机计算能够提高系统各个层级的容错性,这对器件来说也非常重要,因为半导体芯片工艺很容易出现各种缺陷,如果系统可以把这些缺陷忽略不计,那就能够大大提高稳定性与可靠性。