人工智能/机器学习设计中的权衡会影响到从器件老化到产品可靠性的所有因素,但是其影响往往是不可预测的。

 

芯片制造商们正在努力赋予智能设备更高数量级的性能和能效,但是,为了实现这些目标,他们也在进行各种权衡,这些权衡因素将产生深远、持久甚至在某些情况下不可预知的影响。

 

芯片制造商之所以开展这一活动,大部分原因是因为需要将智能推向边缘设备,需要在边缘处处理、分类和管理来自于集成到几乎所有电子设备中的各类传感器生成的大量数据。现实中有成百上千亿台连接性设备,许多设备配备了实时收集数据的多个传感器。将所有这些数据传输到云端并从云端往返是不切实际、无法实现的,主要原因在于没有足够的带宽。即便带宽足够,也需要多到无法接受的能量和成本。

 

因此,芯片制造商已经下决心要提高边缘设备的效率和性能,利用多种已知和未知的新方法,来加快和降低AI/ML/DL系统的功耗。其中包括:

 

精度降低:人工智能芯片的计算结果是数学分布,而不是固定的数字取值。数学分布越松散,结果越不准确,进行这种处理所需的能量也就越少。


更精炼的数据:减少需要处理的数据量可以显著提高性能和能源效率。 这就要求能够窄化在源头收集到的数据,或者能够快速筛选数据以确定哪些有价值哪些没有价值,有时需要使用多个处理过程来精炼这些数据。


数据驱动的体系架构:与传统的处理器设计不同,人工智能系统既依赖于处理单元和内存之间更快的数据流,也依赖于缩短数据传输的距离。


定制解决方案:可以对算法进行稀疏和量化,并且可以将加速器调整为特 定的算法,以相同或者更少的功率将性能提高100倍或更多。

 

这些方法中的每一个都是有效的,但是所有这些方法都会带来相关的成本。 在某些情况下,人们甚至还没有办法完全了解这种成本,因为技术行业刚刚开始接受AI,刚刚了解在哪里和如何使用AI。不过,这并没有阻止各个公司到处部署AI。目前,围绕着从近端到远端,以何种形式的人工智能武装汽车、消费电子产品、医疗设备、自有服务器和外部部署的服务器等边缘设备,达到何种目标的智能形式,掀起了一场非常狂热的活动。

 

准确性


对于AI系统来说,其准确性大致等同于工具中的抽象级别。例如,通过高级别的综合,整个系统可以在一个非常高的级别上设计和修改,速度比在寄存器传输级别上进行要快得多。不过,这只是很粗略得给出了AI芯片工作方式的大致情况。

 

在AI系统中,对于某些目标而言,那些较高级别的抽象可能就足够了,比如在安防系统中检测物体的移动。 通常,它会与能提供更高精度的系统相结合使用,但是会降低速度或者消耗更高的功率。

 

不过,这里并没有一个固定的公式,而且结果并不总是你所期望的。来自加州大学圣地亚哥分校的研究人员发现,通过将高精度结果与低精度结果混合在一起来寻找新的材料时,他们实际上甚至将精度最高的系统的精度提高了30%至40%。

 

加州大学圣地亚哥分校(UC San Diego)纳米工程教授Shyue Ping Ong说:“有时候,获取大量数据的方法非常便宜,而获取非常准确的数据的方法非常昂贵。 您可以将这两个数据源合并使用。您可以使用非常大的数据集-即不是非常准确的那组数据,以之证明机器学习模型的底层体系结构,然后再使用较小同时也更准确的数据进行工作,以作出更准确的预测。在我们的研究中,我们不会按顺序次第使用这两种数据,而是将两个数据流合并使用。”

 

Ong指出,这种方法不仅仅只限于两个数据流。它可以包括五种或五种以上不同类型的数据。理论上没有限制,而且数据流越多越好。

 

这里面临的挑战是如何理解和量化不同的精度水平,以及了解使用不同精度水平的数据的系统将如何匹配这些不同的数据。因此,虽然它可能适用于材料工程,但也许无法在医疗设备或汽车中使用,因为在这两种场景中,使用两种不同精度级别的数据可能会产生错误的结果

 
这是一个悬而未决的问题”ARM公司研究员Rob Aitken说。 “如果您有两个不同给定精度的系统,它们的整体精度取决于这两种方法彼此之间的独立程度以及您将两者结合使用的机制。在图像识别中可以很好地理解这一点,但是对于同时拥有雷达数据和相机数据的汽车应用来说,难度就更大了。雷达和相机彼此独立,但其准确性取决于外部因素。因此,如果雷达说它是猫,而相机说什么也没有,如果现在是天黑状态,那么您可以认为雷达的判断是对的。但是,如果正在下雨,那么相机可能是对的。”

 

这可以通过部署冗余的摄像机和计算单元来解决,但是这显然需要更多的处理能力,并增加更多的重量,这反过来又缩短了电动汽车一次充电下的行驶里程,并增加了车辆的总体成本。艾特肯说:“因此,现在您必须决定这种冗余的部署是否值得,还是使用在大多数情况下足以满足您的目的的经验法则。”

 

这只是正在考虑的许多方法之一。赛灵思 AI和软件产品营销总监Nick Ni表示:“正在研究许多旋钮,包括较低精度的推理(二元推理、三元推理)和稀疏性,以显着减少计算和内存占用量。通过实现基于稀疏矢量引擎的DSA,我们已经证明了使用稀疏模型运行FPGA的的速度提高了10倍以上。但是,一些稀疏模型在CPU、GPU和AI芯片上的运行状况很差(它们通常会变慢),因为其中许多模型被设计为运行传统的“密集” AI模型。

 

更好的数据,但不一定更多


另一种方法是首先提高正在处理的数据的质量。通常,这是通过更大的数据集完成的。一般规则是,数据越多越好,但是人们越来越认识到这种观点不一定正确。通过仅仅收集那些正确的数据,或通过智能地消除无用的数据,可以大大提高一个或多个系统的效率和性能。这是一种对待稀疏性的不同方式,需要在数据源头或其处理的多个阶段中使用智能。

 

Rambus研究员,杰出发明家Steven Woo表示:“到目前为止,提高电源效率的最佳方法不是计算。如果您可以排除掉不需要的信息,效率肯定会有很大的提升。稀疏性是人们正在进行大量研究的一个领域。想一想,您拥有一个训练有素的神经网络模型,你可以这样理解,神经网络由节点、神经元及其之间的连接组成,神经网络实际上执行的是一种乘法累加的数学运算。在乘法运算中相乘的正是所谓的权重,它是与两个神经元之间的连接相关的一个数字。而且,如果该连接的权重非常非常小或接近零,则可以将其舍入为零,在这种情况下,乘以值为零的权重值相当于不执行任何操作。因此,人们首先通过训练网络来引入稀疏性,然后他们查看权重值,然后说:“好吧,如果它们足够接近零,我也许可以认为它就是零。这就是降低系统中的工作量的另一种方式。”

 

这里的挑战在于理解这种假设会带来什么后果。对于涉及到关键任务或安全关键型应用的复杂系统,这种假设可能会导致严重问题。有时它可能会被忽略,但是在有多个系统相互交互的情况下,其影响不可预知。而且,由于多个系统预期寿命不同,随着时间的流逝,未知性也会增加。

 

体系架构


在人工智能系统提高性能和降低功耗的过程中,能够调整的最大要素是硬件设计,以充分利用算法,并尽可能少得浪费时钟周期。 在软件方面,这涉及到将所有可能的东西组合成一个单一的乘法累加函数。 问题在于,每个功能及其度量非常不同,了解跨不同学科的因果关系是一个尚未完全解决的挑战

 

Synopsys的AI和中央工程副总裁Arun Venkatachar表示:“软件是所有这一切要素中的一个重要组成部分,您在软件中能做哪些事情对您在硬件中可以做哪些事情有很大的影响。很多时候您不需要部署那么多的硬件节点,利用软件就可以帮助获得所需的性能和分区。这需要成为架构的一部分,并且需要在功耗上做出取舍。”

 

与大多数大型系统公司一样,IBM也是自下而上从头开始设计定制系统。 IBM Research混合云副总裁Mukesh Khare说:“我们的目标是将算法转换为架构和电路。我们一直专注于深度学习工作负载。对我们而言,深度学习是AI工作负载中最关键的一部分,需要了解数学以及如何基于此来开发体系架构。我们一直致力于开发硬件和软件的构建模块,这样,编写代码的开发人员就不必担心硬件。我们已经开发了一套通用的构建基块和工具。”

 

Khare表示,IBM的目标是通过专注于芯片架构,异构集成和封装技术(将内存放置到越来越靠近AI加速器的地方),在10年内将计算效率提高1000倍。该公司还计划使用3nm技术部署模拟AI,将权重和小的MAC存储在内存中。  

           

设计界已经在过去的将近十年间讨论过许多这类问题,IBM并不是个孤例。 但是,新技术的推出并不总是按照原计划进行的。有几十家致力于专用AI加速器芯片的初创公司,其中一些公司由于算法的不断变化而一再推迟产品的发布。这使得可编程加速器成为人们关注的焦点,它们在本质上比优化的ASIC要慢。 但是,速度的损失需要与某些设备的较长寿命相权衡,也要与加速器因为不能适应寿命周期内算法的变化导致性能的持续下降相权衡。

 

Xilinx的Ni说:“大多数现代先进的AI模型仍是为大规模数据中心部署而设计的,要在保持实时性能的同时适应功率/热量受限的边缘设备是一项挑战。此外,模型的研究工作还远远没有完成,一直在不断创新。因此,硬件对最新模型的适应性对于实现基于AI的节能产品至关重要。 CPU,GPU和AI芯片基本上都是固定的硬件,您需要依靠软件进行优化,而FPGA允许您使用针对最新模型设计的新DSA(领域特定架构)完全重新配置硬件。实际上,我们发现定期更新DSA很重要,最好是每季度更新一次,以保持最佳性能和能效。 

 

其他人也同意这个看法。OneSpin Solutions首席执行官Raik Brinkmann表示:“可重新配置的硬件平台无需重建即可实现升级和差异化所需的灵活性和定制化。异构计算环境包括软件可编程引擎、加速器和可编程逻辑,对于实现平台可重新配置以及满足低延迟、低功耗、高性能和大容量需求至关重要。这些复杂的系统开发成本很高,因此,在保持定制的同时能够延长硬件寿命的任何事情都是必不可少的。”


 
定制和通用性


尽管如此,这在很大程度上还是取决于特定的应用和目标市场,尤其是当涉及到电池供电的设备时。

 

Cadence公司解决方案营销事业部高级主管Frank Schirrmeister表示:“这取决于你的处境。某些事情你不想每分钟都改变,但是虚拟优化是真实存在的需求。 人们可以按照需要的规模进行工作负载优化,这可能是数据中心中的超大规模计算,他们将需要调整这些系统以适应他们的工作负载。”

 

这种定制可能会涉及多个芯片,这些芯片要么在同一封装内,要么使用某些高速互连方案连接。 Schirrmeister说:“因此,您实际上不仅仅在芯片级进行设计,还需要在非常复杂的级别上交付芯片组。您现在要通过组装的方式进行设计,该组装使用3D-IC技术根据性能进行组装。这是在一个高度复杂的层次上发生的。”


 
图1:特定领域的AI系统。 资料来源:Cadence

 

许多这些设备因为构建和定制成本很高,而且由于需求变化非常之快,以至于包含这些芯片的系统投入市场时可能就已经过时了,所以它们将可重新配置作为设计的一部分特性。对于某些消费产品而言,上市时间可能长达两年,而汽车或医疗设备也许长达五年,在这么长的开发周期中,算法可能已经更改了几十次了。

 

这里的挑战在于如何平衡定制,定制可以在相同或更少的功率下将性能提高几个数量级,以应对算法的快速变化。所以,解决方案似乎是在架构中恰当得组合可编程性和灵活性。

 

Flex Logix首席执行官Geoff Tate表示:“如果您在寻找诸如医学成像之类的产品,则需要高吞吐量,高精度和低功耗。 首先,您需要一个比GPU更好的架构。 您需要更精细的粒度。 我们没有使用大型矩阵乘法器,而是使用模块化的一维Tensor处理器,因此您可以通过不同的方式将它们组合起来以进行不同的卷积和矩阵应用。 这需要可编程的互连。 最后一件需要指出的是,我们的计算非常接近内存,以最大程度地减少延迟和功耗。”

 

内存访问在这里也起着关键作用。 “所有计算都发生在SRAM中,我们使用DRAM存取权重。 对于拥有6200万个int8类型权重的YOLOv3来说,你需要把这些权重都从芯片中读取下来,这样DRAM的性能就大打折扣了。权重被加载到SRAM芯片上,当它们全部被加载而且之前的计算完成后,我们切换到使用新的权重来进行新的计算。当我们在执行计算任务时,可以把权重的读取放在后台执行。”

 

有时这些权重被重复使用,并且每一层都有一组不同的权重。这背后的主要思想是,并不是所有的东西都会被一直使用,也不是所有的东西都必须存储在同一个芯片上。

 

Arm一直在以通用性为出发点,从不同的角度看待效率问题。“有某些类别的神经网络具有相似的结构,” Aitken说。 “因此,即使有一百万个应用,您也只有少数几个不同的结构。随着时间的推移,这些结构之间的差异可能会更大,未来我们希望神经网络的结构可以有合理的种类数量。随着时间的推移,您将了解得更多,也更能够预测它们的演变。”

 

其中一个演变发生在数据移动上。数据移动次数越少,移动距离越短,得到结果的速度就越快,消耗的功率也越低。

 

Rambus的Woo表示:“如今,数据移动确实占了很大一部分功耗预算。采用垂直堆叠可以缓解这种情况。 不过,这种方式也存在自己的挑战。散热管理问题、可制造性问题以及试图将来自不同制造商的硅片合并在一起的问题,这些都是必须解决的事情,如果能够解决这些问题,垂直堆叠的好处是显而易见的。


 
图2:内存选择如何影响功率。 资料来源:Rambus

 

散热也有其他方面的影响。电路被利用得越多,热量越密集,散热难度就越大,电路的老化就越快。尽量降低电路处理密度可以延长整个系统的寿命。

 

Woo说:“如果我们不需要太多的能量让数据在更长的距离上移动,就能使数据移动本身的功耗变得更小,这确实有助于长期的可靠性,因为温度波动的梯度不会很大,设备上也不会出现太多与高功率或高压相关的磨损。但是,内存和处理器彼此很接近的话,内存不太喜欢热,而处理器通常喜欢消耗更大的电量以获得更多的性能。”

 

不断上升的设计成本


这个难题的另一部分涉及到时间因素。 虽然人们一直在关注传统的冯·诺依曼设计在更长的使用寿命上的可靠性,但人们对AI系统的可靠性研究的太少了。 这不仅是因为这项技术正在应用于新的应用而有待验证,还因为人工智能系统是不透明的,它们会随着时间的推移而以一种尚未被完全理解的方式演变。

 

西门子EDA市场开发经理Anoop Saha表示:“挑战在于了解要测量哪些东西,如何测量它们以及如何做才能确保您拥有一个优化的系统。您可以测试访问数据所需的时间以及处理数据的速度,但这与传统的半导体设计有很大不同。 针对一个模型优化的体系结构不一定适用于另一个模型。您可能有非常不同的数据类型,并且单元性能不如系统性能重要。”

 

这会影响如何划分AI设计中的分区以及划分成哪些分区。Saha说:“在进行软硬件协同设计时,您需要了解系统的哪一部分与哪一部分配套。一些公司为此使用了eFPGA。 有些正在对硬件和软件进行分区。 您需要能够在较高的抽象层次上理解这一点,并围绕数据、管道和微体系结构进行大量设计探索。这是一个由多个系统构成的大系统,如果您看一下汽车的架构就会发现,其SoC架构取决于车辆的整体架构和整体系统性能。但是这里还有另一个问题。芯片设计通常需要两年时间,而当您使用该体系结构并优化性能时,您可能不得不返工并再次更新设计。”

 

Saha指出,随着设计在物理上被分割成多芯片封装,这一决定变得更加复杂。

 

人工智能的局限


使用AI技术也有一些实际限制。 在一种情景或市场中行之有效的方法在另一种情景或市场中可能行不通,即使它已被证明行之有效,也可能仍存在一些限制。随着芯片行业开始基于大量数据类型和数据源在各种设计和制造流程中利用AI技术,这一点就更加显而易见了。Onto Innovation检验产品管理总监Damon Tsai表示:“我们在当前的检验解决方案中采用了一些AI技术,我们称之为AI ADT(抗衍射技术)。 因此,我们可以通过提高功率来提升灵敏度,同时我们也可以减少随之而来的噪声。因此AI ADT可以帮助我们提高缺陷的分类正确率。如果没有AI图像技术,我们将使用一个非常简单的属性来告知:“这是一个划痕,这是颗粒。”对于缺陷纯度,通常我们只能达到60%左右,这意味着另外40%仍然需要人工审查或借助SEM(扫描电子显微镜)审查。这需要很多工时。与传统的图像比较技术相比,使用AI可以实现超过85%的缺陷纯度和准确性,在某些情况下可以达到95%。这意味着客户可以减少操作人员的数量和SEM审查时间,并提高生产率。但是,如果我们看不到明场或暗场的缺陷,人工智能将无能为力。”

 

在其他情况下,结果可能好得令人惊讶,即使我们对获得这么好的结果的方法及过程并没有准确的理解。

 

Lam Research计算产品副总裁David Fried说:“我们正在做的一个最有趣的事情是,我们在试图理解AI处理完成后产生的一些非原位计量数据与机器学习/人工智能算法的结果之间的高级相关性。也许没有理由认为传感器数据会关联非原位计量数据或者成为其良好的替代品。但是,通过机器学习和人工智能,我们可以找到隐藏的信号。 我们可能会确定给定腔室中的某些不应该对过程结果有任何影响的传感器实际上正在测量最终结果。我们正在学习如何解释来自不同传感器的复杂信号,这样我们就可以执行实时的现场过程控制,尽管从理论上我们没有一个封闭的表达式来解释为什么我们会这样做。”

 

结论


芯片行业仍处于了解AI如何工作以及如何最好地将其应用于特定应用和工作负载的早期阶段。 第一步是让AI发挥作用,并将其应用领域拓展到数据中心之外,然后提高系统的效率。

 

但是,目前尚不清楚的是这些系统如何与其他系统配合使用,各种节能方法的影响如何,以及在没有人参与的情况下,这些系统最终将如何与其他系统交互。 在某些情况下,AI的准确性出乎意料地得到了提高,而在另外一些情况下,结果充其量只能算是模糊不清。但是开弓没有回头箭,行业将不得不开始共享数据和结果,以了解在各处安装部署AI的好处和局限性。 这是一种完全不同的计算方法,各个公司需要以不同的方式进行交互,以推动该技术向前发展而不会遇到重大障碍。