System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于利用三角输入掩码对数据进行掩码和归一化的硬件加速的系统和方法技术方案_技高网

用于利用三角输入掩码对数据进行掩码和归一化的硬件加速的系统和方法技术方案

技术编号:43753391 阅读:4 留言:0更新日期:2024-12-20 13:10
一种现场可编程门阵列包括连接逻辑块的可配置互连结构,该逻辑块实现电路以:接收包括组织成行和列的数据值的输入数据,每行具有N个数据值;根据掩码和行的索引i选择输入数据的行的R[i]个未掩码的数据值;根据掩码和另一行的索引选择输入数据的另一行的N‑R[i]个未掩码的数据值;将该行的R[i]个未掩码的数据值和该另一行的N‑R[i]个数据值合并成N个数据值的组合的数据向量;以及基于组合的数据向量的R[i]个未掩码的数据值计算R[i]个归一化的值并基于组合的数据向量的N‑R[i]个数据值计算N‑R[i]个归一化的值以生成N个归一化的数据值。

【技术实现步骤摘要】
【国外来华专利技术】


技术介绍

1、现场可编程门阵列(fpga)是包括逻辑块阵列和这些逻辑块之间的可重配置互连的硬件设备。在(或以前的)产品中,这些逻辑块可以被称为自适应逻辑模块(alm),而在产品中,这些逻辑块可以被称为可配置逻辑块(clb)。每个逻辑块可以包括可编程逻辑,诸如用于执行从输入到输出的可配置逻辑映射的一个或多个查找表(lut)、用于添加输入值的加法器、用于临时保持数据的寄存器等。利用配置文件对fpga进行编程或配置设置互连(或互连“结构”)以将不同的逻辑块接线在一起,从而配置fpga以执行由配置文件(有时被称为“位文件”)指定的特定功能。

2、与由通用处理器执行的软件实现方式相比,fpga带来了在低层级(例如电路层级)处实现计算的更高性能和更低功耗的益处。这类似于使用专用集成电路(asic)的益处,专用集成电路(asic)诸如为专用协处理器(诸如图形处理单元(gpu)或神经加速器),它们分别用于加速特定于计算机图形和人工神经网络的操作。然而,asic的设计和制造是具有高前期固定成本的漫长而昂贵的过程。

3、因此,fpga的一些应用包括例如为最终可能在asic中实现的硬件设计进行原型设计以及在(例如,由于低数量或高度专门化的计算)设计和制造asic可能不合理的情况下对计算的硬件加速。另外,fpga还提供了对底层硬件(在“现场”中)的重新配置的灵活性,而不会像在asic的情况下那样被锁定到固定硬件配置中,其中逻辑在制造时直接在电路的布局中实现,并且因此几乎没有可重新配置性。一些云计算提供商提供对包括连接的fpga的硬件实例(例如,服务器)的访问,从而允许用户自定义fpga以执行对计算操作的硬件加速。

4、正是关于这些和其他考虑因素,已经做出了示例。另外,尽管已经讨论了相对具体的问题,但是应该理解,示例不应该仅限于解决背景中确定的具体问题。


技术实现思路

1、本
技术实现思路
被提供从而以简化形式介绍下面在具体实施方式部分中进一步描述的一系列概念。本
技术实现思路
不旨在识别所要求保护的主题的关键特征或基本特征,其也不旨在帮助确定所要求保护的主题的范围。

2、本技术的方面涉及对数据掩码(mask)的硬件加速和对掩码的数据计算softmax函数,其是机器学习的领域中常见的操作。作为一个示例,经常应用于自然语言处理的机器学习模型中的自回归变换器模型将掩码应用于输入数据,以便确保变换器模型学习仅基于词元序列中较早出现的词元而不是基于该序列中较晚出现的词元对该序列中的给定词元进行预测。将掩码应用于数据以通过隐藏(例如,归零)在训练过程期间不应该考虑的值来强制执行此自回归约束。考虑布置在n×n矩阵或阵列中的输入数据值的情况,其中每行对应于从左到右排序的不同词元序列,则掩码可能会遮挡通常位于每行的右侧的高数据值。

3、softmax函数(也称为softargmax或归一化(normalized)指数函数)经常用作神经网络或其他机器学习模型的最后一个激活函数,以将由机器学习模型生成的输出(例如分数)归一化到受约束的范围(例如,从在(-∞,+∞)的范围内的不受约束的输出到在[0,1]的范围内的受约束的或归一化的输出)。对于k个元素的汇集或向量z中的第i个元素zi,softmax函数σ的一个典型表达式被表示为:

4、

5、更详细地,应用于数据以强制执行自回归约束的掩码当应用于n×n输入数据矩阵时经常采取上三角掩码或块上三角掩码的形式,其中较早的行(例如,靠近输入数据矩阵的顶部)具有较多被屏蔽(masked out)的数据值,而较晚的行(例如,靠近输入数据矩阵的底部)具有较少被屏蔽的数据值(或没有被屏蔽的数据值)。这通常可以被表示为其中第k行(行从0到n-1编号)具有k+1个未掩码的数据值,后面是n-k-1个被掩码屏蔽的数据值。在这样的上三角掩码中,输入数据矩阵的大约一半的值被屏蔽。

6、因此,本技术的一些方面涉及将来自两个不同行的未掩码的数据值组合成长度为n(或长度不大于n或小于或等于n)的单个行,并对组合的未掩码的数据值的行的个体数据值执行操作(例如,应用函数),而不对掩码的数据值执行计算(因为这些掩码的数据值与期望的最终输出无关)。在屏蔽输入数据值的大约一半的三角掩码的情况下,这具有几乎使硬件加速器的计算吞吐量翻倍的效果,因为计算资源不会浪费在对对计算的最终结果没有影响的掩码的数据值执行计算上。

7、本技术的一些方面还涉及在硬件加速器内实现掩码的行为,从而避免与将掩码从主机传输到硬件加速器相关联的带宽和延时成本。另外,避免与将掩码应用于输入数据相关联的计算还减少对硬件加速器的计算负荷。

8、因此,根据本技术的各个方面的对数据掩码和数据的归一化的硬件加速改进包括此类操作的机器学习模型训练过程的性能。性能的改进涉及计算时间(例如,处理器时间)的减少、数据存储和带宽(例如,存储器使用和通过通信总线传输的数据)、能耗的减少,并且在一些示例中,减少在现场可编程门阵列(fpga)上的某些实现方式中以及在诸如专用集成电路(asic)和其他专用集成电路的其他硬件实现方式中使用的物理硬件的量。

9、一个或多个方面的细节在下面的附图和描述中阐述。从阅读以下详细描述和审阅相关联的附图,其他特征和优点将显而易见。应理解,以下详细描述仅是解释性的,并不限制所要求保护的本专利技术。

本文档来自技高网...

【技术保护点】

1.一种用于加速现场可编程门阵列(FPGA)中的计算的方法,所述现场可编程门阵列包括连接多个逻辑块的可配置互连结构,所述方法包括:

2.根据权利要求1所述的方法,其中所述掩码是三角掩码。

3.根据权利要求1所述的方法,还包括:

4.根据权利要求1所述的方法,其中所述掩码归一化电路被配置为将SoftMax函数应用于所述组合的数据向量的所述第一子向量和所述组合的数据向量的所述第二子向量中的所述未掩码的数据值,以基于所述组合的数据向量的最大未掩码的数据值计算N个归一化的值的所述组合的归一化的数据向量。

5.根据权利要求1所述的方法,还包括:

6.根据权利要求1所述的方法,其中所述掩码归一化电路经由所述FPGA的设备存储器的第一端口读取所述输入数据的所述行的所述R[i]个未掩码的数据值,同时经由所述FPGA的所述设备存储器的第二端口读取所述输入数据的所述另一行的所述N-R[i]个未掩码的数据值。

7.根据权利要求1所述的方法,其中合并所述行的所述R[i]个未掩码的数据值和所述另一行的所述N-R[i]个数据值由所述掩码归一化电路的按位或电路执行。

8.根据权利要求1所述的方法,还包括训练机器学习模型,包括:

9.一种计算机存储介质,所述计算机存储介质存储配置文件,所述配置文件指定包括可配置互连结构和多个逻辑块的现场可编程门阵列(FPGA)的配置,其中基于所述配置文件而被配置的FPGA包括由所述可配置互连结构连接的、实现掩码归一化电路的逻辑块,所述掩码归一化电路被配置为:

10.根据权利要求9所述的计算机存储介质,其中所述掩码是三角掩码。

11.根据权利要求9所述的计算机存储介质,其中所述配置文件还指定所述FPGA的所述可配置互连结构和所述逻辑块的所述配置以用虚拟行填充所述输入数据,其中所述虚拟行的所述数据值中的所有数据值都被掩码,并且其中所述虚拟行具有负索引。

12.根据权利要求9所述的计算机存储介质,其中所述配置文件还指定所述FPGA的所述可配置互连结构和所述逻辑块的所述配置以实现指数电路,所述指数电路被配置为将SoftMax函数应用于所述组合的数据向量的所述第一子向量和所述组合的数据向量的所述第二子向量中的所述未掩码的数据值,以基于所述组合的数据向量的最大未掩码的数据值计算N个归一化的值的所述组合的归一化的数据向量。

13.根据权利要求9所述的计算机存储介质,其中所述配置文件还指定所述FPGA的所述可配置互连结构和所述逻辑块的所述配置以实现行拆分和填充电路,所述行拆分和填充电路被配置为:

14.根据权利要求9所述的计算机存储介质,其中所述配置文件还指定所述FPGA的所述可配置互连结构和所述逻辑块的所述配置以将所述第一局部掩码块连接到所述FPGA的设备存储器的第一端口并将所述第二局部掩码块连接到所述FPGA的所述设备存储器的第二端口。

15.一种现场可编程门阵列(FPGA),包括连接多个逻辑块的可配置互连结构,所述可配置互连结构和所述逻辑块被配置为实现掩码归一化电路,所述掩码归一化电路被配置为:

...

【技术特征摘要】
【国外来华专利技术】

1.一种用于加速现场可编程门阵列(fpga)中的计算的方法,所述现场可编程门阵列包括连接多个逻辑块的可配置互连结构,所述方法包括:

2.根据权利要求1所述的方法,其中所述掩码是三角掩码。

3.根据权利要求1所述的方法,还包括:

4.根据权利要求1所述的方法,其中所述掩码归一化电路被配置为将softmax函数应用于所述组合的数据向量的所述第一子向量和所述组合的数据向量的所述第二子向量中的所述未掩码的数据值,以基于所述组合的数据向量的最大未掩码的数据值计算n个归一化的值的所述组合的归一化的数据向量。

5.根据权利要求1所述的方法,还包括:

6.根据权利要求1所述的方法,其中所述掩码归一化电路经由所述fpga的设备存储器的第一端口读取所述输入数据的所述行的所述r[i]个未掩码的数据值,同时经由所述fpga的所述设备存储器的第二端口读取所述输入数据的所述另一行的所述n-r[i]个未掩码的数据值。

7.根据权利要求1所述的方法,其中合并所述行的所述r[i]个未掩码的数据值和所述另一行的所述n-r[i]个数据值由所述掩码归一化电路的按位或电路执行。

8.根据权利要求1所述的方法,还包括训练机器学习模型,包括:

9.一种计算机存储介质,所述计算机存储介质存储配置文件,所述配置文件指定包括可配置互连结构和多个逻辑块的现场可编程门阵列(fpga)的配置,其中基于所述配置文件而被配置的fpga包括由所述可配置互连结构连接的、实现掩码归一化电路的逻辑块,所...

【专利技术属性】
技术研发人员:奚锦文
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1