使用矩阵乘法加速器(MMA)实施基本计算原语制造技术

技术编号:22334422 阅读:474 留言:0更新日期:2019-10-19 13:05
在一种用于在设备中执行基本计算原语的方法中,该设备包括处理器和矩阵乘法加速器(MMA)。该方法包括配置(200)设备中的流式传输引擎以从存储器流式传输用于基本计算原语的数据,配置(202)MMA以格式化数据,以及由设备执行(204)基本计算原语。

Using matrix multiplication accelerator (MMA) to implement basic computing primitives

【技术实现步骤摘要】
【国外来华专利技术】使用矩阵乘法加速器(MMA)实施基本计算原语
技术介绍
诸如语音识别、智能工业控制、对象检测和识别以及视觉等应用越来越多地迁移到嵌入式设备。在此类设备中可能需要硬件加速以支持在此类应用中使用的算法的计算需求。
技术实现思路
本文描述的示例涉及使用矩阵乘法加速器来实施基本计算原语。在一个方面,提供一种用于在设备中执行基本计算原语的方法,其中该设备包括处理器和矩阵乘法加速器(MMA)。该方法包括配置设备中的流式传输引擎以从存储器流式传输用于基本计算原语的数据,配置MMA以格式化数据,以及由设备执行基本计算原语。在一个方面,提供一种设备,该设备包括存储器、耦合到存储器的处理器以及耦合到处理器的矩阵乘法加速器(MMA),该MMA包括乘数缓冲器和第一被乘数缓冲器,其中该设备可操作以配置设备中的流式传输引擎以从存储器流式传输用于基本计算原语的数据,配置MMA以格式化数据并执行基本计算原语。附图说明图1描绘可配置成使用耦合到处理器的矩阵乘法加速器(MMA)来实施基本计算原语的示例设备。图2为用于在图1的设备中执行基本计算原语的方法的流程图。图3为示出图1的设备中的批量小矩阵矩阵乘法的实施方式的示例。图4为示出图1的设备中的大矩阵矩阵乘法的实施方式的示例。图5为示出图1的设备中的矩阵矩阵逐点乘法的实施方式的示例。图6为示出图1的设备中的矩阵矩阵加法的实施方式的示例。图7为示出图1的设备中的小向量矩阵乘法的实施方式的示例。图8为示出图1的设备中的小向量求和的实施方式的示例。图9为示出图1的设备中的仿射变换的实施方式的示例。图10和图11为示出图1的设备中的二维(2D)卷积的实施方式的示例。图12为示出图1的设备中的矩阵行置换的实施方式的示例。图13为示出图1的设备中的向量列置换的实施方式的示例。图14为示出滤波器大小和吞吐量之间的折衷的曲线图。具体实施方式为了一致性,附图中的相同元件由相同的附图标记表示。本文描述的示例提供使用矩阵乘法加速器(MMA)实施诸如语音识别、智能工业控制、对象检测和识别以及视觉的应用所使用的基本计算原语。基本计算原语包括例如在卷积神经网络(CNN)中使用的二维(2D)卷积、小矩阵矩阵乘法和大矩阵矩阵乘法、矩阵矩阵逐点乘法、矩阵矩阵加法、向量矩阵乘法、向量求和、仿射变换、快速傅里叶变换、离散余弦变换、卷积、相关、矩阵赋值、矩阵置换和矩阵变换。图1描绘示例设备100,该示例设备100可配置成使用耦合到处理器102的矩阵乘法加速器(MMA)104来实施基本计算原语,诸如本文先前提到的那些。MMA104包括执行矩阵乘法的功能。矩阵乘法为从两个矩阵产生矩阵的二进制操作。更具体地,如果乘数矩阵A为M×K矩阵并且被乘数矩阵B为K×N矩阵,则这两个矩阵的矩阵乘积为M×N矩阵C,其中A的行n上的m个元素与B的列K下的m个元素相乘,并求和以产生元素Cmn。MMA104包括足够的存储器以存储用于存储两个B矩阵的16位元素的两个32×32被乘数缓冲器144和用于存储两个C矩阵的16位元素的两个32×32结果缓冲器134。被乘数缓冲器144在本文可以被称为B矩阵缓冲器,并且结果缓冲器134在本文可以被称为C矩阵缓冲器。MMA104还包括存储器,以存储用于存储乘数矩阵A的行的16位元素的1×32乘数缓冲器138。乘数缓冲器138在本文可以被称为A矩阵缓冲器。如本文所述,在一些操作中,B矩阵缓冲器144被用作乒乓(pingpong)缓冲器,使得当另一缓冲器中的数据用于操作执行时,数据在后台加载到缓冲器中的一个中。类似地,C矩阵缓冲器134用作前台缓冲器和后台缓冲器,使得例如当另一缓冲器的内容从MMA104输出时,操作执行的结果存储在一个缓冲器。在每个周期上,MMA104执行单个指令,即加载、存储并执行指令,在本文称为LSE指令。如该指令的名称所暗示的,MMA104可以在单个周期中执行加载操作、存储操作和执行操作。通常,在周期中,将数据向量加载到A矩阵缓冲器138中,并且在存储在所选B矩阵缓冲器144中的B矩阵和A矩阵缓冲器138中的数据向量之间执行矩阵乘法操作。因此,计算A矩阵缓冲器138中的数据向量与所选B矩阵缓冲器144中的B矩阵的每列的矩阵乘积。矩阵乘法操作的结果为一行数据元素,该行数据元素存储在所选C矩阵缓冲器134中的C矩阵的行中。根据LSE指令的字段的内容,周期还可以将一行数据加载到不用于矩阵乘法的B矩阵缓冲器中,即后台B矩阵缓冲器,将来自C矩阵缓冲器的一行数据存储到外部存储器中,和/或在将结果存储在所选C矩阵缓冲器134中之前对矩阵乘积操作的结果执行指定操作。LSE指令的加载操作部分包括标识下列项的字段:要加载到A矩阵缓冲器138中的数据在缓冲器124中的位置、要加载到B矩阵缓冲器144中的数据在缓冲器128中的位置、作为加载操作的目标的B矩阵缓冲器144以及要加载的目标B矩阵缓冲器中的行。加载操作部分还包括用于指示是否要执行加载操作的字段。LSE指令的存储操作部分包括标识下列项的字段:要存储的C矩阵缓冲器134中的数据在缓冲器118中的位置、保存要存储的数据的C矩阵缓冲器134以及目标C矩阵缓冲器134中包含要存储的数据的行。存储操作部分还包括用于指示是否要执行存储操作的字段。LSE指令的执行操作部分包括标识下列项的字段:目标C矩阵缓冲器134和目标C矩阵缓冲器134中要接收执行操作的结果的行,以及在存储在目标C矩阵缓冲器134中之前要对矩阵乘法的结果执行的操作。可以指定的操作包括=、+=、-=或无。=操作使得结果直接存储在指定行中而不进行任何更改。+=操作使结果中的元素加到指定行中的相应元素,其中加法的结果替换指定行的内容。-=操作使得结果中的元素被指定行中的相应元素减去,其中减法的结果替换指定行的内容。顾名思义,无操作指示不执行任何操作。例如,在执行矩阵乘法之前将数据初始加载到B矩阵缓冲器144期间,或者当将存储在C矩阵缓冲器134中的最终结果移出MMA104时,使用无操作。MMA104还包括可配置格式组件130、可配置格式组件136、可配置格式组件140,以分别用于格式化由MMA104输出的数据和输入到MMA104的数据。格式A组件136和格式B组件140可配置成根据指定类型(诸如16位浮点型、16位固定有符号型、16位固定无符号型、8位固定有符号型和8位固定无符号型以及定点输入的Q点,即小数位数)格式化相应的输入数据。格式C组件130可配置成根据指定类型(诸如16位浮点型、16位固定有符号型、16位固定无符号型、8位固定有符号型和8位固定无符号型以及定点输出的Q点,即小数位数)格式化输出数据。格式A组件136还可配置成定义查找表(LUT),该查找表允许L2106中的A数据以4位精度存储以节省存储器并使用不需要统一的4位到16位的映射在A矩阵缓冲器138中扩展到16位精度。这对于所有计算原语均为有用的,并且对于CNN样式的2D卷积特别有用。MMA104还包括行偏移组件142,该偏移组件142可配置成指定要加载到B矩阵缓冲器144中的一行数据的每个元素的偏移。行偏移组件142存储三十二个五位偏移值,一行中的三十二个元素中的每个元素均有一个偏移值。行偏移组件142中指定的行偏移值可以用于将一行数据元素本文档来自技高网...

【技术保护点】
1.一种用于在设备中执行基本计算原语的方法,所述设备包括处理器和矩阵乘法加速器即MMA,所述方法包括:配置被包括在所述设备中的流式传输引擎以从存储器流式传输用于所述基本计算原语的数据;配置所述MMA以格式化所述数据;以及由所述设备执行所述基本计算原语。

【技术特征摘要】
【国外来华专利技术】2017.03.01 US 62/465,620;2018.02.28 US 15/907,3561.一种用于在设备中执行基本计算原语的方法,所述设备包括处理器和矩阵乘法加速器即MMA,所述方法包括:配置被包括在所述设备中的流式传输引擎以从存储器流式传输用于所述基本计算原语的数据;配置所述MMA以格式化所述数据;以及由所述设备执行所述基本计算原语。2.根据权利要求1所述的方法,其中执行所述基本计算原语还包括在使用第二被乘数矩阵缓冲器中的数据执行矩阵乘法的同时将数据加载到第一被乘数矩阵缓冲器中,所述第一被乘数矩阵缓冲器和所述第二被乘数矩阵缓冲器被包括在所述MMA中。3.根据权利要求1所述的方法,其中配置所述MMA还包括配置所述MMA以偏移被包括在所述MMA中的被乘数矩阵缓冲器中的加载数据。4.根据权利要求1所述的方法,其中所述数据包括矩阵的行,并且其中执行所述基本计算原语还包括将所述数据复制到被包括在所述MMA中的被乘数矩阵缓冲器中的列。5.根据权利要求1所述的方法,还包括配置所述处理器以将零填充添加到所述MMA的输出。6.根据权利要求1所述的方法,还包括配置所述处理器以对所述MMA的输出执行接缝去除。7.根据权利要求1所述的方法,还包括配置所述处理器以根据指定步幅对所述MMA的输出执行列子采样。8.根据权利要求1所述的方法,其中配置所述流式传输引擎还包括配置所述流式传输引擎以将多个特征映射的数据瓦片式拼接为滤波矩阵。9.根据权利要求8所述的方法,其中选择数据瓦片的大小,使得在所述MMA的所述输出中不存在接缝。10.根据权利要求8所述的方法,其中选择数据瓦片的大小,使得接缝始终在所述MMA的所述输出中的相同位置。11.根据权利要求1所述的方法,其中所述数据包括复数,其中所述复数的实部和虚部被交错存储在所述存储器中,并且所述方法还包括配置所述处理器以将每个复数分成所述实部和所述虚部,以用于加载到所述MMA中。12.根据权利要求1所述的方法,其中所述基本计算原语为快速傅里叶变换即FFT,并且执行所述基本计算原语还包括:将离散傅里叶变换矩阵即DFT矩阵加载到被包括在所述MMA中的乘数矩阵缓冲器中,并将数据矩阵加载到被包括在所述MMA中的被乘数矩阵缓冲器中,以对所述数据矩阵的列执行所述FFT;以及将所述数据矩阵加载到所述乘数矩阵缓冲器中并且将所述DFT矩阵加载到被乘数矩阵缓冲器中,以对所述数据矩阵的行执行所述FFT。13.根据权利要求1所述的方法,其中所述数据包括长度大于被包括在所述MMA中的被乘数矩阵缓冲器的宽度的滤波器,并且所述滤波器被分解成多个较小滤波器,其中所述较小滤波器的大小被挑选为在最大化所述MM...

【专利技术属性】
技术研发人员:A·J·雷德芬T·D·安德森K·车尔卡C·罗Z·余
申请(专利权)人:德克萨斯仪器股份有限公司
类型:发明
国别省市:美国,US

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

1