如何能更聪明地进行计算?

诸如阿瑟·克拉克,在上世纪五六十年代的科幻作品中描绘的数据和计算,大部分都是基于大型计算机的服务器—终端机模式。计算机界也曾有一个著名段子,IBM的创始人兼CEO沃森曾在1941年说:「我认为整个世界的计算机市场有五台的规模」。

然而在PC发展很多年后,如今云计算风起云涌,似乎又回到了当初的那种服务器—终端机模式。这个「回归」真的是给人类绕了弯路吗?计算机的发展本质是基于人们对算力越来越大的需求。但「发展」一个系统如同我们往期节目中介绍的任何其他系统一样,并非是一个单一线性关系。一开始,人们能想到的,提高计算机算力最简单的办法就是增加计算单元的数量。从微观上看,集成电路上可容纳的晶体管数目,约每隔两年便会增加一倍。这就是由英特尔创始人之一戈登·摩尔(Gordon Moore)提出的「定律」。在这背后支持这种「假想定律」的客观驱动力是半导体行业的核心——金属氧化物半导体效应管(MOSFET:MetalOxide Semiconductor Field Effect),通俗的来讲就是晶体管的制造工艺。从1971年的10微米晶体管到2020年刚实现的5纳米制造工艺芯片,随着尺寸不断的缩小,晶体管的发展将越来越严重的受到一些物理极限的制约。最简单的例子就是当「闸极」长度足够短时,就会发生量子隧穿效应导致晶体管漏电。人们不得不停下来思考继续前进的方向。一些人继续在微观领域探索,并将目光转向量子计算机。他们利用一些微小粒子可以呈现叠加态的特点,将多个量子比特组合来表示系统的不同状态,实现「同一时间内的多线程计算」,并以此实现对经典计算机部分功能的模拟甚至超越。但这么做的局限性也很明显,量子计算机目前只能用于特定的问题求解。如何针对量子计算机的硬件体系开发一套有较高契合度的软件系统还在研发摸索的过程中,前景尚且不明朗。另一些人则将目光转向另一端,进行宏观上的数量扩增——即将更多的电脑集合到一起,并进行协同运算,以此来实现并线操作,这与量子计算机思路有着异曲同工之妙。并线操作就好比将一件任务拆分成若干小份,将一个人按顺序操作需要1000小时才能完成的任务变成1000个人同时操作1小时就能完成,这就是「云计算」的基础。但所有的集体活动,都需要解决如何管理,分配和协调的问题。很多时候,人数的提升反而带来的是利用率和效率的下降。常见如公司管理问题,像拖延、病假、沟通不顺等,反应到计算机上就产生了并线计算的分配、负载均衡、热备冗余等机器与网络技术发展融合的问题。并且随着规模的不断扩大,运维与管理的成本以及处理难度也随之呈现指数级上升。而针对这个层面问题的解决方案这时候又出现了两个分支。一方面,从分布式计算和并行计算发展而来的云计算网络,在功能性和复杂度上,与他们在几十年前的原型相比都有了质的改变。如果中小企业希望持有如此复杂的功能,往往不能够负担其所需要的成本和维持所需的消耗。将之委托给专业的公司统一管理才是比较合理的选择。就如同人将钱存在银行,由银行协调各种款项的流通运转。人们向云公司购买的是「算力」服务,由云公司统一协调运转数据之间的运作。另一方面,依托于大量的数据基础和近年来AI行业的热潮,「云构架」也可以借助训练新的AI模型来改善自身的管理模式,从而提升自己在算力方面的水平。但当算法水平发展到一定程度后,现有的芯片设计并不能很好契合以卷积网络、张量运算为主的部分算法模式。无论是CPU还是GPU,对目前的很多人工智能算法来说,其内部有很多逻辑单元无法直接使用,或者必须要编写相应的算法对其进行转化才能参与更上层的运算,例如一些GPU会搭载ASIC来辅助推理运算。