中文 英语

可编程开销值得的成本吗?

我们支付系统可编程吗?这取决于你问谁。

受欢迎程度

可编程性引发大多数半导体产品的增长,但实际上它要花多少钱?这代价值得吗?

答案是更复杂的比一个简单的效率公式。它可以随应用程序中,成熟的技术在一个特定的市场,在更大的系统。什么被认为是重要的为另一个设计可能是非常不同的。

在他2021年的DAC主旨,比尔磨磨蹭蹭的,快和Nvidia研究部高级副总裁,首席科学家一些处理器相比,他的公司已经开发了人工智能的定义的加速器。“抓取和解码的开销,所有的开销编程,可编程的引擎,是10%到20%——足够小,没有获得专门的加速器。你得到最好的20%的性能和失去的所有优势和灵活性得到通过可编程引擎,”他说。

图1:比尔玩弄DAC 2021主题。来源:半导体工程

图1:比尔玩弄DAC 2021主题。来源:半导体工程

后来在他的谈话中他打破了下来到一个更加详细的说明。“如果你正在做一个half-precision浮点乘法/添加(HFMA),这是我们从沃尔特开始,你的能量约1.5焦耳每操作,和你的开销是30焦耳(见图2)。你有一个20 x开销。你花20倍能源总署比你的工程部门。但是如果你开始均摊(使用更复杂的指令),你只有5 x点积指令,20% half-precision矩阵乘积累(HMMA),和16%的整数相乘积累(IMMA)。在这一点上,编程的优点是如此之大,没有必要让一个专门的加速器。你更好的建立一个通用的可编程引擎,像GPU,有一些指令你加速。”

图2:能源开销各种指令。来源:英伟达

图2:能源开销各种指令。来源:英伟达

和许多人不,当然,它也不是反映了数十亿美元的风险资本流入AI加速器。

“如果你专注于一个很小的块处理器,ALU,和你想创建一个可编程性成本,不给我们一个完整的画面,”拉德·克洛伊说Expedera首席科学家。“我们需要缩小一点,看看执行工作负载分布在不同的块,如何执行块同步,通信是如何发生的操作数,以及聚合的结果。然后进一步缩小,在系统层面,如何和多核之间的数据传输发生数据传输发生DDR或全局内存和来回。”

许多处理器体系结构是由软件上运行它们。“不久以前,人们设计硬件和软件不知道穿上它,”Simon Davidmann说的首席执行官治之软件。“今天,人们试图找出最好的硬件来运行应用程序最有效。发生了什么是软件驱动硬件的功能。产品需要更好的软件,这是更有效,这是驱动硬件架构。”

处理器设计的发展。说:“硬件的范式改变了Anoop萨哈,市场开发经理西门子EDA。“过去,硬件是非常通用的,和你有一个ISA层之上。坐在上面的软件。有一个非常干净的分割软件和硬件之间的边界,以及他们如何相互作用。现在你在做什么是硬化的某些部分处理器和观察的影响。需要硬件/软件合作设计,因为不再是一个简单的ISA层的软件。”

理解开销意味着我们不得不开始通过查看工作负载。“这是关键的第一步,创建一个硬件架构,”Lee说Flanagin CBO世界语技术。“工作负载在人工智能中描述的抽象模型,有很多不同类型的模型在人工智能应用程序。这些模型被用来推动人工智能芯片架构。例如,ResNet-50(残余网络)是一个卷积神经网络驱动的需要稠密矩阵计算的图像分类。推荐系统ML,然而,需要一个架构,支持跨大型稀疏矩阵模型在深的记忆系统。”

简单地说,我们已经进入了专门处理架构的时代。“人工智能是要求超过摩尔定律可以交付,”蒂姆•Kogel表示主要应用工程师Synopsys对此。“唯一的出路是创新的计算机体系结构裁剪计算的硬件资源,存储,和沟通目标的人工智能应用程序的特定需求。我们看到同样的趋势在其他领域,处理和通信需求超过通用计算的进化,比如在数据中心或5 g基站。在数据中心中,一种新的基础设施和数据处理任务的处理单元出现了。这些都是管家和通信任务的优化,否则消耗CPU周期的很大一部分。同时,极端的低功耗物联网设备的硬件为软件能力和计算效率最大化减少开销。”

Pierre-Xavier托马斯,集团的技术和战略营销总监节奏指出,一个类似的趋势。“当你做计算机视觉,它比如果你语音合成不同的或其他类型的ML不同类型的数据集。计算机视觉需要一定量的数据吞吐量。其他应用程序可能有较少的数据或需要不同的吞吐量。尽管他们可能也有类似的类型的操作的层,人们看着层分化。它需要几种类型的处理能力。运动和变化的数据量的数据层层后,你需要移动数据非常有效。必须平衡所需的延迟。”

这是一个问题,如何优化为特定任务你想要一个处理器。“你主要投资在构建“一招鲜吃遍天”,“迈克尔·弗兰克说的和系统架构师Arteris IP。”的方式来处理这个问题是一个组合的通用处理器,turing的处理器,和工作负荷优化加速器的组合。数据流驱动性能。但是当你扔一千核问题,如何管理或编排他们有效吗?”

周围兴奋的一部分RISC-V涉及到的收益可以通过定制一组特定任务的处理器,同时保持相同级别的可编程性。“产生优化处理器,我们从一个基线,然后开始探索各种组合的扩展,“说Zdeněk Přikryl,首席技术官Codasip。“我们可以看看这些将影响区域的设计,性能,内存占用,等。在那之后,自定义指令可以看着,当你这样做可以是巨大的。这些收益可能的循环计数,或在减少代码大小,减少面积,取指令周期的数量需要执行。”

对未来的规划
人工智能复杂这一问题。“定义得到越多,就越容易锁下来,“说曼纽尔嗯,硅营销主管赛灵思公司。“但这限制了灵活性你能做什么在未来。AI和毫升是一个区域的发展如此迅速,它实际上是难以锁定任何的算法,基本内核和操作,或计算函数所需的支持。你还定义带宽,小心不超过设计东西。如果你不需要所有的吞吐量能够移动,然后可能会有一些过度供应。但是提供的灵活性,总是如此。如果你不需要这种灵活性,只使用一个ASSP或建立一个ASIC。锁定所有这些东西,就永远不会改变。”

人工智能应用程序通常是由权力边缘胜过一切。“顾客想要运行越来越多的人工智能,但他们需要更有效地运行它,”Paul Karazuba说Expedera营销副总裁。“尤其如此,当你离开数据中心,并向边缘节点,在边缘节点可以被定义为从一个聪明的灯泡一直到一辆车。需要专门的人工智能加速度,因为有一个需要功率效率,效率和需要的性能。只是运行相同的引擎还不够强大。你会看到很多不同的体系结构的芯片,主要是因为它们可以比其他人更有效。”

内存的成本
而获取指令是一个成本的考虑,它可能是微小而移动数据的成本。“改善内存访问是最大的一个直接降低整体系统级功耗架构创新,“西门子萨哈说。“这是因为一个芯片外DRAM访问消耗近1000倍的力量比32位浮点乘法操作。”

事实上,内存访问的成本是导致新架构。“行业正在朝着数据流体系结构”,Expedera的克洛伊说。“原因是能够实现可伸缩性和系统级性能。如果你只考虑权力本身,SRAM访问权力是25倍乘数整数乘法所需的力量。和DDR访问力量距存储器访问另一个200倍的力量。有一个巨大的一部分执行需要占的力量。”

这是导致思考的方式计算和内存相连。“领域特定记忆的概念正在探索的空间计算域,”马特•霍斯耐尔(paul Horsnell)表示,高级工程师主要研究手臂的研究。“作为一个例子,需求方提供的分布式记忆,常常直接管理软件,可以更适合专业应用的带宽需求和访问模式比传统的共享内存系统。为了桥与固定功能asic的效率差距,这些处理器通常提供某种形式的提供直接支持特定的专业化的内存访问模式(如N-buffering, fifo,线缓冲区,压缩,等等)编制的一个至关重要的方面在这些系统中,在设计和挑战,是确定合适的粒度数据访问,可以最小化通信和同步开销而同时最大化并发性。”

首席执行官阿伦•萨林(Arun Iyengar把人工智能,提供了一个例子。“cpu和gpu意义的传统编程工作量,但最优与加速器为机器学习推理建造的。通过实现一个以内存架构的分布式处理元素,每一个与当地低延迟记忆和通过高速互连连接,我们看到一个6 x改善功耗/乘积累在我们16纳米设备相对于其他7纳米解决方案”。

软件成本
当你有可编程硬件,你需要软件,总是需要一个编译器。与人工智能这变得越来越困难,因为它不是一个简单的映射过程。此外,编译器之间可以产生巨大的影响总体性能和开销。

“我们看最紧张的网络,这些提供给编译器,看看它是如何做的,”尼克倪说,人工智能产品营销主管、软件和Xilinx的生态系统。”措施,我们用来确定有效的编译器——他们的运营效率。供应商说他们可以达到一定数量的TeraOps当你一切都忙。如果你的编译器生成执行效率只有20%,有可能有提升空间,或者是你的硬件架构过时了。这最有可能是一个你从未见过的新模型结构。旧技术的应用可能会导致糟糕的内存访问模式。你看到这个MLPerf和MLCommon,在相同的CPU或GPU改善随着时间的推移。的供应商正在改善的工具和编译器更好的优化和映射到特定的架构。”

工具是必要的一部分。“答案在于指导和自动化构建工具集人工智能工作负载的迁移与无限的《盗梦空间》在云中数值精度和计算资源,在推理中部署约束计算设备,”史蒂夫说罗迪,产品营销副总裁的机器学习小组。“对于嵌入式开发人员映射pre-trained量化模型到目标硬件,一系列的优化工具是专门的一个特定的目标要求。优化数据流,压缩模型权重,结合运营商节省带宽,等等。”

我们的目标是提高利用率。“人工智能推理的核心标准,人们经常看到利用率数据30%左右,”克洛伊说。“这是由编译器完成优化后的30%。这些是标准的基准像ResNet,已经存在了约六年,编译器优化他们疯了。然而,即使是在那之后,如果你真的看基准,利用通常是30%左右。通过设计深深管线式架构没有任何停滞,而整个体系结构是确定的,我们能够实现在大多数人工智能工作负载利用率70%至90%。”

其他人认为相似的好处。“人们已经意识到有一些共同的部分算法,特别是在机器学习,你在哪里运行矢量矩阵乘法,你可以建立一个有用的广义加速器为多个算法,“说Arteris弗兰克。“如果没有可预测的数据流,你有系统,有多个不同的应用程序,你不能想想处理或计算的通用。你还必须考虑数据流是如何将是通用的。”

涉及到系统级控制。“效率的控制从一个任务到另一个,“节奏的托马斯说。“你不想浪费太多的周期安排下一个任务。有效使用datapath公司的能力是很重要的,这样您就可以达到所需的延迟在电力和能源是有用的。控制和调度任务在不同的专门的硬件是非常重要的。对于某些应用程序,这可能不太重要,因为你可能有一个完全面向datapath公司的工作流,在计算机视觉等。但是对于其他应用程序,如沟通,你需要做很多信号处理。与此同时,你看着你的通信特点,和你有控制代码,以确定你需要什么样的信号处理算法实现。那么你需要控制代码,。”

这可以得到复杂。“假设你有大型系统的加速器,你无法预测,加速器将做好准备的时候应该是准备好了,”弗兰克说。“总有抖动和松弛。为了完全自动化,有编译器知道数据流,像OpenMP,任务依赖关系的概念。和运行时系统管理。所以静态调度工作的一组有限的算法。但如果你真的想让它发光,你需要动态,至少某些动态。”

有不同的方法可以提供可编程性。“在我们的架构中,我们有数据包穿过处理器,”克洛伊说。“这些数据包包含数据和函数,需要进行数据。这是一个不同类型的可编程性比你会发现在一个CPU或GPU,因为它们是通用的执行。但问题是,考虑到灵活性和利用的水平,之间有一个权衡的可编程性客户愿意支付的成本,可编程性的权力以及区域?”

至少大多数解决方案提供一定程度的可编程性。“很明显,可编程性是关键为了跟上毫升,神经网络,等等,”托马斯说。“软件的一部分,它正变得越来越重要。总有设计的硬件功能。但在一般情况下,人们更加注重目标功能。它们是如何被使用,因为有一个成本与死区?会有漏电的力量。有很多的注意力指向原始引擎需要的类型,如果这可编程引擎足够有效的权力。它必须是我今天已经强大到足以运行应用程序,但也能够处理那些进来几个月或几年。”

结论
可编程引擎并不那么有效,但这是一个成本,行业一直愿意承担四十年来,它不会改变。每一个设计的目标是尽可能地减少开销,同时最大化的灵活性。可接受的开销是定义为最终用例和力量的结合,延迟性能,区、代码大小等。

效率必须从系统的角度来看,因为它是伟大的优化问题的一小部分,这一努力可以通过系统的其他部分被淹没。与人工智能系统,也有未来,让我们看一看。没人知道究竟需要在12或18个月,但是现在你设计的芯片必须做好准备,这意味着你必须接受额外的开销。



留下一个回复


(注意:这个名字会显示公开)

Baidu