中文 英语

能力限制了机器学习的部署

部署受到耗电量的限制,在情况好转之前可能会变得更糟。

受欢迎程度

机器学习任务所消耗的总电量是惊人的。直到几年前,我们还没有足够强大的计算机来运行许多算法,但GPU的重新用途给了这个行业所需的马力。

问题是GPU不太适合这个任务,消耗的大部分能量都是浪费。而机器学习已经提供了许多好处,更大的收益将来自将机器学习推向边缘。要做到这一点,就必须解决权力问题。

“你读到过数据中心如何消耗5%的能源,”Ron Lowman说,人工智能的产品营销经理Synopsys对此.“这一比例可能会超过20%,甚至高达40%。降低数据中心芯片组功耗或将其转移到边缘是一个非常重要的原因。”

学习是计算密集型的。“学习有两个部分,”迈克·芬戈夫说,他是高级合成技术专家Mentor是西门子旗下的企业.“首先,训练包括运行网络的前馈(推理引擎)部分。然后,误差的反向传播来调整权重,使用梯度下降算法,这需要大量的矩阵操作。”

对于公司来说,数据中心代表了一种新的、不断发展的商业模式。如今,它们都配备了cpu和gpu,有些还配备了一些fpga。但电力和足迹开始让他们重新考虑。随着大部分计算能力进入机器学习,定制芯片开始变得越来越重要。

“投资回报率是由两个轴组成的,”该公司业务和企业发展副总裁帕特里克•索海利说eSilicon.“一个是服务质量,它能让他们卖得更多,做得更多,收得更多,这取决于你是在卖广告,还是真的从服务中获得报酬。二是耗电量。这些东西占用了更多的空间,因为它们不是为该应用程序有效设计的。如果您使用的是cpu或gpu,而不是专用的asic,那么您可能需要构建一个额外的数据中心。我们做了一个粗略的计算,我们相信通过优化内存,每年仅在功耗方面就可以节省5000万到1亿美元。”

好消息是,有很多初创公司正在进入这个市场。Synopsys产品营销高级总监约翰内斯•斯塔尔(Johannes Stahl)表示:“当我看到如今的人工智能公司,特别是初创公司在做什么时,他们最大的担忧只是让一些硅进入这个世界。”“所以,他们主要是试图让架构正确,让软件堆栈运行,并运行一些算法来实现他们应该做的事情。下一步是提高能量。这是一个关键问题,因为这些设计具有大量的并行性,它们会消耗大量的能量。”

当然,芯片必须表现得足够好,才能在这个性能驱动的市场上竞争。Knowles公司负责技术战略的副总裁吉姆•斯蒂尔说:“如果性能不佳,第一批采用者就会放弃这项技术,不再继续使用。”“一旦你实现了这一点,功能和低功耗就会齐头并进。最终,低功耗将成为最重要的事情,但在技术发展的今天,它已经退居二线。这将适用于所有设备,即使是那些插电的设备。”

在边缘地带,动力更是至关重要。“推理所消耗的电量限制了它的潜在应用,”公司产品管理总监戴夫•珀斯利(Dave Pursley)说节奏.“对于这些应用,当我们谈论的时候PPA在美国,一切都与权力有关。您总是可以在性能上寻求折衷,但功率是最受限制的因素。甚至为了满足功率范围,我们也会权衡准确性等因素。”

驯服算法
像任何新技术一样,机器学习算法的变化速度也很高。

“算法正在改进,”Synopsys的洛曼说。“随着它们的改进,它们需要更强的处理能力。不断需要提高处理量。一个很好的例子是谷歌所做的研究,他们已经说过cnn有一些缺陷,有一些方法,使用更先进的算法来解决这个问题。但是必要的计算能力还不具备。我们需要不断提高数学水平,但同时也要提高计算能力。我们如何在提供低功耗、低成本解决方案的同时做到这一点?这就是为什么围绕人工智能的投资和开发出现复兴。这是历史上一个独特的时刻,非常令人兴奋。”

很多研究也在研究训练的数据集。诺尔斯公司的斯蒂尔说:“从另一个角度来看,它需要大量的数据。“造成巨大能量的原因是每个训练集都有大量的数据。我是智能数据的坚定支持者。这不仅是大数据,也是智能数据。有没有一种方法可以填充状态空间,用更少的数据或更有针对性的数据覆盖所需的区域?”

我们知道将云计算转移到边缘是不可能的。“如果你在TensorFlow或Caffe中使用全浮点数建模,如果你要实现一个非常深入的神经网络(NN),并在硬件上实现它,它可能会烧毁,”Cadence的珀斯利说。“诀窍在于找出给定应用的可接受精度,以满足所需的功率范围。这一切都与架构有关。如果你直接观察神经网络和它的实现方式,你会有各种专门的硬件并行运行。它也会以较高的采样率运行,但部分权衡是调整采样率。”

边缘计算需要不同的架构。“人们谈论边缘计算,它开始成为现实,”洛曼说。“但由于终端节点的设计非常困难,他们正在采用数据中心芯片组,并试图降低它们的功耗来满足这一需求。例如,在安全摄像头中进行推理并不容易,因为你必须压缩图,并且必须优化该图的计算。这是一个复杂的过程,需要从软件到硬件再到工具的大量设计协调。”

这种优势确实有一些优势。Synopsys的斯塔尔说:“在边缘上,你并不是试图解决所有的算法和图表可以做的所有事情。“相反,你要选择一个特定的子集进行优化。您仍然需要进行探索,以发现在要求您处理的图数量有限的情况下可能进行哪些优化,并且您可以修剪图以使其更有效。在云计算上,你需要完全通用。”

浮点运算在云和边缘上都是非常浪费的。斯蒂尔说:“研究表明,离散推理效果很好。”“这使得我们能够通过使用8位、4位,在某些情况下甚至是1位来对某些特征进行推理。我们发现8位是最佳选择。浮点数太过了,1位是一个很好的理想,但很难实现。”

垂直整合
功能通常与可编程性相权衡。“这在很大程度上是由于网络的逐层行为,”Mentor的Fingeroff说。“具体来说,在大多数情况下卷积神经网络时,后期层的权值存储需求显著增加,而早期层的特征图存储需求最大,后期层的特征图存储需求显著降低。此外,在后面的层中,准确实现网络所需的精度趋于降低。”


图1。网络每一层的需求。资料来源:西门子旗下的Mentor公司

cnn的这些相互竞争的存储和精度要求使得“一刀切”的硬件实现效率低下。Fingeroff补充道:“通用解决方案可以提供相对较高的性能和较小的面积,但这是通过‘平贴’算法和将特征映射数据来回转移到系统内存中来实现的,这大大增加了功耗。”“这些通用解决方案还牺牲了芯片上计算资源的充分利用,以实现可编程性。”

这为边缘提供者创建了一个二分法。他们或者可以扩大潜在的市场,但失去灵活性,或者专注于一个更具体的任务,使用更高性能的解决方案,但解决一个狭窄的市场。

斯蒂尔说:“每个硬币都有两面。“一方面,它最终能够做更多的用例,这是好事。但另一方面,你必须能够用你的框架来满足每一种需求。这不是万能的。例如,我们确保我们的dsp是tensorflow兼容的,这就形成了一个足够大的保护伞,可以考虑到机器学习人员所做的所有用例。因此,如果你希望将硬件平台开放给不同的用例,你将得到你从未想过的东西——一些非常有趣的用例——但你需要确保你迎合了ML人员习惯的通用框架。”

任务要求知识产权和工具。Lowman说:“在构建这些优化系统时,我们的地图工具对客户及其客户都具有极大的价值。”“人们知道如何做到这一点,但这确实需要软件和硬件方面的协调。当一家芯片公司制造芯片时,他们把它送到软件团队,然后他们把它送到他们的终端客户那里,在上面安装更多的软件——有很多团队,这使得这些解决方案的优化变得更加困难。这就是为什么你会看到垂直整合的公司可能具有优势。他们可以更容易地协调团队。”

eSilicon的Soheili说:“如果你想创造一个价值2亿美元的ASIC,你应该成为Super 7,而不是创业公司。”“他们有数据科学家,他们有大数据,他们有算法,他们有架构师,他们有业务逻辑,在一天结束的时候,他们是唯一能够为他们所面临的问题提出最有效解决方案的人。创业公司在外面,他们只是在猜测。通常,在他们提出的内容和需要的内容之间有一到两个程度的分离。其原因是架构的紧密耦合算法,这节省了功耗,并为他们提供了最紧密耦合的解决方案。”

灵活性增加了一些相互冲突的需求。Pursley说:“在汽车行业,我们看到了很多定制但灵活的处理器的例子,因为它们必须解决许多不同的应用。”“工作时间的长短决定了一定程度的灵活性。在现场部署时,很可能需要添加应用程序或对其进行升级。”

你要付出的代价有多大?Soheili说:“你必须在营销需求文档中做出决定。“我们是否在设备中加入可编程性,并提供一点未来的验证,以防出现更有效的新算法版本?为此,我可能不能使用2位处理,而必须使用4位处理。也许我应该加入一些浮点引擎,以防万一。或者,我是否对我将从这个特定的芯片中得到的改进感到满意,并使其尽可能优化,并接受六个月后我将做一个新芯片的事实?然后我就可以把从那时起出现的添加、更改和编辑结合起来。你必须看看ROI模型。一些公司正在更多地考虑运营成本和他们将获得的节省,他们相信有成千上万的人——数据科学家——在工作,并提出新的模型和压缩。”

反思学习
人们普遍认为浮点数用于推断是多余的,但是学习呢?学习能否转化为固定的点以及随之而来的巨大利益?

“当你开始学习时,我们发现你需要额外的精确度,”斯蒂尔说。“为了得到好的结果,人们确实使用了全浮点精度。我们有这么多数据,其中一些是噪声,一些不是针对具体情况的,但我们今天需要更高的精度,以便我们不会优化到错误的结果。将其推向边缘的方法是找到一种优化它的方法,这样我们就可以离散化学习方面,而我认为我们还没有做到这一点。”

有些用例可能不需要完整的浮点数。英特尔嵌入式、物联网和汽车业务高级营销总监Rhonda Dirvin表示:“当用例需要低空比训练执行,同时需要在CPU上运行其他工作负载时,我们正在接受边缘培训的灵活性。手臂.“我们还在增加一些功能,以提高培训的表现和效率。例如,bfloat16通过将数据类型匹配到可以有效使用它的应用程序,减少了ML训练所需的能量。如果推理也使用bfloat16数据类型执行,它还避免了对训练模型进行‘量化’的需要。”

对于其他应用程序,可能不需要这样做。Lowman说:“对于某些应用,12位可能就足够了。“如果你只是想读取车牌,或面部识别,或身份识别,我们可以用8-bit来完成。它可以以相当高的精度完成,这对于某些应用来说可能已经足够好了。这是一个足够好的问题。我们不确定最终需要什么。它还处于起步阶段,我们不确定“足够好”是什么意思。在此应用程序中,对抗性攻击可能会危及生命。对于神经网络的开发,它回到了训练数据。这有多好?”

结论
算法和架构都可能取得长足进步,但与数据中心相比,边缘的要求非常不同。今天,大部分的钱都在数据中心,因此它是研究的重点。希望数据中心的电力问题将成为一个足够大的问题,它将吸引更多的投资,允许边缘设计利用这些投资。

但所有这些仍处于开发周期的早期,到目前为止,要判断所有这些将如何发挥还为时过早。

有关的故事
机器学习驱动高水平合成臂
随着端点架构变得越来越复杂,EDA工具成为试验不同选项的关键工具。
机器学习推理移动设备
TinyML移动将高性能计算推向更小的设备。
用机器学习在芯片中寻找缺陷
更好的算法和更多的数据可以促进采用,尤其是在高级节点。
将人工智能推向主流
为什么数据清洗和社会问题可能会限制这项技术的采用速度和实用性。
机器学习知识中心
更多关于ML的头条新闻、白皮书、视频、博客和技术论文



3评论

凯文·卡梅隆 说:

是时候从RTL转向异步逻辑了。

迈克·弗兰克 说:

是时候开发可逆计算了!

彼得·j·康奈尔 说:

在这个令人兴奋的问题上,我不假装专业,所以我希望这不是愚蠢的或已经覆盖的。

并不是所有这些计算能力都需要实时,或者在边缘随时可用。

我们能否看到汽车间歇性地连接到外部计算肌肉(比如车库的家庭网络、经销商车间的服务器、气泵、充电站……)?

然后,自动驾驶汽车可以根据最近旅行记录的大量数据进行强大的训练,并与云协调,同时允许在边缘进行更简单和更少的计算。

留下回复


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

Baidu