西班牙戏剧性地战胜瑞典,锁定女足世界杯决赛席位
24
2025-09-24
麻省理工学院和英伟达的研究人员创造了两种技术来增强稀疏张量处理,提高人工智能机器学习模型的性能和能源效率。这些技术优化了零值处理,HighLight适应各种稀疏模式,tailor和Swiftiles通过“超额预订”最大化片上内存利用率。这些开发提供了显著的速度和能源使用改进,使更专业但更灵活的硬件加速器成为可能。
诸如“HighLight”和“tailor and Swiftiles”之类的免费方法可以提高高要求机器学习任务的性能。
麻省理工学院和英伟达的研究人员开发了两种加速稀疏张量处理的技术,稀疏张量是一种用于高性能计算任务的数据结构。这种互补技术可以显著提高系统的性能和能效,比如驱动生成式人工智能的大规模机器学习模型。
张量是机器学习模型使用的数据结构。这两种新方法都试图有效地利用张量中的稀疏性——零值。当处理这些张量时,可以跳过零,节省计算和内存。例如,任何东西乘以0都是0,所以它可以跳过这个操作。它可以压缩张量(零不需要存储),这样更大的部分可以存储在片上存储器中。
然而,利用稀疏性有几个挑战。在一个大张量中找到非零值不是一件容易的事。现有的方法通常通过强制稀疏模式来简化搜索,从而限制非零值的位置,但这限制了可以有效处理的稀疏张量的多样性。
麻省理工学院和英伟达的研究人员开发了两种互补的技术,可以极大地提高图形分析或生成式人工智能等高性能计算应用程序的速度和性能。这两种新方法都寻求有效地利用张量中的稀疏性——零值。来源:麻省理工学院何塞-路易斯·奥利瓦雷斯
另一个挑战是,在张量的不同区域中,非零值的数量可以变化。这使得很难确定在内存中存储不同区域需要多少空间。为了确保该区域合适,通常会分配比所需更多的空间,从而导致存储缓冲区未得到充分利用。这增加了片外内存流量,从而增加了能耗。
麻省理工学院和英伟达的研究人员设计了两种解决方案来解决这些问题。首先,他们开发了一种技术,使硬件能够有效地为更广泛的稀疏模式找到非零值。
对于另一种解决方案,他们创建了一种方法,可以处理数据不适合内存的情况,从而增加存储缓冲区的利用率并减少片外内存流量。
这两种方法都提高了性能,降低了硬件加速器的能量需求,这些硬件加速器专门用于加速稀疏张量的处理。
“通常,当你使用更专业或特定领域的硬件加速器时,你会失去从CPU等更通用的处理器中获得的灵活性。这两项工作的突出之处在于,我们表明,在专业化和高效的同时,你仍然可以保持灵活性和适应性,”麻省理工学院电子工程与计算机科学系(EECS)副教授、电子研究实验室(RLE)成员Vivienne Sze说,她也是这两项进展论文的共同资深作者。
她的共同作者包括主要作者Yannan Nellie Wu博士和电子工程与计算机科学研究生Zi Yu Xue;Joel Emer是麻省理工学院计算机科学与电气工程实践教授,也是计算机科学与人工智能实验室(CSAIL)的成员,他也是NVIDIA的其他资深作者。这两篇论文都将在IEEE/ACM微架构国际研讨会上发表。
由于各种原因,张量中会出现稀疏性。例如,研究人员有时会通过用零替换张量中的一些值来“修剪”机器学习模型中不必要的部分,从而产生稀疏性。对于不同的模型,稀疏度(零的百分比)和零的位置可能会有所不同。
为了更容易地在具有数十亿个单独值的模型中找到剩余的非零值,研究人员经常限制非零值的位置,使它们落入特定的模式。然而,每个硬件加速器通常被设计为支持一种特定的稀疏性模式,这限制了它的灵活性。
相比之下,麻省理工学院研究人员设计的硬件加速器,称为HighLight,可以处理各种各样的稀疏模式,并且在运行没有任何零值的模型时仍然表现良好。
他们使用一种称为“分层结构稀疏”的技术来有效地表示由几个简单稀疏模式组成的各种稀疏模式。这种方法将张量中的值分成更小的块,其中每个块都有自己简单的稀疏模式(可能在具有四个值的块中有两个零和两个非零)。
然后,他们将这些块组合成一个层次结构,在这个层次结构中,每个块的集合也有自己简单的稀疏模式(在一个有四个块的级别中,可能有一个零块和三个非零块)。他们继续将块组合成更大的级别,但每一步的模式都很简单。
这种简单性使HighLight能够更有效地查找和跳过零,因此它可以充分利用减少多余计算的机会。平均而言,他们的加速器设计的能量延迟产品(一种与能源效率相关的指标)比其他方法好六倍。
Wu解释说:“最后,HighLight加速器能够有效地加速密集模型,因为它不会引入很多开销,同时它能够利用基于分层结构稀疏性的不同数量的零值的工作负载。”
在未来,她和她的合作者希望将分层结构稀疏性应用于更多类型的机器学习模型和模型中不同类型的张量。
研究人员还可以利用稀疏性更有效地移动和处理计算机芯片上的数据。
由于张量通常比存储在芯片上的内存缓冲区中的张量要大,因此芯片一次只能获取和处理张量的一部分。这些块被称为瓦片。
为了最大限度地利用该缓冲区,并限制芯片必须访问片外存储器的次数,这通常支配着能量消耗,限制了处理速度,研究人员寻求使用能容纳缓冲区的最大磁片。
但是在稀疏张量中,许多数据值为零,因此缓冲区可以容纳比基于其容量的预期更大的块。零值不需要存储。
然而,零值的数量可以在张量的不同区域中变化,因此它们也可以在每个贴图中变化。这使得很难确定适合缓冲区的tile大小。因此,现有的方法通常保守地假设没有零,并最终选择较小的tile,这导致缓冲区中的空白空间被浪费。
为了解决这种不确定性,研究人员建议使用“超额预订”来允许他们增加瓷砖大小,以及如果瓷砖不适合缓冲,可以容忍的方法。
它的工作原理类似于航空公司超售航班机票。如果所有乘客都按时到达,航空公司必须赔偿那些被赶下飞机的人。但通常情况下,并不是所有的乘客都会出现。
在稀疏张量中,可以选择一个块的大小,这样通常块将有足够的零,大多数仍然适合缓冲区。但有时,一个贴图的非零值会超过它能容纳的范围。在这种情况下,这些数据被从缓冲区中取出。
研究人员让硬件只重新获取碰撞的数据,而不需要再次抓取和处理整个贴图。他们修改缓冲区的“尾部”来处理这个问题,因此这种技术的名称为裁缝。
然后,他们还创造了一种方法来查找瓷砖的大小,以利用超额预订。这种名为Swiftiles的方法可以迅速估算出理想的瓷砖大小,这样用户设定的特定比例的瓷砖就会被超额预订。(“Tailors”和“Swiftiles”这两个名字是对泰勒·斯威夫特(Taylor Swift)的致敬,她最近的Eras巡演门票预售码被超额预定。)
Swiftiles减少了硬件检查张量以确定理想瓷砖大小的次数,节省了计算。tailor和Swiftiles的结合将速度提高了一倍多,而所需的能量仅为现有硬件加速器的一半,而现有硬件加速器无法处理超售。
“Swiftiles允许我们估算这些tiles需要多大,而不需要多次迭代来优化估算。这只在支持超额预订的情况下才有效。即使你偏离了相当大的一部分,由于非零的分布方式,你仍然可以获得相当大的加速,”Xue说。
在未来,研究人员希望将超售的想法应用到计算机体系结构的其他方面,并努力改进估计最优超售水平的过程。
引用:
“重点:高效和灵活的DNN加速与分层结构稀疏”,由yanannan Nellie Wu, Po-An Tsai, Saurav Muralidharan, Angshuman Parashar, Vivienne Sze和Joel S. Emer, 2023年10月1日,计算机科学>硬件架构。arXiv: 2305.12718
“裁缝:通过超额预订缓冲容量加速稀疏张量代数”,作者:薛子宇,Yannan Nellie Wu, Joel S. Emer和Vivienne Sze, 2023年9月29日,计算机科学>硬件架构。arXiv: 2310.00192
这项研究部分由麻省理工学院人工智能硬件项目资助。分享推特reddit电子邮件分享
空间
健康
生物学
空间
物理
物理
空间
健康
发表评论
暂时没有评论,来抢沙发吧~