基于二维脉动阵列的矩阵乘法

3 篇文章 0 订阅

脉动阵列,其核心概念是让数据在运算单元的阵列中进行流动,减少访存的次数,并且使得结构更加规整,布线更加统一,提高频率。

二维脉动阵列

二维脉动阵列即如下图片所示,阵列了N*M的二维PE单元,单元间有连线用于数据流动,如下是将数据每次向下向右传递。下图中右侧为一个PE计算单元,完成 的一个函数计算,并继续向外传递数据。

在这里插入图片描述

二维脉动阵列实现矩阵乘法

矩阵乘法

例子 X ∗ W = Y X * W=Y XW=Y

[ X 11 X 12 X 13 X 21 X 22 X 23 X 31 X 32 X 33 X 41 X 42 X 43 ] ∗ [ Y 11 Y 12 Y 13 Y 21 Y 22 Y 23 Y 31 Y 32 Y 33 ] = [ U 11 U 12 U 13 U 21 U 22 U 23 U 31 U 32 U 33 U 41 U 42 U 43 ] \left[\begin{array}{llll} X_{11} & X_{12} & X_{13} \\ X_{21} & X_{22} & X_{23} \\ X_{31} & X_{32} & X_{33} \\ X_{41} & X_{42} & X_{43} \end{array}\right] *\left[\begin{array}{llll} Y_{11} & Y_{12} & Y_{13} \\ Y_{21} & Y_{22} & Y_{23} \\ Y_{31} & Y_{32} & Y_{33} \end{array}\right]=\left[\begin{array}{llll} U_{11} & U_{12} & U_{13} \\ U_{21} & U_{22} & U_{23} \\ U_{31} & U_{32} & U_{33} \\ U_{41} & U_{42} & U_{43} \end{array}\right] X11X21X31X41X12X22X32X42X13X23X33X43Y11Y21Y31Y12Y22Y32Y13Y23Y33=U11U21U31U41U12U22U32U42U13U23U33U43

定义PE计算单元

定义PE单元的连线与计算如下:从上输入Y,从左输入X,然后做累加运算保存到寄存器,向右输出X,向下输出Y

在这里插入图片描述

二维脉动阵列矩阵乘运算步骤

将X Y矩阵从二维脉动阵列的左侧和上方输入,然后不断的将每个阵列内部的接受到的数据向下向左继续传递。

\1. 将数据按照如下格式排列好准备向右向下输入,PE阵列单元初始化为0初始值

00Y33
0Y32Y23
Y31Y22Y13
Y21Y120
Y1100
000X13X12X11U11U12U13
00X23X22X210U21U22U23
0X33X32X3100U31U32U33
X43X42X41000U41U42U43

\2. 周期1,向右向下移动数据输入到PE阵列单元的输入侧

00Y33
0Y32Y23
Y31Y22Y13
Y21Y120
000X13X12U11 = X11*Y11U12U13
00X23X22X21U21U22U23
0X33X32X310U31U32U33
X43X42X4100U41U42U43

\3. 周期2,向右向下移动数据继续输入数据到PE阵列单元的输入侧,PE阵列中向下想右传输寄存的上一周期输入的数据

00Y33
0Y32Y23
Y31Y22Y13
000X13U11 = X11Y11 + X12Y21U12 = X11*Y12U13
00X23X22U21 = X21*Y11U22U23
0X33X32X31U31U32U33
X43X42X410U41U42U43

\4. 周期3,向右向下移动数据

00Y33
0Y32Y23
000U11 = X11Y11 + X12Y21 + X13*Y31U12 = X11Y12+X12Y22U13 = X11*Y13
00X23U21 = X21*Y11 + X22 * Y21U22 = X21*Y12U23
0X33X32U31 = X31 * Y11U32U33
X43X42X41U41U42U43

如此一直向下向右移动X,Y数据,直到X43和Y33都已经到达了U43计算单元完成了最后的累加计算,输出整个PE阵列的值即可, 对应的即结果矩阵的每一个值。

OTHER

如上可以观察到我们的X,Y矩阵都是流动进入PE阵列,我们还可以做如下一些改变实现二维脉动的其他计算:

• PE阵列的单元事先有初始值,非0,然后流动数据进入

• 固定一个数据如X,只流动Y进入

• PE计算单元做更复杂的计算

• 流出数据x,y是处理过后的,非流入原始值

脉动阵列的特点:

• 每个PE只与其邻近的PE进行通信,PE之间的通信具有局部性,而且通信是规则的

• 每一个PE都是相同的,但个别也可以不同

• 通过时钟激励统一处理

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlwaysDayOne

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值