《《向量处理机》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《向量处理机》PPT课件.ppt(43页珍藏版)》请在三一办公上搜索。
1、3.5向量处理机,向量处理方式和向量处理机,向量处理机:具有向量数据表示和相应向量 指令的流水线处理机。标量处理机:不具有向量数据表示和相应向 量指令的处理机。,DA(BC)A、B、C、D 长度为 N 的向量,1.向量处理方式,第三章 流水线技术,(1)水平(横向)处理方式 Kibici DiKiai 相关:N 次 功能切换:2N 次,(2)垂直(纵向)处理方式 KBC DKA 相关:次 功能切换:次,对处理机结构的要求:存储器-存储器型操作的运算流水线对存储器的带宽要求很高。例如:STAR-100,CYBER-205,3.5 向量处理机,3.5 向量处理机,(3)分组(纵横)处理方式 把向量
2、分成长度为某个固定值的若干组,组内按纵向方式处理,依次处理各组。每组内:相关:次 功能切换:次,3.5 向量处理机,3.5 向量处理机,对处理机结构的要求:寄存器-寄存器型操作的运算流水线。举例,2.向量处理机的速度评价方法,标量处理机:通常用每秒执行多少指令 MIPS(Million Instructions Per Second)来衡量机器的运算速度。向量处理机:常用每秒取得多少个浮点运算 结果表示机器速度,以MFLOPS(Million of Floating Point Per Second)作为测量单位。,另一种评定计算机速度的方法:比较法。(选择一台速度指标得到公认的机器作为标准机
3、,给定一些典型的基准程序。),3.5 向量处理机,3.5.2 提高向量处理机性能的主要技术,1.CRAY-I简介 美国CRAY公司 1976年 每秒亿次浮点运算 主频:80MHz 字长:64位,2.CRAY-1的基本结构 向量运算部件:个 整数加,逻辑运算,移位 浮点加,浮点乘,求倒数,3.5 向量处理机,向量寄存器组:864 V0 V7 每个 Vi 每个向量运算部件 向量长度寄存器VL 向量屏蔽寄存器VM,CRAY-1向量处理的显著特点:只要不出现Vi冲突和向量功能部件冲突,各个Vi之间和各个向量功能部件之间都能并行工作,大大加快了向量指令的处理。,3.5 向量处理机,3.CRAY-1向量指
4、令类型 Vk Vi op Vj Vk Si op Vj Vk 主存 主存 Vi,Vi冲突:指的是并行工作的各向量指令的源向 量或结果向量的Vi有相同的。向量功能部件冲突:指同一个向量功能部件被 一条以上的并行工作向 量指令所使用。,3.5 向量处理机,3.5 向量处理机,4.链接技术 当两条指令出现“写后读”相关时,若它们 不存在功能部件冲突和向量寄存器(源或目的)冲突,就有可能把它们所用的功能部件头尾相 接,形成一个链接流水线,进行流水处理。链接特性实质上是把流水线“定向”的思想 引入到向量执行过程的结果。,3.5 向量处理机,例3.7 对上述向量运算D=A*(B+C),若向量长度N64,向
5、量元素为浮点数,则在B、C取到V0、V1后,就可用以下三条向量指令求解:(1)V3存储器(访存,载入A)(2)V2V0V1(浮点加)(3)V4V2*V3(浮点乘,存D),解:链接过程如图3.44所示:,3.5 向量处理机,三条向量指令全部用串行方法执行,则总 的执行时间为:(1+6+1)+N-1+(1+6+1)+N-1+(1+7+1)+N-1=3N+22 拍,3.5 向量处理机,前两条向量指令并行执行之后,再执行第 三条向量指令,则总的执行时间为:(1+6+1)+N-1+(1+7+1)+N-1=2N+15 拍,采用向量链接技术,所需拍数(亦称为链接 流水线的流水时间)为:(1+6+1)+(1+
6、7+1)=17 拍 则三条向量指令总执行时间为:(1+6+1)+(1+7+1)+(N-1)=N+16 拍,3.5 向量处理机,5.向量链接的一些主要要求:(除了要保证无向量寄存器使用冲突和无向 量功能部件使用冲突的条件之外),在进行链接的时候,只有在前一条向量指令 的第一个结果元素送入结果向量寄存器的那 一个时钟周期才可以进行链接,若错过该时 刻就不能进行链接。只有当前一条向量指令全部执行完毕,释放 相应的向量寄存器资源后才能执行后面的向 量指令。,3.5 向量处理机,当一条向量指令的两个源操作数分别是两条 先行向量指令的结果寄存器时,要求先行的 两条向量指令产生运算结果的时间必须相等,即要求
7、有关向量功能部件的延迟时间相等。只有所有可以链接执行的向量指令的向量长 度相等时,它们之间才能链接执行,否则它 们之间也不能链接执行。,3.5 向量处理机,6.向量循环或分段开采技术 如果向量的长度大于向量寄存器的长度,该如何处理呢?,向量循环:长向量循环分段处理的程序结构。把长向量分成固定长度的段,然后循环分 段处理,一次循环只处理一个向量段。这种分段向量处理技术也称为分段开采。将长向量循环分段处理是由系统硬件和软件控 制完成的,对程序员透明。,3.5 向量处理机,例3.8 设A和B是长度为N的向量,考虑在Cray-1向量处理器上实现如下的循环操作。DO 10 I=1,N 10 A(I)=5
8、.0*B(I)+1.0 当N 64时,可以用如下指令序列实现上 述循环操作:,S15.0;将常数5.0送入标量寄存器S1S21.0;将常数1.0送入标量寄存器S2VLN;在向量长度寄存器VL中设置向量长度N,3.5 向量处理机,V0B;从存储器中将向量B读入向量寄存器V0V1S1*V0;向量B中的每个元素分别和常数S1 相乘V2S2+V1;向量V1中的每个元素分别和常数 S2相加AV2;将计算结果从向量寄存器V2存入存 储器的向量A,3.5 向量处理机,当N 64时,就需要进行分段开采。在进 行分段开采时,首先必须根据向量长度计算 出循环次数K:,一般来说,N并不一定总是64的倍数,所以如果N
9、/64有余数,那么余数L为:,3.5 向量处理机,S15.0;将常数5.0送入标量寄存器S1S21.0;将常数1.0送入标量寄存器S2VLL;在向量长度寄存器VL中设置向量长度LV0B;从存储器中将向量B0.L-1读入向量 寄存器V0V1S1*V0;向量B中的每个元素分别和常数S1相乘;V2S2+V1;向量V1中的每个元素分别和常数S2相加AV2;将计算结果从向量寄存器V2存入存储器 的向量A0.L-1,处理余数部分,计算L个元素,For(I=0 to K-1)V0B;从存储器中将向量BL+I*64L+I*64+63 读入向量寄存器V0V1S1*V0;向量B中的每个元素分别和常数S1相乘;V2
10、S2+V1;向量V1中的每个元素分别和常数S2相加AV2;将计算结果V2存入存储器的向量 AL+I*64 L+I*64+63,循环K次,分段处理,衡量向量处理机性能的主要参数:1.向量指令的处理时间 执行一条向量长度为n的向量指令所需的时间为:,3.5.3 向量处理机的性能评价,Tvp=Ts+Tvf+(n-1)Tc,Ts:向量处理单元流水线的建立时间,包括:向量起始地址的设置、计数 器加1、条件转移指令执行等。,3.5 向量处理机,Tvf:向量处理单元流水线的流过时间,它 是从向量指令开始执行到得到第一个 计算结果(向量元素)所需的时间。Tc:向量处理单元流水线“瓶颈”段的执行 时间。,如果向
11、量处理单元流水线不存在“瓶颈”段,每 段的执行时间等于一个时钟周期,则上式也可 以写为:,Tvp=s+e+(n-1)Tclk,3.5 向量处理机,s:向量处理单元流水线建立所需的时 钟周期数;e:向量流水线流过所需的时钟周期数;Tclk:时钟周期时间。,可以再改写为:,Tvp=(Tstart+n)Tclk,Tstart:向量功能部件启动所需的时钟 周期数;n:向量元素个数。,3.5 向量处理机,对于一组向量指令,其执行时间主要取决于 三个因素:,向量的长度 向量操作之间是否链接 向量功能部件的冲突和数据的相关性,把几条能在同一个时钟周期内一起开始执行的 向量指令集合称为一个编队。,3.5 向量
12、处理机,例3.9 假设每种向量功能部件只有一个,那么下面的一组向量指令能分成几个编队?,LV V1,Rx MULTSV V2,R0,V1 LV V3,RyADDV V4,V2,V3 SV Ry,V4,3.5 向量处理机,解:第一编队:LV 第二编队:MULTSV;LV 第三编队:ADDV 第四编队:SV,一个编队内所有向量指令执行完毕所需要 的时间为:,3.5 向量处理机,假设第i个编队中所有向量指令处理的向量元素个数均为n。:第i个编队的执行时间;:第i个编队中第条指令所使用向量功能部 件的启动时钟周期数。,经过编队后的向量指令序列总的执行时间为:,3.5 向量处理机,编队并采用分段开采技术
13、后,向量指令序列 执行所需的总的时钟周期数为:,MVL:向量处理机的向量寄存器长度。,3.5 向量处理机,例3.10 在某向量处理机上执行DAXPY的向量指令序列,也即计算双精度浮点向量表达式。其中和是双精度浮点向量,最初保存在外部存储器中,是一个双精度浮点常数,已存放在浮点寄存器F0中。计算该表达式的向量指令序列如下:,LV V1,RxMULTFV V2,F0,V1LV V3,RyADDV V4,V2,V3SV Ry,V4,3.5 向量处理机,解:第一编队:LV V1,Rx 第二编队:MULTFV V2,F0,V1;LV V3,Ry 第三编队:ADDV V4,V2,V3 第四编队:SV Ry
14、,V4,假设向量存储部件的启动需要12个时钟周期,向量乘法部件的启动需要7个时钟周期,向量加法部件的启动需要6个时钟周期,向量寄存器长度MVL64,那么对n个向量元素进行DAXPY表达式计算所需的时钟周期数为:,3.5 向量处理机,如果考虑采用向量链接技术,那么DAXPY的向量指令序列可以编队为:第一编队:LV V1,Rx;MULTFV V2,F0,V1 第二编队:LV V3,Ry;ADDV V4,V2,V3 第三编队:SV Ry,V4,3.5 向量处理机,第一编队启动需要12+7=19个时钟周期;第二编队启动需要12+6=18个时钟周期;第三编队启动仍然需要12个时钟周期。,采用链接技术后,
15、对n个向量元素进行DAXPY表达式计算所需的时钟周期数为:,3.5 向量处理机,2.向量处理机的峰值性能R R表示当向量长度为无穷大时,向量处理机 的最高性能,也称为峰值性能。向量处理机的峰值性能可以表示为:,对于例题3.10向量指令序列中的操作而言,只有“MULTFV V2,F0,V1”和“ADDV V4,V2,V3”两条浮点操作向量指令。假设该向量处理机的时钟频率为200MHz,那么:,3.5 向量处理机,3.5 向量处理机,3.半性能向量长度n1/2 向量处理机的运行性能达到其峰值性能的 一半时所必须满足的向量长度。它是评价向量功能部件的流水线建立时间 对向量处理机性能影响的重要参数。对
16、于上面的例子,由于该向量处理机的峰 值性能R100 MFLOPS,所以根据半性能向量长度得定义有:,3.5 向量处理机,假设 64,那么有:,n1/2,5n1/2 64,n1/2 12.8,n1/2 13,3.5 向量处理机,4.向量长度临界值nv 对于某一计算任务而言,向量方式的处理速 度优于标量串行方式处理速度时所需的最小向量 长度。对于上述DAXPY的例子,假设nv64,在标 量串行工作方式下实现DAXPY循环的开销为10个 时钟周期。那么在标量串行方式下,计算DAXPY 循环所需要的时钟周期数为:,3.5 向量处理机,Ts=(1012127612)nv=59nv,在向量方式下,计算DAXPY循环所需要的时钟周期数为:Tv=643nv 根据向量长度临界值的定义,有:Tv=Ts 643nv=59nv,3.5 向量处理机,