具有低功率并行矩阵乘法流水线的流处理器制造技术

技术编号:21343126 阅读:30 留言:0更新日期:2019-06-13 22:19
本发明专利技术涉及一种具有低功率并行矩阵乘法流水线的流处理器。公开了用于实现低功率并行矩阵乘法流水线的系统、装置和方法。在一个实施方式中,系统至少包括耦合到矩阵乘法流水线的第一和第二矢量寄存器堆。矩阵乘法流水线包含多个点积单位。点积单元被配置为计算从第一矢量寄存器堆检索的第一和第二组操作数的点积或外积。点积或外积操作的结果被写回第二矢量寄存器堆。第二矢量寄存器堆将先前的点积或外积操作的结果作为后续点积或外积操作的输入。点积单元从矩阵乘法操作的先前阶段接收结果,并将这些先前的点积或外积的结果与当前的点积或外积结果进行累加。

A Pipeline Processor with Low Power Parallel Matrix Multiplication Pipeline

The invention relates to a pipeline processor with low power parallel matrix multiplication pipeline. Systems, devices and methods for realizing a low power parallel matrix multiplication pipeline are disclosed. In one embodiment, the system includes at least the first and second vector registers stacks coupled to the matrix multiplication pipeline. Matrix multiplication pipeline contains multiple point product units. The dot product unit is configured to calculate the dot product or the outer product of the first and second sets of operands retrieved from the first vector register heap. The result of the dot product or outer product operation is written back to the second vector register heap. The second vector register heap takes the results of previous dot product or outer product operations as input for subsequent dot product or outer product operations. The dot product unit receives the results from the previous stage of the matrix multiplication operation and accumulates the results of the previous dot product or the outer product with the current dot product or the outer product.

【技术实现步骤摘要】
具有低功率并行矩阵乘法流水线的流处理器
本专利技术涉及计算机领域,更具体地涉及一种具有低功率并行矩阵乘法流水线的流处理器。
技术介绍
许多不同类型的计算系统包括矢量处理器或单指令多数据(SIMD)处理器。任务可以在这些类型的并行处理器上并行执行,以增加计算系统的吞吐量。注意,并行处理器在这里也可以被称为“流处理器”。在流处理器上实现了各种类型的机器学习算法。这些机器学习算法中的一些实现矩阵乘法操作。这些矩阵乘法操作通常需要很多周期来产生结果,同时消耗大量的功率。因此,期望用于改进性能、降低功耗和/或减少流处理器上的矩阵乘法操作的等待时间的技术。
技术实现思路
本专利技术的一些方面具体体现如下:1.一种系统,包括:第一矢量寄存器堆;和耦合到所述第一矢量寄存器堆的第一执行流水线,其中所述第一执行流水线包括多个点积单元,并且其中所述多个点积单元中的每一个点积单元被配置为:计算第一组操作数中的元素与第二组操作数中的对应元素的多个乘积;和计算累加输入和所述多个乘积的总和,其中所述总和是所述点积单元的输出。2.如条款1所述的系统,其中所述系统被配置为从所述第一矢量寄存器堆读取所述第一组操作数和所述第二组操作数,并将所述第一组操作数和所述第二组操作数提供给所述第一执行流水线。3.如条款1所述的系统,其中所述系统还包括第二矢量寄存器堆,其中所述系统被配置为从所述第二矢量寄存器堆读取多个累加输入,并将所述多个累加输入提供给所述第一执行流水线。4.如条款3所述的系统,其中,每个点积单元还被配置为将所述输出写入到所述第二矢量寄存器堆,其中先前点积操作的输出是被加到当前点积操作的总和的累加输入。5.如条款1所述的系统,其中所述系统还包括第二执行流水线,其中所述第二执行流水线被配置为与由所述第一执行流水线正在执行的点积操作并行地执行操作。6.如条款5所述的系统,其中所述系统还被配置为:在第一周期中从所述第一矢量寄存器堆读取所述第一组操作数和所述第二组操作数并且将所述第一组操作数和所述第二组操作数存储在存储元件中;和在第二周期中从所述第一矢量寄存器堆读取第三组操作数并且将所述第三组操作数提供给所述第二执行流水线。7.如条款1所述的系统,其中所述第一组操作数是第一矩阵的行,并且其中所述第二组操作数是第二矩阵的列,并且其中所述多个点积单元被配置成将所述第一矩阵乘以所述第二矩阵。8.一种方法,其包括:计算第一组操作数的元素和第二组操作数的对应元素的多个乘积;和计算累加输入和所述多个乘积的总和,其中所述总和是点积单位的输出。9.如条款8所述的方法,还包括从第一矢量寄存器堆读取所述第一组操作数和所述第二组操作数,并将所述第一组操作数和所述第二组操作数提供给第一执行流水线。10.如条款8所述的方法,还包括从第二矢量寄存器堆读取多个累加输入,并将所述多个累加输入提供给第一执行流水线。11.如条款10所述的方法,其还包括将所述输出写入所述第二矢量寄存器堆,其中先前点积操作的输出是被加到当前点积操作的总和的累加输入。12.如条款8所述的方法,还包括与由第一执行流水线正在执行的点积操作并行地在第二执行流水线上执行操作。13.如条款12所述的方法,还包括:在第一周期中从第一矢量寄存器堆读取所述第一组操作数和所述第二组操作数并且将所述第一组操作数和所述第二组操作数存储在存储元件中;和在第二周期中从所述第一矢量寄存器堆读取第三组操作数并且将所述第三组操作数提供给所述第二执行流水线。14.如条款8所述的方法,其中所述第一组操作数是第一矩阵的行,并且其中所述第二组操作数是第二矩阵的列,并且其中所述方法进一步包括利用多个点积单元将所述第一矩阵乘以所述第二矩阵。15.一种装置,其包括:多个矢量寄存器堆;和耦合到所述多个矢量寄存器堆的多个执行流水线;其中所述装置被配置为:计算第一组操作数的元素和第二组操作数的对应元素的多个乘积;和计算累加输入和所述多个乘积的总和,其中所述总和是点积单元的输出。16.如条款15所述的装置,其中,所述装置还被配置为从第一矢量寄存器堆读取所述第一组操作数和所述第二组操作数,并将所述第一组操作数和所述第二组操作数提供给第一执行流水线。17.根据条款16所述的装置,其中所述装置被配置为从第二矢量寄存器堆读取多个累加输入,并将所述多个累加输入提供到所述第一执行流水线。18.如条款17所述的装置,其中,所述装置被配置为将所述输出写入所述第二矢量寄存器堆,其中先前点积操作的输出是被加到当前点积操作的总和的累加输入。19.如条款15所述的装置,其中,所述装置还被配置为与由第一执行流水线正在执行的点积操作并行地在第二执行流水线上执行操作。20.如条款19所述的装置,其中所述装置还被配置为:在第一周期中从所述第一矢量寄存器堆读取所述第一组操作数和所述第二组操作数并且将所述第一组操作数和所述第二组操作数存储在存储元件中;和在第二周期中从所述第一矢量寄存器堆读取第三组操作数并且将所述第三组操作数提供给所述第二执行流水线。附图说明通过结合附图参考以下描述,可以更好地理解在此描述的方法和机制的优点,其中:图1是计算系统的一个实施方式的框图。图2是矩阵乘法操作的一个实施方式的框图。图3是流处理器的一个实施方式的框图。图4是执行流水线上的重叠执行的一个实施方式的时序图。图5是执行流水线上的重叠执行的另一个实施方式的时序图。图6是矩阵乘法操作的另一个实施方式的框图。图7是流处理器的另一个实施方式的框图。图8是执行矩阵乘法操作的一个实施方式的时序图。图9是执行矩阵乘法操作的另一个实施方式的时序图。图10是矩阵乘法操作的另一个实施方式的框图。图11是流处理器的另一个实施方式的框图。图12是执行矩阵乘法操作的一个实施方式的时序图。图13是执行矩阵乘法操作的另一个实施方式的时序图。图14是示出用于执行矩阵乘法操作的方法的一个实施方式的概括性流程图。具体实施方式在以下描述中,阐述了许多具体细节以提供对本文所呈现的方法和机制的透彻理解。然而,本领域的普通技术人员应该认识到,可以在没有这些具体细节的情况下实践各种实施方式。在一些情况下,没有详细示出公知的结构、组件、信号、计算机程序指令和技术,以避免模糊本文所述的方法。应该理解的是,为了说明的简单和清楚,图中所示的元件不一定按比例绘制。例如,一些元件的尺寸可能相对于其他元件被放大。这里公开了用于实现低功率并行矩阵乘法流水线的系统、装置和方法。在一个实施方式中,流处理器包括多个矢量寄存器堆和耦合到矢量寄存器堆的多个执行流水线。第一执行流水线包括多个点积单元。在一个实施方式中,这些点积单元中的每一个被配置为通过计算第一组操作数的元素与第二组操作数的对应元素的多个乘积的总和来对第一和第二组操作数执行点积操作。每个点积单元还被配置为产生与添加到点积运算结果的累加值相等的输出。在一个实施方式中,累加值是先前点积操作的结果。在另一个实施方式中,每个点积单元被配置为通过计算第一和第二组操作数的外积来执行矩阵乘法操作。在一个实施方式中,流处理器被配置为从第一矢量寄存器堆中读取第一和第二组操作数,并将第一和第二组操作数提供给第一执行流水线。在该实施方式中,流处理器被配置为从第二矢量寄存器堆读取多个累加值,并将该多个累加值提供给第一执行流水线。而且本文档来自技高网...

【技术保护点】
1.一种系统,包括:第一矢量寄存器堆;和耦合到所述第一矢量寄存器堆的第一执行流水线,其中所述第一执行流水线包括多个点积单元,并且其中所述多个点积单元中的每一个点积单元被配置为:计算第一组操作数中的元素与第二组操作数中的对应元素的多个乘积;和计算累加输入和所述多个乘积的总和,其中所述总和是所述点积单元的输出。

【技术特征摘要】
1.一种系统,包括:第一矢量寄存器堆;和耦合到所述第一矢量寄存器堆的第一执行流水线,其中所述第一执行流水线包括多个点积单元,并且其中所述多个点积单元中的每一个点积单元被配置为:计算第一组操作数中的元素与第二组操作数中的对应元素的多个乘积;和计算累加输入和所述多个乘积的总和,其中所述总和是所述点积单元的输出。2.如权利要求1所述的系统,其中所述系统被配置为从所述第一矢量寄存器堆读取所述第一组操作数和所述第二组操作数,并将所述第一组操作数和所述第二组操作数提供给所述第一执行流水线。3.如权利要求1所述的系统,其中所述系统还包括第二矢量寄存器堆,其中所述系统被配置为从所述第二矢量寄存器堆读取多个累加输入,并将所述多个累加输入提供给所述第一执行流水线。4.如权利要求3所述的系统,其中,每个点积单元还被配置为将所述输出写入到所述第二矢量寄存器堆,其中先前点积操作的输出是被加到当前点积操作的总和的累加输入。5.如权利要求1所述的系统,其中所述系统还包括第二执行流水线,其中所述第二执行流水线被配置为与由所述第一执行流水线正在执行的点积操作并行地执行操作。6.如权利要求5所述的系统,其中所述系统还被配置为:在第一周期中从所述第一矢量寄存器堆读取所述第一组操作数和所述第二组操作数并且将所述第一组操作数和所述第二组操作数存储在存储元件中;和在第二周期中从所述第一矢量寄存器堆读取第三组操作数并且将所述第三组操作数提供给所述第二执行流水线。7.如权利要求1所述的系统,其中所述第一组操作数是第一矩阵的行,并且其中所述第二组操作数是第二矩阵的列,并且其中所述多个点积单元被配置成将所述第一矩阵乘以所述第二矩阵。8.一种方法,其包括:计算第一组操作数的元素和第二组操作数的对应元素的多个乘积;和计算累加输入和所述多个乘积的总和,其中所述总和是点积单位的输出。9.如权利要求8所述的方法,还包括从第一矢量寄存器堆读取所述第一组操作数和所述第二组操作数,并将所述第一组操作数和所述第二组操作数提供给第一执行流水线。10.如权利要求8所述的方法,还包括从第二矢量寄存器堆读取多个累加输入,并将所述多个累加输入提供给第一...

【专利技术属性】
技术研发人员:陈佳升邹云晓迈克尔·J·曼托尔艾伦·拉什
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国,US

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

1