矩阵乘法的并行算法分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 0 A B 0 0 2 1 0 0 3 0 1 0 4 1 2 0 0 3 1 4 1 0 0 0 0 1 0 0 0 30 2 0 1 3 0 4 1 0 0 0 2 1 0 0 3 0 1 0
心动阵列

它把算法中蕴含的操作并行性用由具有同样逻辑功能的 PE通过简单的、规则的通讯几何局部地互连起来的阵 列来实现。这样的阵列除了连接几何形状有所变化外, 在阵列内,无论输入数据流或结果数据流的速度与方向 都有所变化,这是传统的流水线结构所没有的。在功能 上,一个这样的阵列相当于软件中一个含有循环语句的 过程。
矩阵乘法的并行算法分析
王前
本章目录
乘法器设计 矩阵乘法 单处理机矩阵乘法器 二维方阵矩阵乘法器
乘法器设计
1、性能级设计
4位数字乘法器。 2、结百度文库级设计
乘法器设计
方案1:空间迭代
分析:方案1通过完全空间意义 上的迭代,实现4位二进制数相 乘的迭代网络。 特点:速度快、硬件复杂
0 0 0 0
矩阵乘法
举例:一个4×4阶的A矩阵与一个4×4阶的B矩阵相乘
实现算法 : 1. 单处理机矩阵乘法器
2. 二维方阵结构矩阵乘法器
单处理机矩阵乘法器
b1x至b4x表示矩阵B的第x列的所有元素;c1x至c4x表示积矩阵C的 第x列所有元素同时输出;矩阵A四行的对应元素同时与B的某列的 一个元素相乘。
举例:矩阵乘法器
心动阵列

局限

通用性差,不同算法不同阵列 一个阵列通常只适用于大小确定的问题。

解决途径


可编程、可重构的PE
多个阵列组合成一个系统
VLSI设计三个阶段

应用问题的表达

抽象为数学模型,选择适当的算法并描述它

算法到阵列的映射

由算法描述到阵列结构描述

硬件实现

硬件实现该阵列结构
二维方阵结构矩阵乘法器
a8
a4
a2
a1 b1
B a8 a4 a2
B a1
B
B
0
b2 B B a2 a1 b3 B B
0
a8
a4
B a8 a4 a2
B a1
B
B
0
b4 B B B B
0
P128
P64
P32
P16
P8
P4
P2
P1
乘法器设计
方案2:时间迭代-部分积左移累加算法
乘法器设计
方案2:时间迭代-部分积左移累加算法
累加寄存器A 乘数寄存器Q
A7 A6 A5 A4 A3 A2 A1 A0
加命令
Q7 Q6 Q5 Q4
右移命令
可控全加器
控制器
M7 M6 M5 M4 M 3 M2 M1 M0
被乘数寄存器M
左移命令
矩阵乘法
一个 m×p 阶的A矩阵与一个p×n阶的B矩阵相乘得到一 个m×n阶的C矩阵(即C=AB)
cij
a
s 1
p
is
bsj ,
(1 i m, 1 j n)
积矩阵C的第i行第j列元素等于矩阵A的第i行向量与矩 阵B的第j列向量的内积。 Horner递推形式表示
(1) cij 0 ( k 1) (k ) cij cij aik bkj p 1 cij cij
(i 1,2,3, m) ( j 1,2,3, n)
心动阵列

心动阵列可以解决一大类基本计算问题,其中包括 绝大部分的矩阵运算、数字信号与图象处理的计算 及许多非数值计算问题。不同的算法有不同阵列结 构,同一个算法也可有许多不同的阵列来实现。
局部互连的约束却使阵列的连接结构为数不多。通 常有一维线性、二维正方形、二维六角形、树状、 三角状等连接方式
单处理机矩阵乘法器的仿真结果
二维方阵结构矩阵乘法器
VLSI并行结构特点 心动阵列 二维方阵结构矩阵乘法器
VLSI并行结构特点
属于阵列式结构 以互连网络为中心 是一组由相同的、简单的、规整的计算单元
(PE)连接而成的;
计算单元之间的通信应保持局部性 可广泛采用流水线技术提高吞吐量

17/40
心动阵列


心动阵列实质上是一种线性时间阵列。数据在阵列内的相邻 PE之间的运动,时时、处处都用相同的时间单位。因此, 任何算法若能在抽象代数空间中找到一种线性表示,就至少 存在着一种心动阵列来实现它。例如,离散傅立叶变换( DFT)的表示是线性的。它的数据运动具有局部性,所以很 容易找到其心动阵列实现。 心动阵列免除了形成数据流所需的控制开销。阵列内PE间 的局部连接方式,使得阵列中负载均匀、连线极短、最大限 度的减少了系统内部的通讯延时,提高PE的利用率。
A*B=C
B和C的元素将分别沿垂直与水平方向自上而下和自左 至右有节奏地流动,A的元素则按它们的原行列顺序存 入阵列的相应行列位置上的PE中,每一PE存入矩阵A 的一个元素。
举例:矩阵乘法器
1 0 A B 0 0 2 1 0 0 3 0 1 0 4 1 2 0 0 3 1 4 1 0 0 0 0 1 0 0 0 30 2 0 1 3 0 4 1 0 0 0 2 1 0 0 3 0 1 0
心动阵列(Systolic array)

由一组简单、重复PE构成,每个PE执行固定简单操作 。每个PE只与相邻的PE有规则连接。除了极少数边界 PE外,所有内部PE的构造都是一样的。进入/输出阵列 的数据必须在边界PE进入/输出阵列。
心动阵列
存储器
PE
PE
PE
PE
PE

图中存储器的作用有点象心脏,心脏收缩把血 液压入循环系统,经过处理又回到心脏。 Systolic在英文里是心脏有节奏地收缩的意思 。在心动阵列中,数据从计算机的存储器中有 节奏地流出并“压”入阵列,经过许多连成流 水线的PE,沿途得到连续的有效处理。
二维方阵矩阵乘法器的仿真结果
相关文档
最新文档