中文 英语

定义和改进人工智能性能

在讨论人工智能时,性能意味着什么?许多人都在研究这个问题,但还没有形成统一的思路。

受欢迎程度

许多公司正在开发用于训练和推理的人工智能芯片。尽管获得所需的功能很重要,但许多解决方案都是根据其性能特征来判断的。性能可以用不同的方法来衡量,比如每秒或每瓦的推理数。这些数字取决于很多因素,而不仅仅是硬件架构。软件工具链的优化比通用处理器的优化要复杂得多。

一些早期的设备并没有达到他们的目标。“在与评估AI Inference解决方案的客户交谈时,我们一直听到实际结果往往无法接近最初的说法,”Geoff Tate说Flex Logix

部分原因是技术的不成熟。“想想从最初的设计概念到硅,需要花多少时间,”特朗普高级产品总监安德鲁·格兰特(Andrew Grant)说想象力的技术.“这可能需要两到三年。他们都在赌博,并试图找出市场的轨迹。两年后或五年后,他们还会执行正确的工作负载吗?否则,它们将被遗弃在路边,因为其他东西会取代它们,它们的市场就没有了。”

人工智能市场是复杂的,有很多目标。谷歌公司人工智能产品营销经理罗恩•洛曼表示:“每个人都在试图弄清楚什么是足够好的Synopsys对此.“这取决于用例。有些用例需要更高的准确性——例如在汽车领域,与一些简单的对象识别相比。有些人关心每毫焦或每瓦的性能,或每秒的推论。这一切都归结于用例和他们试图完成的事情。”

目前的实现距离理想还很遥远。“据估计,一个具有人脑整体计算能力的处理器核心网络将无法满足至少4个数量级的功耗,”罗兰德·扬克(Roland Jancke)说弗劳恩霍夫IIS自适应系统工程部。“这种效率似乎与非常小但灵活的计算节点有关,这些节点具有许多可配置的互连。”

电力是一个大问题。“芯片尺寸通常特别大,数千个核心都在高级节点上争取最大的性能和数据吞吐量,”Richard McPartland说Moortec.“功率需求通常非常大,通常在数百瓦范围内,因此热管理和功率分配是关键问题。由于这些大型模具中注入了如此多的功率,关键电路的温度监测是必须的。通常情况下,我们看到在大型AI芯片上实现了数十个温度传感器,以监控多个核心集群。这些实现了热负载平衡,其中工作负载的分配不仅基于可用的内核,还基于实时温度。精确的温度传感器可以实现计算元件的细颗粒节流,并有助于将计算节流保持在最低限度。”

精度是一种新的优化准则。Synopsys的首席工程师Tim Kogel表示:“主要指标是性能,即在一定时间内我可以处理多少推断或训练。”“第二是电力消耗这适用于嵌入式设备和数据中心在美国,电力已成为主要的成本衡量标准。还有精确度——结果的质量——推理的好坏。我可以通过减少量化来优化实现,但这要付出准确性损失的代价。”

准确性可能会有所下降。Tensilica IP at的产品管理、营销和业务开发高级总监拉扎尔•路易斯(Lazaar Louis)表示:“他们希望推理的准确性与经过训练的网络和算法非常接近。节奏.“它是用浮点数训练的,他们有精度期望。研究和示例已经表明,您可以通过整数处理实现非常好的推理,并且不需要浮点数。一些公司说他们愿意容忍百分之几的错误,因为这对他们的应用程序来说是可以接受的,他们想要最好的性能。我们拥有能够满足这些要求的软件栈是非常重要的。”

这就是事情开始变得复杂的地方。Synopsys的科格尔补充道:“这就是美妙之处,也是挑战所在。“所有部分都很重要,因为它们是相互关联的。提出漂亮的硬件架构,却没有一个好的ML编译器来利用硬件中的所有功能,这是没有意义的。当谈到算法时,包括数据的质量和网络本身的架构,这是数据科学家的领域。当从半导体或正在构建推理芯片的系统的角度来看时,它是关于映射这些算法并运行它们的。工具链和硬件共同负责结果的质量和指标的满足程度。另外,对于不同的应用程序,指标的组合是不同的。毫升可应用于许多领域,它们对性能、功率和精度都有不同的要求。很难想出一个适合所有人的方法。”

三个层次的优化
决策和优化可以在三个离散的层面上进行——算法开发、映射和硬件架构。

“不同类型的社交媒体的发展都有上升趋势网络Synopsys的洛曼说。”卷积神经网络(CNN)正在变得更加成熟,我认为架构已经考虑了如何针对这些进行优化。最近出现了一些新的网络,比如循环神经网络(RNN),它的数学方法略有不同,你可以进行一些基于时间的理解。您正在返回之前的值。然后是峰值神经网络,这是完全不同的。”

网络与推理的最终性能之间的分离很大。Cadence的Louis说:“数据科学家知道一些参数。“这取决于他们所选择的架构。他们知道基于这种架构对一帧进行推断需要多少计算。他们可以相应地构建网络,但一旦你训练了它,只有那时你才能知道网络的实际性能——所以你在网络上的每秒帧数只有在你完成工作之后才会知道——但他们确实有一些想法。”

很难说这些结果有多接近。“需要多少操作和需要多少数据是算法的一个属性,”Kogel说。“但是在映射步骤中会发生很多事情,比如选择正确的量化和数据类型,在编译器中进行的优化,比如层融合、流水线、展开、所有处理循环的平铺——这些最终决定了最终的性能、准确性和性能。在某种程度上,过早做出这些假设甚至是危险的。”

很少有人了解这些权衡的全部含义。Flex Logix的Tate表示:“这也是早期设备未能达到预期的另一个原因。“在很多情况下,硬件架构已经完成,然后软件团队就被雇佣了。正确的方法是共同开发硬件和软件,以达到最佳效果。”

科格尔指出,其中一些权衡可能会产生意想不到的后果。他说:“就数据量和处理量而言,有一种趋势是让神经网络更小,但这可能在以后的实现中产生相反的影响。”“例如,当你减少数据时,你也减少了计算强度,所以实现变得更加依赖于内存带宽,这成为限制因素。这通常是一个比仅仅提供更多处理能力更难解决的问题。或者使用对权重的压缩来减少数据,但使有效使用的数据量更难以预测。它不再是规则的,这可能会对设计的某些方面产生不利影响。这是一个多因素的问题,很多事情必须一起考虑。”

硬件架构
获得正确的硬件架构并不容易。Tate说:“许多AI推理架构的特征使得建模性能变得困难。打个比方,看看多核处理器。考虑到八核处理器的运行速度并不比单核处理器快8倍。它的运行速度有多快取决于缓存命中率、总线访问争用的解决方案和共享内存访问争用,这些都很难建模。”

当谈论AI架构时,大多数人会想到乘法累加器(MAC)数组。“有了MAC,就有了围绕它的架构——特别是苹果的架构记忆洛曼说。“我们看到了专门记忆的大幅增长。有些人需要高度密集的内存,有些人需要非常低泄漏的内存。我们被要求为这些类型的实现和他们试图完成的事情定制内存。”

多端口存储器在人工智能领域非常流行。Lowman继续说道:“这意味着当你在做数学运算时,你可以并行读取和写入。“这样可以减少一半的电力。有时他们想优化位元密度,也许是因为他们需要更多的系数。其他人想要优化泄漏,这是一个不同的权衡。在密度和泄漏,或者尺寸、泄漏和性能之间总是有一个权衡。”

其他人也看到了类似的权衡。“我看到了对伪双端口存储器的需求,”at的IP董事总经理法扎德•扎里法尔(Farzad Zarrinfar)表示Mentor是西门子旗下的企业.“传统上,你可以通过单端口进行读写,也可以通过双端口进行读写。两个端口是一个端口读,一个端口写。现在我看到了伪双端口的需求,它可以利用六个晶体管静态存储器而不是八晶体管电池,这是什么双和双端口使用。你在时钟的两边操作。在一边你可以读,在另一边你可以写。当你谈论的是数千块瓷砖时,大小就很重要了。”

制造这些芯片也会带来惊喜。Moortec公司的McPartland说:“在高级工艺节点上组合大型模具,立即让人想到工艺变化的挑战。“在模具上嵌入工艺探测器,通常每个AI核心集群都有一个,可以轻松独立地监测模具与模具之间和模具内的工艺变化。这些检测器可用于有效地实施电压缩放方案,并在每个模具的基础上优化电源电压或节省设备速度。”

如上所述,这些架构正在追逐一个移动的目标。“这个领域有很多研究,你可以期待一定的演变,”Kogel说。“预测未来并不容易,这增加了你需要提供一定程度的灵活性的挑战。那么问题来了,‘多少钱?“一个FPGA是很灵活的,但是DSP可能会更优化。即使给定一个算法或目标应用程序,在架构和适当的灵活性水平以及功耗/性能指标方面,什么是最合适的。”

“灵活性是有价值的,”路易斯说。“重要的是要在创造一个在我们所有客户今天所做的所有工作负载中都表现良好的引擎之间取得适当的平衡,同时也要有一定的灵活性,以允许新的创新得到利用。”

编译器
位于算法开发人员和硬件架构师之间的是编译器。这比传统isa的编译器要复杂得多。“首先是从浮点数到定点的转换,”Louis说。“量化是相当容易理解的。然后我们来看看优化。例如,可能有重复的或不必要的神经元或连接,我们可以开始删除它们。我们可以在可能的地方开始合并层,以减少相同应用程序或网络所需的计算量,并实现相似的精度和性能。此外,在某些应用程序中,客户不希望修改网络,因为它可能是安全关键型应用程序,例如汽车应用程序。他们不想修改网络,因为他们不知道哪些极端情况可能不再表现良好。”

当团队努力做到这一点时,软件可能会增加开发成本。洛曼补充道:“公司在软件开发上的投入往往是硬件开发的两倍。“你可以在云中建模,并通过Onyx、Caffe2或TensorFlow将其输出,但随后你需要一个位映射工具来量化它,压缩它,确保它适合一个非常紧凑的资源。这很贵。在这个过程中,你可能会失去一些准确性,你也不知道为什么。它可能需要几次迭代才能做好。”

基准
该行业正在为人工智能制定基准。这总是会导致各种各样的观点。“基准没有错,但它们应该与计划的工作量相关,”Tate说。“像ResNet-50这样使用224 x 224图像的基准测试是不相关的。客户拥有具有百万像素图像的传感器,精度来自更高的分辨率。一个非常小的图像不会对内存子系统造成压力,而且可能导致对各种芯片的相对优点得出错误的结论。”

基准测试创造了一种共同货币。Imagination的Grant说道:“你不希望看到的是我们在图像领域所看到的情况,即某一特定基准成为主导,因为每个人都听说过它,你会发现许多公司都在设计基于该基准的最佳分数。”“这扭曲了他们的行为。你需要的是一篮子相关的基准,随着时间的推移不断更新,行业可以理解和使用,但不会扭曲情况。我们不应该试图通过回顾后视镜来推动人工智能的发展,优化几年前很重要的东西。”

这种观点不乏支持。“基准测试很有用,但不足以解决各种可能的架构实现,”弗劳恩霍夫研究所(Fraunhofer Institute)混合信号自动化小组经理本杰明·普劳奇(Benjamin Prautsch)说。“基准测试不能指望涵盖这种多样性。目前已经有研究在不同的问题类别中比较不同的人工智能结构。标准拓扑由此而来,但这更多的是对架构决策的帮助,还不能解决算法和架构之间的协同设计问题。”

已经进行了多次创建基准测试套件的尝试。Louis说:“像MLPerf这样的新努力,将行业中的所有参与者都纳入其中,并为各种应用程序定义了正确的基准。这包括训练和推断。它正在努力维持这种共同的竞争环境。人们并没有试图利用基准。相反,他们将其定义为广泛的,适用于现实世界的例子。MLPerf是五个基准测试的集合,五个网络组合在一起代表现实世界的一部分。它最大限度地降低了人们仅为基准而不是真实应用程序而做某事的能力。”

如今,这个行业的发展速度可能太快了,在硬件层面上,其中许多都没有意义。洛曼说:“人们没有足够的时间来优化基准。”“他们会被抛在后面。他们把它作为缩小决策范围的通用工具。例如,当你着眼于移动领域时,这些加速器可能是5到20个TOPs。他们说我们未来需要超过20个排名,但你又问,‘一部手机能做到吗?电力预算是多少?’他们可能有一些推断/S或一般的指标,但直到他们运行应用程序,他们才真正知道。”

相关故事和资源
人工智能知识中心
关于人工智能的特别报告、头条新闻、视频、白皮书和博客
使用fpga进行AI
标准fpga在人工智能方面有多好,基于fpga的专用设备与它们有何不同?
监测人工智能芯片的热量
如何在非常大的设备上降低利润率并提高性能。
硬件如何影响AI数据
传感器和其他设备的退化会以难以识别的方式扭曲人工智能数据。
为什么AI芯片中的数据如此难以保护
人工智能系统旨在高速传输数据,而不是限制访问。这就产生了安全风险。



2的评论

基因莫舍 说:

非常棒的文章,布莱恩·贝利先生。谢谢!!

Amirali Amirsoleimani 说:

很有见地!

留下回复


(注:此名称将公开显示)

Baidu