摘要
在计算机工程领域热力学一直就在设备能耗、扩展能力和性能的背后发挥着潜在的重要影响。但如何利用热力学原理帮助我们构建一种全新的高效计算机系统,而不是在现有的系统上应付热力学带来的能耗等挑战是需要很多相关领域的研究者们思考的问题。我们将介绍部分该领域理论和实践中的成果,为我们未来可能的计算机形式提供想象。
来自热力学的挑战
1965年4月19日,《电子学》杂志第114页发表了Moore(时任仙童半导体公司工程师)撰写的文章《让集成电路填满更多的组件》,预言半导体芯片上集成的晶体管和电阻数量将每年增加一倍,后来修正为每两年。而在芯片技术大致遵循Moore定律发展了数十年以后的今天,即使制程已经来到了当时难以想象的3nm,并发展出了应变硅、高k金属栅极、3DFinFET等技术,但我们始终没有摆脱能耗制约算力的挑战。宏观上,据统计目前在美国有约5%的能源都消耗于计算机上。Google选择将一些数据中心建造在河流旁边,利用河流中的水去除数据中心产生的热量。的确,不远的未来我们要想构建百亿亿级(exascale)的超级计算机,怎样能使它不会在运行中融化掉将是最主要的问题之一。
当我们疲于应付种种由热力学带来的挑战时不禁会思考,难道热力学就只是我们设计计算机时候的站在我们面前的对手吗
Landauer边界与Sagawa-Ueda理论
首先我们需要思考为什么计算会产生热量。从简单的电路运作的角度,电流在CMOS中流动,期间遇到各种晶体管的阻碍,产生热量是再自然不过的事情了。但如果我们不考虑现有的硬件结构而思考计算过程本身,就会来到信息论的讨论范畴。早在1961年, Landauer就提出在执行一个不可逆的逻辑计算时一定会产生热量[2],并且它的最小值是可以计算的。物理学中,一个系统的混乱程度可以用系统的熵(entropy)描述,而熵可以用著名的Boltzmann公式计算:
,
其中
是系统的熵,
是Boltzmann常数,
是系统的微观状态数。类似地,在一个信息系统中如果
是信息系统的状态数我们就可以得到系统的信息熵。而计算过程伴随信息的产生与消灭,理想状况下如果我们从系统中擦除一个bit的信息,根据上面的公式计算系统的熵会改变
,
伴随着熵的改变,我们需要消耗至少为
的能量,
是系统所处的环境温度。很容易计算出在室温下该能量约为0.17eV或是
焦耳。
而这一能量下限已经可以被实验测量并证实[3-8],当然这是在不考虑所有其他可能引起熵增的情况下的理想值,而实际上目前的CMOS技术执行一次该操作所消耗的能量在5000eV左右,远远大于上述的理想值。而这些能量最终会成为热量散发出去。
进一步的研究中,Sagawa和Ueda提出了考虑测量效应后的进行计算的能量边界条件[9]:
,

其中
分别为测量和擦除信息所消耗的能量
描述了考虑了量子效应后测量系统可以获得的有效信息。而只有在不考虑量子效应的经典过程中,该有效信息才等于完整的信息。这进一步表明擦除信息所消耗的能量需要同测量这一状态变化的过程所消耗的能量结合在一起考虑,是Landauer边界的一个推广,虽然早在1951年,Brillouin为了解决著名的Maxwell妖[10]的问题时就提到测量也需要消耗一定的能量[11]。
图1描述了Joules(焦耳)单位下的Landauer边界条件(蓝色横线)与数十年来我们的CMOS设备随着制程演进所能达到的产热进步的关系[12]。注意左侧是对数坐标,因此我们现有的技术的能耗距离Landauer边界仍有约高达5个数量级的差距。
图1. Landauer边界条件与CMOS设备能耗进步的关系 [12]
显然,依照现有以及可以预见的不远的未来的CMOS技术,计算机的大部分的能量都被消耗在了除计算以外的别的过程中。如果不从根本上改变这一局面,我们很难获得数量级式地可以快速逼近Landauer边界的计算系统。
更广泛地说,我们现行的计算体系已经开始面临多方面的问题。硬件上当我们沿着目前的路线走下去来到纳米尺度时,首先无法从根本上获得接近热力学极限的计算效率,而且会遇到越来越严重的由热力学涨落(fluctuation)带来的影响,关于涨落后面有更多讨论。软件上,我们目前也缺乏在复杂领域譬如经济系统,生态系统,制药等领域进行有效建模和编程的方法,机器学习和深度学习给这些领域带来了一些曙光,但可以看到的是现有的方法和可观测到的自然界的复杂度比仍然有很大差距。
基于热力学原理的计算系统
1. Hopfield网络和Boltzmann机
因此我们想要围绕目前硬件上面临的最根本的问题——热力学问题来思考如何基于热力学的物理原理来设计计算机系统。自然界各层次上的系统依照热力学来进行自组织和进化,因此我们也希望能够采用类似的原理构建未来的计算机系统。
从热力学的角度来说,自然界中的任何过程——计算也不例外——都伴随着能量的耗散。而在我们现行的计算系统中,我们将计算机视为基于多层次系统性设计的可以进行数学操作的机器。基于这样的系统,我们操作的时候需要先将问题转换为可以按照设计好的数学流程逐步运行的程序,在此过程中间热力学仅仅被视为一种工程上的限制,以驱动我们不断地提高热力学效率。
那如何构建一个基于热力学原理的计算系统呢?
德国物理学家Ising为了描述物质的铁磁性提出过一个模型,它包含了描述单个原子磁矩的参数,其值只能为+1或-1,并且模型中引入了特定交互作用的参数,使得相邻的磁矩会相互受到影响。Hopfield基于此原理构建了一种神经网络“Hopfield Network”[13], 它定义了一个包含了二元节点(取值1,-1或者1,0)
和相邻的一对一的具有一定对称权重
的连接的网络,整个网络的能量可以表示为:
,
其中第一项是我们主要关注的由节点和权重引起的能量项,第二项是节点的自身偏置。
图2. 简单的Hopfield网络示意
图2是一个简化的Hopfield Network的模型,包含了5个可以取值为0或1的二元节点和7和相邻节点的连接权重,连接上的数字即是权重值,它对应系统总能量态的贡献的负值。同时规定如果两个相邻节点的值都为1,它们之间的权重就会被激活,系统就会获得一个对应的能量降低,例如在(a)中,如果最左侧两个节点取值为1,则系统可以获得一个值为3的能量降低。我们知道自然界的系统会自发的运行到能量最低态,那么在这样一个简化的网络中,我们可以设计算法在输入一定的节点初始值后逐一判断每个节点的取值,目标就是使得系统能量最低,遍历节点后就完成了一次热力学意义上的系统能量的自发演化。
按照此规律,图(b)中我们在已给定如图所示的初始值的情况下判断右上角的节点值可以知道,此时该节点应取值为0,此时整个网络的能量为-3,因为若取值为1的话整个网络的能量将为-(3-4)=1 再按照此规律逐一判断各节点值可以得到如图(c)所示的网络能量最低态,此时整个网络的能量为-4,并且无法再降低了。
由于Hopfield网络中包含的特定的能量定义形式,我们在一些特定优化问题中可以利用它来求解。例如在典型的旅行商问题中,这些节点可以定义为城市,加入特定的问题域的限制条件之后总的优化函数可以用Hopfield网络的能量函数来表达,从而以能量最低为目标对原问题进行优化[14]。
但Hopfield网络的一个问题是它常常会陷入局部最优状态就停止演化了,例如图2 (c)中能量为-4的状态其实是一个局部最优解,(d)则是真正的全局最优的状态,此时的能量为-5,但在此时的节点逐个演化机制中达不到此解。
而Boltzmann机(Boltzmann Machine)在此基础上引入了概率化的节点更新规则。注意到该系统中任意状态
出现的概率(以
为例)若满足Boltzmann分布:
 ,
因而两种状态
出现的概率之比即为
 .
我们让每个节点的取值判断不再是确定的,而是满足
,
其中
是环境温度参数,
则描述该节点取值0和1时引起的系统能量之差。
按照此规则选取节点值来更新网络,Boltzmann机可以避免像Hopfield网络那样常常陷入局部最优的情形。
2. 热力学涨落与热力学神经网络
最近的由Hylton提出的热力学神经网络(Thermodynamic Neural Network)[15]进一步引入了自然界中既有的守恒量——电荷并且利用节点间电荷传递会遵循最高效率的原则,并且引入了非平衡态中的涨落原理而设计,如图3所示。
图3. 热力学神经网络的结构与更新机制 [15]
图3左侧的图描述待更新的中心节点的势由同时连接的两组具有相同正负的节点势
和相反电荷传递权重
来决定,
同时采用“旋转开关”的模式来选择另两组具有相反的势的节点,这样保证正负电荷可以各自独立守恒而不会互相抵消。节点的遍历选择则遵循右图的Markov链的规则。而系统的总能量
可以描述为各节点的能量之和:
,
其中
分别描述系统的节点势,连接权重和连接上与该节点相关的电荷。另外整个系统会和一个外部的具有温度倒数为
热库(thermal reservoir)
——一个可以保持自身温度的热源——相接触,此时系统处在某一热力学状态上的概率将满足Boltzmann分布
 .
在节点遍历中发生的电荷转移过程里,系统中基于热力学原理而不可避免地始终存在着热力学涨落(fluctuations)。该涨落在此系统中是一个非常重要的因素,它也是一个热力学中的一个重要概念,近年来随着随机热力学的发展,人们才能够研究远离平衡态的系统的随机热效应,而自然界中发生的几乎所有的实际过程都是处于非平衡态的。在该网络中,此涨落相对于环境也就是热库温度的大小,也就是上式中Boltzmann分布里指数内的项“
”的稳定程度决定了节点的状态更新是否是接近热力学平衡(equilibration)的。
如果大的热力学涨落使得该更新无法处于热力学平衡,则节点将只更新它和与之相连节点的电荷而不改变连接它们的边的权重。相反地,如果是该更新是热力学平衡的,则将同时伴随着连接权重的更新和对相邻节点的的能量传递,此时网络结构随着连接权重的更新也就发生了变化,因此该更新是不可逆的。
像上式给出的分布那样,涨落会带来系统状态在概率分布上的不确定性,因此电荷转移完成后还会有残余的无法完全平衡的电荷。残余的电荷将进一步发生耗散(dissipation),该耗散在实际中会通过一定的物理结构去发生,在此设计的热力学神经网络中耗散则通过上述的更新连接权重来完成,方法遵循Boltzmann分布。连接权重更新后又会带来新的电荷不平衡,如此往复,这就构成了一种热力学意义上的系统性的循环并自我优化的过程。
从热力学计算的意义上说,整个系统更新中伴随着一系列的热力学涨落,平衡,耗散以及自适应的过程的循环,这样的涨落和耗散不再是计算的副作用或是阻碍,而成为了计算中自然的一部分。这也正是自然界中很多过程包括生物的过程中的运行方式。另一方面,快速而全局的节点状态更新伴随低速而局部的连接自适应更新使得整个系统可以完成多尺度而复杂的演变,这在不管有没有外部电势输入的影响的情况下都可以自发地实现。
3. 热力学计算机的可能形态与应用
遵循这样的思路,参考文献[16]中作者设计了一种真正的热力学计算机的可能形态,如图4所示。
图4. 一种热力学计算系统的概念设计[16]
这套热力学计算系统由一个传统的计算机系统(虚线以上部分)和新的热力学计算机硬件(虚线以下部分)组成。传统计算机系统作为主机,人类可以直接与之交互。另一方面,热力学计算机部分则具有如之前所述的热力学神经网络的特性或者包含更多特性,并且直接与外部真实世界中的势相连接。主机可以限制热力学计算机以选择所需的外部势并且调整自身的部分结构。同时热力学计算机还需要与一个独立的热库(thermal reservoir)相连接以提供所需的重要的热力学涨落,如同前述的在热力学神经网络中的作用那样。当调整好的热力学计算机暴露在相应的外部势之后,短期内的自发的系统态的转变(就像热力学神经网络中节点势的更新)以及长期内的组织结构的更新(就像热力学神经网络中连接权重的更新)都将是热力学原理驱动下的固有的自适应过程。因而这样的热力学计算机可以利用底层的物理学原理导致的物理过程本身来完成相应的计算任务。
例如在解决描述遵循Navier-Stokes方程的流体运动时,具有上述结构的含有随机热力学涨落机制的热力学计算机可以模仿流体中复杂的量子和统计上的涨落决定的运动机制,并且将这一涨落再注入回计算过程中来模仿流体的运动微观过程。又例如在对宏观的复杂系统例如大气层动态的计算上,热力学计算机相对于传统的基于确定性和无噪的计算过程的计算机来说具有天然的巨大优势:构建一个如此庞大的离散化的大气层模型并施加以Navier-Stokes方程的过程将轻易突破目前的超级计算机的计算能力,而其实该计算过程中的宏观尺度上的随机性其实并不需要被视为进行模拟计算的一个阻碍——这正是热力学计算机的处理方式。
实际使用时,使用者可以将譬如一个优化问题的优化对象描述为与问题相关的特定外部势限制下的一个热力学系统并由主机进行输入和控制,后面只要利用热力学计算机的物理特性,在整个过程中随着能量的耗散,系统内熵的产生会倾向于最小,因而最后就能获得我们想要的优化问题的解。
4.基于物理尺度上的宏观思考
图5给出了考虑这一问题的更宏大的角度。理解了前述的关于热力学涨落在热力学神经网络中的作用之后就不难理解。我们将现实世界的尺度与热力学涨落本身的尺度的对比后将所有的尺度大致分为三档,最外侧的经典区域中热力学涨落相对于这里的计算系统都是很小的,经典区域下的计算系统就是我们现实中的计算系统,在系统的各种器件例如晶体管,门和存储器中热力学涨落都是被视为需要被隔绝或排除的不良影响,以此创造出抽象的设备状态(存储器状态)和状态变化的数学与逻辑定义,因而整个计算过程都是抽象的,我们尽量杜绝热力学的干扰和影响。这看上去是他的优点,但这样的经典计算模式在热力学涨落变得与硬件的特征尺寸越来越接近(也就是目前越来越多会遇到的问题)时即会逐渐失效。
中间一层即是如前面探讨的热力学计算区域,此时热力学扰动在尺度上是和这里的计算机设备的执行单元相仿的。自然界中的细胞操作,神经元可塑还有生物进化等都属于这个范畴,这也是我们如果想要在计算中逼近热力学极限的实现尺度。
最内的一层则是量子区域,在这个区域里热力学涨落比计算系统本身要大。我们在这里的操作办法是用超低温将热力学涨落“冻结”后再进行计算。
在中间一层的热力学计算区域,尽管工程上要实现还有太多的挑战,但将热力学涨落和系统的自适应性等特性找到合适的输入势以及一个允许我们将问题在热力学计算机下通过参数调整很好地定义的办法将是我们必须要寻求的目标。在这一目标实现过程中,目前看尽管离最终形态的热力学计算机的实现还比较遥远,但在研究过程中我们也找到了很多适合于目前或不久的将来去实现的包含热力学思想的对现有计算系统加以改进的办法。

图5. 计算的三个尺度区域[16]
5.现有的可能实现和更多的理论尝试
如前面所述的那样,计算产生的热量与计算系统的熵有关,而现有的计算系统中我们并不会考虑这一点。从硬件上说,对于完成相同的计算,如果我们能够优化电路中和信息熵有关的状态转换器(如逻辑门)的排布顺序,使得我们可以进行尽量少的信息擦除和写入过程,就可以在不改变任何其他技术条件的情形下提升系统的热效率。近年来随着随机热力学和非平衡态物理的发展[17],我们也可以更精确地计算在实际情形中很多计算过程中的能量消耗,因此可以更好地对这些过程进行硬件和软件上的优化。
另一方面,我们现在虽然无法搭建出一套完整的基于热力学器件的热力学计算机,但也已经有采用部分基于热力学原理的硬件比如忆阻器(memristor)参与计算的尝试[18]。通过越来越多的热力学部件的参与,我们可以让热力学涨落在某些关键的局部参与完成运算,提升计算的性能。这里需要化学和材料科学的帮助以制造出更多相应器件。
还有一些有趣的理论和尝试,比如可逆计算。Landauer在提出Landauer边界条件时候指出正是传统计算操作的不可逆性直接影响了这些操作器件的热力学行为导致了能量的耗散。一般的计算系统包括前述的热力学计算机从信息论的角度说进行的都是不可逆计算,比如我们进行最基本的加法操作之后我们无法从加法的结果反推回输入的两个数,也就是说我们执行完每一步的计算后很多信息就已经被永久合并或抹去了,我们无法从计算的任何时刻恢复出完整的上一时刻的系统信息。相反地,理想情况下,如果我们设计的计算系统是完全可逆的,理论上我们甚至可以突破Landauer边界条件的限制[19],不产生任何热量耗散。现实中基于该原理设计的诸如Fredkin门等可逆门虽然原理上可行,但由于受到非平衡热力学的影响,要想逼近理想状况下的零耗散,该逻辑操作必须在极慢的速度下进行以保证系统时刻可以接近热力学平衡,所以目前这仍然也只是一个不太成熟的构想,但的确目前理论上只有通过可逆计算我们才可能突破由信息熵决定的热力学限制。
结语
当我们回顾几十年来的计算机的发展,特别是当前我们遇到了越来越难以突破瓶颈时,我们很难不去思考我们构建现有的计算机系统的出发点以及信息处理的本质。Landauer和Bennett等人的研究表示[1,20],信息处理本质上是一个物理过程。从物理的角度思考目前以及将来我们应该如何改进现有的和构建全新的计算机系统是一个注定重要和充满挑战的过程。这里我们总结了部分基于该物理过程中最重要的热力学原理的计算机系统的构想和实践,但这是一个涉及领域非常广泛的充满了从理论到工程的很多挑战的问题,一定还有很多没有谈及的地方。相信拥有自然界赋予的无穷创新力的人类注定能实现远远超越当前的认知与计算的能力。
参考文献
[1] Moore, Gordon E. (1965-04-19). "Cramming more components onto integrated circuits", intel.com. ElectronicsMagazine. Retrieved April 1, 2020.
[2] Rolf Landauer (1961), "Irreversibility and heat generation in the computing process", IBM Journal of Research and Development, 5 (3): 183–191, doi:10.1147/rd.53.0183, retrieved 2015-02-18.
[3] C. Jarzynski, Phys. Rev. Lett. 78, 2690(1997).
[4] G. E. Crooks, Phys. Rev. E 60, 2721(1999).
[5] S. Mukamel, Phys. Rev. Lett. 90, 170604(2003).
[6] R. Kawai et al., Phys. Rev. Lett. 98,080602 (2007).
[7] J. Liphardt et al., Science 296, 1832(2002).
[8] M. Collin et al., Nature 437, 231(2005).
[9] Takahiro Sagawa and Masahito Ueda, “MinimalEnergy Cost for Thermodynamic Information Processing: Measurement and Information Erasure”, Phys. Rev. Lett. 102, 250602 (2009).
[10] L. Brillouin, J. Appl. Phys. 22, 334(1951).
[11] Leff, Harvey S. & Andrew F. Rex, ed. (2002). Maxwell's Demon 2: Entropy, Classical and Quantum Information, Computing, CRC Press, p370.
[12] Wimsatt, Gregory W.and Boyd, Alexander B. and Riechers, Paul M. and Crutchfield, James P, Journal of Statistical Physics, 183, 16 (2021).
[13] Hopfield, J. J. (1982). "Neural networks and physical systems with emergent collective computational abilities". Proceedings of the National Academy of Sciences. 79 (8):2554–2558. 
[14] Mańdziuk, Jacek. (1996). Solving the Travelling SalesmanProblem with a Hopfield-type neural network. Demonstratio Mathematica. 29.219-231. 10.1515/dema-1996-0126.
[15] Todd Hylton. “Thermodynamic NeuralNetwork”, Entropy (Basel). 2020 Feb 25;22(3):256.
[16] Todd Hylton, Thomas M. Conte, Mark D.Hill. “A Vision to Compute like Nature: Thermodynamically”, Communications of the ACM, June 2021, Vol. 64 No. 6, Pages 35-38.
[17] Luca Peliti, Simone Pigolotti, “StochasticThermodynamics: An Introduction”, Princeton University Press (2021).
[18] Jinxiang Zha, He Huang, Tingwen Huang, JindeCao, AhmedAlsaedi, Fuad E.Alsaadi, “A general memristor model and its applications in programmable analog circuits”, Neurocomputing, Volume 267, 6 December 2017, Pages 134-140.
[19] Tommaso Toffoli, “Reversiblecomputing”, International colloquium on automata, languages, and programming,632-644.
[20] Bennett C H. Sci. Am. 1987, 257: 108.
关于壁仞科技研究院
壁仞科技研究院作为壁仞科技的前沿研究部门,旨在研究新型智能计算系统的关键技术,重点关注新型架构,先进编译技术和设计方法学,并将逐渐拓展研究方向,探索未来智能系统的各种可能。壁仞科技研究院秉持开放的原则,将积极投入各类产学研合作并参与开源社区的建设,为相关领域的技术进步做出自己的贡献。
扫码关注我们
继续阅读
阅读原文