人工智能正在影响几乎所有可以想象的应用领域,但它越来越多地从数据中心data center转移到边缘edge,在那里需要比过去更快地处理大量数据。
这要求在更接近数据源的地方大幅提高性能,但仍然只能使用非常少的功耗,并且价格便宜。虽然训练将继续在云中进行,但长距离移动大量数据的成本很高,所以边缘AI计算的价值很大。本地处理的数据越多,成本就越低,获得结果的时间就越快。
实现这些好处并不容易,需要更深入地了解正在处理的数据类型,这在过去五年中只在大型数据中心中考虑,谷歌、特斯拉、Meta 等公司为这个考虑的特定需求设计定制芯片。
在边缘,才刚刚开始关注AI需求并定义满足这些需求的必要功能。
在边缘添加功能以满足其他潜在AI市场是很诱人的,但这通常会导致面积、功耗和复杂性增加,从而损害芯片主要应用的性能。对于边缘计算,需要严苛地看待所有功能,以判断它们是否真的需要出现在芯片中。
每个新功能都会影响 PPA,因此保持对目标市场和场景的关注是首要考虑的事情。
在边缘处理的最大好处是低延迟。当某一天必须实时(或快速)需要AI计算做出决定时,边缘AI计算真的会大放异彩。
尽管边缘和AI都有很大的前景,但是组合起来的应用场景和现在的主流有很大差异,在设计过程中有更多的Tradeoffs。需要考虑芯片的供电方式、热限制、是否需要支持训练或推理、精度要求、芯片部署的环境以及支持的数字格式。例如:
1、支持更多的功能集意味着增加面积和功耗,并在不使用功能时增加门控功能的复杂性。由于数据移动会影响性能并消耗大量功耗。
2、设计人员需要充分了解需要移动多少数据,以开发能够最大限度地减少边缘数据移动的架构。
做出正确的选择
不同的应用场景将会有不同的Tradeoffs,需要围绕传递给边缘人工智能处理器的数据的数量和类型做出一系列决策。
芯片是只接收推理数据,还是包括模型更新?芯片是否需要根据看到的特定数据进行训练或微调?该处理器还与哪些其他芯片和系统通信,频率如何?芯片是否会长时间处于非活动状态,在此期间进入深度power-down模式,还是大部分时间都处于开启状态?这些问题的答案将推动对计算引擎架构、片上SRAM存储以及是否使用外部DRAM(以及类型和容量)的决策。
人工智能处理一般只在发生某些事件发生时进行推理,两个最重要的技术是动态电压和频率调节 ( dynamic voltage and frequency scaling (DVFS) ) 和 low-leakage library 。DVFS 在需要时提供高性能,然后在不需要时降低电源电压和工作频率。low-leakage library,特别是嵌入式SRAM,需要占据很大比例的系统功耗。这两者是相互作用的。DVFS受限于其电源电压降低的水平。这几乎总是由SRAM工作的最小电压决定的,或者在待机状态下,SRAM仍将保留数据但不读取或写入的最小电压(称为Vmin)。由于功耗与电压的平方成正比,因此将Vmin从0.7V降低到0.5V将使SRAM功率减半。
另一个问题是,人工智能是一项快速变化的领域,因此除了在功耗、性能和面积/成本之间取得适当的Tradeoff外,还需要在设计中内置灵活性。
一方面,早已存在像CPU这样通用的东西,它为你提供了最大的编程灵活性,但可能具有最大的面积和最差的能效。另一方面,也存在有固定功能的硬件加速器,它们具有最佳的面积和功耗组合,但几乎没有设计后调整的灵活性。如果在设计流片后规格或工作负载要求发生变化,则在不进行重新流片的情况下,几乎没有办法修改。
从灵活性到效率,从CPU到GPU,再到DSP、NPU,最后是ASIC。实际的选择也取决于市场的成熟度和要求,对应的场景是否需要考虑灵活性,考虑什么维度的灵活性?这是一个问题?
自动驾驶和手机终端发展速度很快,一直在增加新的需求,因此使用NPU或NPU+DSP是灵活性、性能和能源效率的最佳组合。
工艺技术也是一个重要的因素,可以进行功耗、性能、面积/成本 (PPA/C) 的权衡。
获得更好的PPA的最简单方法是通过使用最先进的工艺节点。但是有很多问题。它通常非常昂贵,并且缺乏嵌入式非易失性存储器,而这通常是物联网设备的必备。