矩阵乘法的并行算法分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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,沿途得到连续的有效处理。
二维方阵矩阵乘法器的仿真结果
心动阵列
它把算法中蕴含的操作并行性用由具有同样逻辑功能的 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,沿途得到连续的有效处理。
二维方阵矩阵乘法器的仿真结果