第04章 向量处理机

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i Tc ij = max[Tstart + n]Tclk j i = (Tstart + n)Tclk
33/46
4.4 向量处理机的性能评价
假设第i个编队中所有向量指令处理的向量 元素个数均为n。 Tci :第i个编队的执行时间;
ij :第i个编队中第条指令所使用向量功能部 Tstart 件的启动时钟周期数。
量功能部件使用冲突的条件之外 )
◆ 在进行链接的时候,只有在前一条向量指令
的第一个结果元素送入结果向量寄存器的那 一个时钟周期才可以进行链接,若错过该时 刻就不能进行链接。
◆ 只有当前一条向量指令全部执行完毕,释放
相应的向量寄存器资源后才能执行后面的向 量指令。
20/46
4.3 提高向量处理机性能的常用技术
器加1、条件转移指令执行等。
28/46
4.4 向量处理机的性能评价

Tvf :向量处理单元流水线的流过时间,它 是从向量指令开始执行到得到第一个
计算结果(向量元素)所需的时间。
相当于通过时间?


ቤተ መጻሕፍቲ ባይዱ
Tc :向量处理单元流水线“瓶颈”段的执
时间。 ◆ 如果向量处理单元流水线不存在“瓶颈”段, 每 段的执行时间等于一个时钟周期,则上式也可 以写为: Tvp = [s + e + (n-1)]Tclk
S2相加 ;将计算结果从向量寄存器V2存入存 储器的向量A
24/46
4.3 提高向量处理机性能的常用技术
◆ 当N >64时,就需要进行分段开采。在进
行分段开采时,首先必须根据向量长度计算 出循环次数K : K= N 64
一般来说,N并不一定总是64的倍数,所 以如果N/64有余数,那么余数L为: N L = N - 64× 64
6. 向量循环或分段开采技术
如果向量的长度大于向量寄存器的长度, 该如何处理呢?
◆ 向量循环 :长向量循环分段处理的程序结构 。
把长向量分成固定长度的段,然后循环分 段处理,一次循环只处理一个向量段。
◆ 这种分段向量处理技术也称为分段开采。
◆ 将长向量循环分段处理是由系统硬件和软件控
制完成的,对程序员透明。
4.1 向量处理方式和向量处理机
1. 向量处理方式 D=A×(B+C ) A、B、C、D ── 长度为 N 的向量
3/46
(1) 水平(横向)处理方式 Ki =bi +ci Di =Ki ×ai 相关:N 次 功能切换:2N 次
T
T
4/46
4.1 向量处理方式
(2) 垂直(纵向)处理方式. 将整个向量按相同的运
◆ Vk ← 主存 ◆ 主存 ← Vi
13/46
4.3 提高向量处理机性能的常用技术
14/46
4.3 提高向量处理机性能的常用技术
4. 链接技术 当两条指令出现“写后读”相关时,若它们 不存在功能部件冲突和向量寄存器(源或目的)
冲突,就有可能把它们所用的功能部件头尾相
接,形成一个链接流水线,进行流水处理。 链接特性实质上是把流水线“定向”的思想
流水线的流水时间)为:
相当于标量流水线的通过时间
[(1+6+1)] + [(1+7+1)] = 17 拍
则三条向量指令总执行时间为: [(1+6+1)] + [(1+7+1)] +(N-1)= N + 16 拍
19/46
4.3 提高向量处理机性能的常用技术
5. 向量链接的一些主要要求:
(除了要保证无向量寄存器使用冲突和无向
17/46
4.3 提高向量处理机性能的常用技术
访存(6 拍)
存储器
V0
V1
V2
V3
V4
浮点加(6 拍)
浮点乘(7 拍)
图 3.44 通过链接技术实现指令重叠执行
◆ 三条向量指令全部用串行方法执行,则总
的执行时间为:
[(1+6+1) + N-1] + [(1+6+1) + N-1] +[(1+7+1) + N-1] = 3N + 22 拍
4.4 向量处理机的性能评价
◆ 对于一组向量指令,其执行时间主要取决于
三个因素:

向量的长度 向量操作之间是否链接

向量功能部件的冲突和数据的相关性
◆ 把几条能在同一个时钟周期内一起开始执行的
向量指令集合称为一个编队。
31/46
4.4 向量处理机的性能评价
例4.9 假设每种向量功能部件只有一个,那
张晨曦编著
华中科技大学 计算机学院
2 0 13 年 4 月
1/46
第四章 向量处理机
4.1 向量的处理方式
4.2 向量处理机的结构 4.3 提高向量处理机的常用技术
4.4 向量处理机性能评价
4.5 向量处理机
2/46
4.1 向量处理方式
向量处理方式
◆ 向量处理机:具有向量数据表示和相应向量
指令的流水线处理机。 ◆ 标量处理机: 不具有向量数据表示和相应向 量指令的处理机。
数据(每个元素)存入寄存器或者功能部件,都需要一拍
18/46
4.3 提高向量处理机性能的常用技术
◆ 前两条向量指令并行执行之后,再执行第
三条向量指令,则总的执行时间为:
[(1+6+1) + N-1] + [(1+7+1) + N-1] = 2N + 15 拍
◆ 采用向量链接技术,所需拍数(亦称为链接
◆ 当一条向量指令的两个源操作数分别是两条
先行向量指令的结果寄存器时,要求先行的 两条向量指令产生运算结果的时间必须相等, 即要求有关向量功能部件的延迟时间相等。
◆ 只有所有可以链接执行的向量指令的向量长
度相等时,它们之间才能链接执行,否则它 们之间也不能链接执行。
21/46
4.3 提高向量处理机性能的常用技术
26/46
For (I=0 to K-1) V0←B
{
;从存储器中将向量B[L+I*64…L+I*64+63] 读入向量寄存器V0
循环
V1←S1*V0
;向量B中的每个元素分别和常数S1相乘;
K次 ,
分段
处理
V2←S2+V1
A←V2 }
;向量V1中的每个元素分别和常数S2相加
;将计算结果V2存入存储器的向量 A[L+I*64…L+I*64+63]
25/46
S1←5.0 S2←1.0
;将常数5.0送入标量寄存器S1 ;将常数1.0送入标量寄存器S2
VL←L
V0←B
;在向量长度寄存器VL中设置向量长度L
;从存储器中将向量B[0..L-1]读入向量 寄存器V0
处理余 数部分, 计算L 个元素
V1←S1*V0 ;向量B中的每个元素分别和常数S1相乘; V2←S2+V1 ;向量V1中的每个元素分别和常数S2相加 A←V2 ;将计算结果从向量寄存器V2存入存储器 的向量A[0..L-1]
引入到向量执行过程的结果。
针对块内的元素.
15/46
16/46
4.3 提高向量处理机性能的常用技术
例 4.7 对 上 述 向 量 运 算 D=A*(B+C) , 若 向 量 长度N≤64,向量元素为浮点数,则在 B 、 C取到 V0、V1后,就可用以下三条向量指令求解: (1) V3←存储器(访存,载入A) (2) V2←V0+V1(浮点加) (3) V4←V2*V3(浮点乘,存D) 解:链接过程如图3.44所示:
27/46
第四章 向量处理机
4.4 向量处理机的性能评价
衡量向量处理机性能的主要参数: 1.向量指令的处理时间
◆ 执行一条向量长度为n的向量指令所需的时间为:
Tvp = Ts + Tvf + (n-1)Tc

对比P58 公式3.2
Ts :向量处理单元流水线的建立时间, 包括:向量起始地址的设置、计数
◆ 向量处理机:常用每秒取得多少个浮点运算
结果表示机器速度,以MFLOPS(Million of Floating Point Per Second)作为测量单位。
另一种评定计算机速度的方法:比较法。 (选择一台速度指标得到公认的机器作为标准机, 给定一些典型的基准程序。)
10/46
第四章 向量处理机
算处理完, 再去处理别的类的运算
K=B+C D=K×A
相关:1次 功能切换:1次
对处理机结构的要求: 存储器-存储器型操作的运算流水线 对存储器的带宽要求很高。N! 例如:STAR-100,CYBER-205
5/46
6/46
4.1 向量处理方式
(3) 分组(纵横)处理方式 横向分组纵向处理
把向量分成长度为某个固定值的若干组, 组内按纵向方式处理,依次处理各组。 各组内: 相关:1次 向量指令
各组:
功能切换:2次 静态多功能流水线
7/46
4.1 向量处理方式
8/46
4.2 向量处理机的结构
每个Vi可放64个元素
决定元素个数
决定元素对个数
9/46
4.2 向量处理机的结构
向量处理机的速度评价方法
◆ 标量处理机:通常用每秒执行多少指令
MIPS(Million Instructions Per Second) 来衡量机器的运算速度 。
么下面的一组向量指令能分成几个编队?
LV MULTSV LV ADDV V1,Rx V2,R0,V1 V3,Ry V4,V2,V3
SV
Ry,V4
32/46
4.4 向量处理机的性能评价
解:第一编队:LV 第二编队:MULTSV; LV 第三编队:ADDV 第四编队:SV

一个编队内所有向量指令执行完毕所需要 的时间为:以第二编队举例
指令的处理。
12/46
4.3 提高向量处理机性能的常用技术
Vi冲突:指的是并行工作的各向量指令的源向 量或结果向量的Vi有相同的。 向量功能部件冲突:指同一个向量功能部件被 一条以上的并行工作向 量指令所使用。 3. CRAY-1向量指令类型
◆ Vk ← Vi op Vj
◆ Vk ← Si op Vj
S2←1.0
VL←N
;将常数1.0送入标量寄存器S2
;在向量长度寄存器VL中设置向量长度N
23/46
4.3 提高向量处理机性能的常用技术
V0←B V1←S1*V0
;从存储器中将向量B读入向量寄存器V0 ;向量B中的每个元素分别和常数S1 相乘
V2←S2+V1
A←V2
;向量V1中的每个元素分别和常数
V 0 ~ V7
每个向量运算部件
◆ 向量长度寄存器VL ◆ 向量屏蔽寄存器VM
每个Vi块是具有64个元素的向量, 共有8个块! 即8个向 量,每个向量64个元素,每个元素字长为64 bit. CRAY-1向量处理的显著特点:只要不出现Vi 冲突和向量功能部件冲突,各个Vi之间和各个向 量功能部件之间都能并行工作,大大加快了向量
29/46
4.4 向量处理机的性能评价

s:向量处理单元流水线建立所需的时
钟周期数;

e:向量流水线流过(通过)所需的时钟周期数;
Tclk:时钟周期时间。
◆ 可以再改写为:
Tvp = (Tstart + n)Tclk
Tstart :向量功能部件启动所需的时钟
周期数;

n:向量元素个数。
30/46
Tn = n MVL
× (Tloop
+ Tstart + m ×MVL ) n MVL
× MVL)
+ [ Tloop + Tstart + m ×(n =
]
n MVL
× (Tloop
+ Tstart ) + mn
MVL:向量处理机的向量寄存器长度。
35/46
4.4 向量处理机的性能评价
例4.10 在某向量处理机上执行DAXPY的向量指令 序列,也即计算双精度浮点向量表达式Y=a×X+Y。 其中X和是Y双精度浮点向量,最初保存在外部存 储器中,a是一个双精度浮点常数,已存放在浮点 寄存器F0中。计算该表达式的向量指令序列如下: LV MULTFV V1,Rx V2,F0,V1
4.3 提高向量处理机性能的常用技术
1. CRAY-1简介
◆ 美国CRAY公司 ◆ 1976年
◆ 每秒亿次浮点运算
◆ 主频:80MHz
字长:64位
2. CRAY-1的基本结构
◆ 向量运算部件:6个流水部件
整数加,逻辑运算,移位 浮点加,浮点乘,求倒数
11/46
4.3 提高向量处理机性能的常用技术 ◆ 向量寄存器组:8×64 ◆ 每个 Vi
22/46
4.3 提高向量处理机性能的常用技术
例4.8 设A和B是长度为N的向量,考虑在 Cray-1向量处理器上实现如下的循环操作。 DO 10 I = 1,N 10 A(I) = 5.0 * B(I) + 1.0 ◆ 当N ≤64时,可以用如下指令序列实现上 述循环操作:
S1←5.0 ;将常数5.0送入标量寄存器S1

经过编队后的向量指令序列总的执行时间为: m为编队数
i Tv = Tci = ( Tstart + n )Tclk i =1 i =1 i = (Tstart + mn)Tclk i =1 m m m
= (Tstart + mn)Tclk
34/46
4.4 向量处理机的性能评价

编队并采用分段开采技术后,向量指令序列 执行所需的总的时钟周期数为:
相关文档
最新文档