好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

最新向量处理机ppt课件.ppt

44页
  • 卖家[上传人]:cn****1
  • 文档编号:570087594
  • 上传时间:2024-08-01
  • 文档格式:PPT
  • 文档大小:732KB
  • / 44 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 向量处理机向量处理机 (1) (1) 水平水平( (横向横向) )处理方式处理方式 K Ki i==b bi i++c ci i D Di i==K Ki i××a ai i 相关:相关:N N 次次 功能切换:功能切换:2 2N N 次次 3/43 4/43 5/43 6/43 8/43 9/433.5.2 提高向量处理机性能的主要技术1 1. CRAY-I简介 ◆ 美国美国CRAYCRAY公司公司 ◆ 19761976年年 ◆ 每秒亿次浮点运算每秒亿次浮点运算 ◆ 主频:主频:80MHz 80MHz 字长:字长:6464位位2 2. CRAY-1CRAY-1的基本结构的基本结构 ◆ 向量运算部件:6个向量运算部件:6个    整数加,逻辑运算,移位整数加,逻辑运算,移位 浮点加,浮点乘,求倒数浮点加,浮点乘,求倒数3.5 向量处理机 10/43◆ 向量寄存器组:向量寄存器组:8×64 V8×64 V0 0 ~~ V V7 7◆ 每个每个 V Vi i      每个向量运算部件每个向量运算部件◆ 向量长度寄存器向量长度寄存器VLVL◆ 向量屏蔽寄存器向量屏蔽寄存器VMVM CRAY-1 CRAY-1向量处理的向量处理的显著特点:显著特点:只要不出现只要不出现V Vi i冲突冲突和和向量功能部件冲突向量功能部件冲突,各个,各个V Vi i之间和各个向之间和各个向量功能部件之间都能并行工作,大大加快了向量量功能部件之间都能并行工作,大大加快了向量指令的处理。

      指令的处理 3.5 向量处理机 11/433. CRAY-1CRAY-1向量指令类型向量指令类型 ◆ V Vk k ← V← Vi i op V op Vj j ◆ V Vk k ← S← Si i op V op Vj j ◆ V Vk k ← ← 主存主存 ◆ 主存主存 ← V ← Vi iV Vi i冲突:冲突:指的是并行工作的各向量指令的源向指的是并行工作的各向量指令的源向 量或结果向量的量或结果向量的V Vi i有相同的有相同的向量功能部件冲突:向量功能部件冲突:指同一个向量功能部件被指同一个向量功能部件被 一条以上的并行工作向一条以上的并行工作向 量指令所使用量指令所使用 3.5 向量处理机 12/433.5 向量处理机 13/434. 链接技术链接技术 当两条指令出现当两条指令出现““写后读写后读””相关时,若它们相关时,若它们 不存在功能部件冲突和向量寄存器不存在功能部件冲突和向量寄存器( (源或目的源或目的) ) 冲突,就有可能把它们所用的功能部件头尾相冲突,就有可能把它们所用的功能部件头尾相 接,形成一个链接流水线,进行流水处理。

      接,形成一个链接流水线,进行流水处理 链接特性链接特性实质上是把流水线实质上是把流水线““定向定向””的思想的思想 引入到向量执行过程的结果引入到向量执行过程的结果3.5 向量处理机 15/43例例3.73.7 对对上上述述向向量量运运算算D=A*(B+C)D=A*(B+C),,若若向向量量长长度度N≤64N≤64,,向向量量元元素素为为浮浮点点数数,,则则在在B B、、C C取取到到V V0 0、、V V1 1后,就可用以下三条向量指令求解:后,就可用以下三条向量指令求解: ((1 1)) V V3 3←←存储器存储器( (访存,载入访存,载入A)A) ((2 2)) V V2 2←V←V0 0++V V1 1( (浮点加浮点加) ) ((3 3)) V V4 4←V←V2 2*V*V3 3( (浮点乘,存浮点乘,存D)D)解:解:链接过程链接过程如图如图3.443.44所示:所示: 3.5 向量处理机 16/43◆ 三条向量指令全部用三条向量指令全部用串行方法串行方法执行,则总执行,则总 的执行时间为:的执行时间为:[ [((1+6+11+6+1)) + + N-1] + [N-1] + [((1+6+11+6+1)) + N-1] + N-1] +[ +[((1+7+11+7+1)) + N-1] = 3N + 22 + N-1] = 3N + 22 拍拍 3.5 向量处理机 17/43◆ 前前两两条条向向量量指指令令并并行行执执行行之之后后,,再再执执行行第第 三条向量指令,则总的执行时间为:三条向量指令,则总的执行时间为: [ [((1+6+11+6+1)) + N-1] + [ + N-1] + [((1+7+11+7+1)) + N- + N-1] 1] = 2N + 15 = 2N + 15 拍拍 ◆ 采用向量链接技术,所需拍数采用向量链接技术,所需拍数( (亦称为亦称为链接链接 流水线的流水时间流水线的流水时间) )为:为: [ [((1+6+11+6+1))] + [] + [((1+7+11+7+1))] = 17 ] = 17 拍拍 则三条向量指令总执行时间为:则三条向量指令总执行时间为:[ [((1+6+11+6+1))] + [] + [((1+7+11+7+1))] +] +((N-1N-1))= N + 16 = N + 16 拍拍 3.5 向量处理机 18/435. 向量链接的一些主要要求: ( (除了要保证无向量寄存器使用冲突和无向除了要保证无向量寄存器使用冲突和无向 量功能部件使用冲突的条件之外量功能部件使用冲突的条件之外 ) )◆ 在在进进行行链链接接的的时时候候,,只只有有在在前前一一条条向向量量指指令令 的的第第一一个个结结果果元元素素送送入入结结果果向向量量寄寄存存器器的的那那 一一个个时时钟钟周周期期才才可可以以进进行行链链接接,,若若错错过过该该时时 刻就不能进行链接。

      刻就不能进行链接◆ 只有当前一条向量指令全部执行完毕,释放只有当前一条向量指令全部执行完毕,释放 相应的向量寄存器资源后才能执行后面的向相应的向量寄存器资源后才能执行后面的向 量指令 3.5 向量处理机 19/43◆ 当一条向量指令的两个源操作数分别是两条当一条向量指令的两个源操作数分别是两条 先行向量指令的结果寄存器时,要求先行的先行向量指令的结果寄存器时,要求先行的 两条向量指令产生运算结果的时间必须相等,两条向量指令产生运算结果的时间必须相等, 即要求有关向量功能部件的延迟时间相等即要求有关向量功能部件的延迟时间相等◆ 只有所有可以链接执行的向量指令的向量长只有所有可以链接执行的向量指令的向量长 度相等时,它们之间才能链接执行,否则它度相等时,它们之间才能链接执行,否则它 们之间也不能链接执行们之间也不能链接执行3.5 向量处理机 20/436. 向量循环或分段开采技术 如果如果向量的长度大于向量寄存器的长度,向量的长度大于向量寄存器的长度, 该如何处理呢?该如何处理呢? ◆ 向量循环向量循环 ::长向量循环分段处理的程序结构长向量循环分段处理的程序结构 。

      把长向量分成固定长度的段,然后循环分把长向量分成固定长度的段,然后循环分 段处理,一次循环只处理一个向量段段处理,一次循环只处理一个向量段 ◆ 这种分段向量处理技术也称为这种分段向量处理技术也称为分段开采分段开采 ◆ 将长向量循环分段处理是由系统硬件和软件控将长向量循环分段处理是由系统硬件和软件控 制完成的,对程序员透明制完成的,对程序员透明3.5 向量处理机 21/43 例例3.83.8 设设A A和和B B是长度为是长度为N N的向量,考虑在的向量,考虑在Cray-1Cray-1向量处理器上实现如下的循环操作向量处理器上实现如下的循环操作 DO 10 I = 1DO 10 I = 1,,N N 10 A(I) = 5.0 * B(I) + 1.0 10 A(I) = 5.0 * B(I) + 1.0 ◆ 当当N N ≤64 ≤64时,可以用如下指令序列实现上时,可以用如下指令序列实现上 述循环操作:述循环操作: S S1 1←5.0←5.0 ;将常数;将常数5.05.0送入标量寄存器送入标量寄存器S S1 1S S2 2←1.0←1.0 ;将常数;将常数1.01.0送入标量寄存器送入标量寄存器S S2 2VL←NVL←N ;在向量长度寄存器;在向量长度寄存器VLVL中设置向量长度中设置向量长度N N3.5 向量处理机 22/43V V0 0←B←B ;从存储器中将向量;从存储器中将向量B B读入向量寄存器读入向量寄存器V V0 0V1←S1*V0V1←S1*V0;向量;向量B B中的每个元素分别和常数中的每个元素分别和常数S1S1 相乘相乘V2←S2+V1V2←S2+V1;向量;向量V1V1中的每个元素分别和常数中的每个元素分别和常数 S2S2相加相加A←V2A←V2;将计算结果从向量寄存器;将计算结果从向量寄存器V2V2存入存存入存 储器的向量储器的向量A A3.5 向量处理机 23/43 ◆ 当当N N >>6464时,就需要进行分段开采。

      在进时,就需要进行分段开采在进 行分段开采时,首先必须根据向量长度计算行分段开采时,首先必须根据向量长度计算 出循环次数出循环次数K K :: 一般来说,一般来说,N N并不一定总是并不一定总是6464的倍数,所的倍数,所以如果以如果N N/64/64有余数,那么余数有余数,那么余数L L为:为: 3.5 向量处理机64K =NL = N -- 64×64N S S1 1←5.0←5.0 ;将常数;将常数5.05.0送入标量寄存器送入标量寄存器S S1 1S S2 2←1.0←1.0 ;将常数;将常数1.01.0送入标量寄存器送入标量寄存器S S2 2VL←LVL←L ;在向量长度寄存器;在向量长度寄存器VLVL中设置向量长度中设置向量长度L LV V0 0←B←B ;从存储器中将向量;从存储器中将向量B[0..L-1]B[0..L-1]读入向量读入向量 寄存器寄存器V V0 0V V1 1←S←S1 1*V*V0 0 ;向量;向量B B中的每个元素分别和常数中的每个元素分别和常数S S1 1相乘;相乘;V V2 2←S←S2 2+V+V1 1 ;向量;向量V V1 1中的每个元素分别和常数中的每个元素分别和常数S S2 2相加相加A←VA←V2 2 ;将计算结果从向量寄存器;将计算结果从向量寄存器V V2 2存入存储器存入存储器 的向量的向量A[0..L-1]A[0..L-1]处理余处理余数部分数部分, ,计算计算L L个元素个元素 For (I=0 to K-1) {For (I=0 to K-1) {V V0 0←B←B ;从存储器中将向量;从存储器中将向量B[L+I*64…L+I*64+63]B[L+I*64…L+I*64+63] 读入向量寄存器读入向量寄存器V V0 0V V1 1←S←S1 1*V*V0 0 ;向量;向量B B中的每个元素分别和常数中的每个元素分别和常数S S1 1相乘;相乘;V V2 2←S←S2 2+V+V1 1 ;向量;向量V V1 1中的每个元素分别和常数中的每个元素分别和常数S S2 2相加相加A←VA←V2 2 ;将计算结果;将计算结果V V2 2存入存储器的向量存入存储器的向量 A[L+I*64… L+I*64+63] A[L+I*64… L+I*64+63]} }循环循环K K次次, ,分段分段处理处理 26/43衡量向量处理机性能的衡量向量处理机性能的主要参数:主要参数:1.向量指令的处理时间 ◆ 执行一条向量长度为执行一条向量长度为n n的向量指令所需的时间为:的向量指令所需的时间为: 3.5.3 向量处理机的性能评价 Tvp = Ts + Tvf + (n-1)Tcl Ts ::向量处理单元流水线的建立时间,向量处理单元流水线的建立时间, 包括:向量起始地址的设置、计数包括:向量起始地址的设置、计数 器加器加1 1、条件转移指令执行等。

      条件转移指令执行等 3.5 向量处理机 27/43l Tvf ::向量处理单元流水线的流过时间,它向量处理单元流水线的流过时间,它 是从向量指令开始执行到得到第一个是从向量指令开始执行到得到第一个 计算结果(向量元素)所需的时间计算结果(向量元素)所需的时间l Tc ::向量处理单元流水线向量处理单元流水线““瓶颈瓶颈””段的执段的执行行 时间 ◆ 如果向量处理单元流水线不存在如果向量处理单元流水线不存在““瓶颈瓶颈””段,段,每每 段的执行时间等于一个时钟周期,则上式也可段的执行时间等于一个时钟周期,则上式也可 以写为:以写为: Tvp = [s + e + (n-1)]Tclk3.5 向量处理机 28/43l s s::向量处理单元流水线建立所需的时向量处理单元流水线建立所需的时 钟周期数;钟周期数;l e e::向量流水线流过所需的时钟周期数;向量流水线流过所需的时钟周期数;l Tclk::时钟周期时间时钟周期时间 ◆ 可以再改写为:可以再改写为: Tvp = ((Tstart + n))Tclkl Tstart ::向量功能部件启动所需的时钟向量功能部件启动所需的时钟 周期数;周期数;l n n::向量元素个数。

      向量元素个数 3.5 向量处理机 29/43◆ 对于一组向量指令,其执行时间主要取决于对于一组向量指令,其执行时间主要取决于 三个因素:三个因素:l 向量的长度向量的长度l 向量操作之间是否链接向量操作之间是否链接l 向量功能部件的冲突和数据的相关性向量功能部件的冲突和数据的相关性◆ 把几条能在同一个时钟周期内一起开始执行的把几条能在同一个时钟周期内一起开始执行的 向量指令集合称为一个向量指令集合称为一个编队 3.5 向量处理机 30/43例例3.93.9 假设每种向量功能部件只有一个,那假设每种向量功能部件只有一个,那么下面的一组向量指令能分成几个编队?么下面的一组向量指令能分成几个编队? LV V1,Rx MULTSV V2,R0,V1 LV V3,RyADDV V4,V2,V3 SV Ry,V43.5 向量处理机 31/43解:解:第一编队:第一编队:LV 第二编队:第二编队:MULTSV; LV 第三编队:第三编队:ADDV 第四编队:第四编队:SVl 一个编队内所有向量指令执行完毕所需要一个编队内所有向量指令执行完毕所需要 的时间为:的时间为: clkistartclkijstartjicTnTTnTT)(][max+=+=3.5 向量处理机 32/43 假设第假设第i i个编队中所有向量指令处理的向量个编队中所有向量指令处理的向量元素个数均为元素个数均为n n。

      ::第第i i个编队的执行时间;个编队的执行时间; ::第第i i个编队中第条指令所使用向量功能部个编队中第条指令所使用向量功能部 件的启动时钟周期数件的启动时钟周期数icTijstartTl 经过编队后的向量指令序列总的执行时间为:经过编队后的向量指令序列总的执行时间为: clkstartclkmiistartmiclkistartmiicvTmnTTmnTTnTTT)()()(111+ += =+ += =+ += == =∑ ∑∑ ∑∑ ∑= == == =3.5 向量处理机 33/43l 编队并采用分段开采技术后,向量指令序列编队并采用分段开采技术后,向量指令序列 执行所需的总的时钟周期数为:执行所需的总的时钟周期数为: MVL:向量处理机的向量寄存器长度向量处理机的向量寄存器长度 mnTTMVLnMVLMVLnnmTTMVLmTTMVLnTstartloopstartloopstartloopn++×=×-×+++×++=)() ]([)(×3.5 向量处理机 34/43例例3.103.10 在某向量处理机上执行在某向量处理机上执行DAXPYDAXPY的向量指令的向量指令序列,也即计算双精度浮点向量表达式。

      其中和序列,也即计算双精度浮点向量表达式其中和是双精度浮点向量,最初保存在外部存储器中,是双精度浮点向量,最初保存在外部存储器中,是一个双精度浮点常数,已存放在浮点寄存器是一个双精度浮点常数,已存放在浮点寄存器F0F0中计算该表达式的向量指令序列如下:中计算该表达式的向量指令序列如下: LV V1,RxMULTFV V2,F0,V1LV V3,RyADDV V4,V2,V3SV Ry,V43.5 向量处理机 35/43解:解:第一编队:第一编队:LV V1,Rx 第二编队:第二编队:MULTFV V2,F0,V1; LV V3,Ry 第三编队:第三编队:ADDV V4,V2,V3 第四编队:第四编队:SV Ry,V4 假设向量存储部件的启动需要假设向量存储部件的启动需要1212个个时钟周时钟周期,向量乘法部件的启动需要期,向量乘法部件的启动需要7 7个个时钟周期,向时钟周期,向量加法部件的启动需要量加法部件的启动需要6 6个个时钟周期,向量寄存时钟周期,向量寄存器长度器长度MVLMVL==6464,那么对,那么对n n个个向量元素进行向量元素进行DAXPYDAXPY表达式计算所需的时钟周期数为:表达式计算所需的时钟周期数为: 3.5 向量处理机 36/43 如如果果考考虑虑采采用用向向量量链链接接技技术术,,那那么么DAXPYDAXPY的的向向量指令序列可以编队为:量指令序列可以编队为: 第一编队:第一编队:LV V1,Rx; MULTFV V2,F0,V1 第二编队:第二编队:LV V3,Ry; ADDV V4,V2,V3 第三编队:第三编队:SV Ry,V4nnnnmnTTMVLnTstartloopn457644)126121215(64)(+×=+++++×=++×=3.5 向量处理机 37/43第一编队启动需要第一编队启动需要12+7=1912+7=19个时钟周期;个时钟周期;第二编队启动需要第二编队启动需要12+6=1812+6=18个时钟周期;个时钟周期;第三编队启动仍然需要第三编队启动仍然需要1212个个时钟周期。

      时钟周期 采用链接技术后,对采用链接技术后,对n n个向量元素进行个向量元素进行DAXPYDAXPY表表达式计算所需的时钟周期数为:达式计算所需的时钟周期数为: nnnnmnTTMVLnTstartloopn364643)12181915(64)(+=++++=++=×3.5 向量处理机 38/432. 向量处理机的峰值性能R R R 表示当向量长度为无穷大时,向量处理机表示当向量长度为无穷大时,向量处理机 的最高性能,也称为的最高性能,也称为峰值性能峰值性能 向量处理机的峰值性能可以表示为:向量处理机的峰值性能可以表示为: 的时钟周期数的时钟周期数向量指令序列执行所需向量指令序列执行所需时钟频率时钟频率算次数算次数向量指令序列中浮点运向量指令序列中浮点运× ×=￿∞￿￿∞nRlim 对于对于例题例题3.103.10向量指令序列中的操作而言,向量指令序列中的操作而言,只有只有“MULTFV V2,F0,V1”“MULTFV V2,F0,V1”和和“ADDV “ADDV V4,V2,V3”V4,V2,V3”两条浮点操作向量指令。

      假设该向两条浮点操作向量指令假设该向量处理机的时钟频率为量处理机的时钟频率为200MHz200MHz,,那么:那么: 3.5 向量处理机 39/43的时钟周期数的时钟周期数向量指令序列执行所需向量指令序列执行所需时钟频率时钟频率算次数算次数向量指令序列中浮点运向量指令序列中浮点运× ×=￿∞￿￿∞nRlim 2 2× × n n × 200× 200=￿∞nlimMFLOPSn n6464 × ×6464++ 3 3 n nMFLOPS 2 2× × n n × 200× 200=￿∞nlim4 4 n nMFLOPS= 100100MFLOPS3.5 向量处理机 40/433. 半性能向量长度n1/2 向量处理机的运行性能达到其峰值性能的向量处理机的运行性能达到其峰值性能的 一半时所必须满足的向量长度一半时所必须满足的向量长度 它是评价向量功能部件的流水线建立时间它是评价向量功能部件的流水线建立时间 对向量处理机性能影响的重要参数对向量处理机性能影响的重要参数 对于对于上面的例子上面的例子,由于该向量处理机的峰,由于该向量处理机的峰 值性能值性能R R∞∞==100 MFLOPS100 MFLOPS,, 所以根据半性能向量长度得定义有:所以根据半性能向量长度得定义有:3.5 向量处理机 41/43假设假设 ≤64≤64,那么有:,那么有: n1/264++3n1/2 ==2×n1/2 ×20050== 8n1/2 5n1/2 == 64,,n1/2 ==12.8n1/2 == 132×n1/2 ×200×64++3n1/2n1/264== 503.5 向量处理机 42/434. 向量长度临界值nv 对于某一计算任务而言,向量方式的处理速对于某一计算任务而言,向量方式的处理速 度优于标量串行方式处理速度时所需的最小向量度优于标量串行方式处理速度时所需的最小向量 长度。

      长度 对于上述对于上述DAXPYDAXPY的的例子例子,假设,假设n nv v<<6464,在标,在标 量串行工作方式下实现量串行工作方式下实现DAXPYDAXPY循环的开销为循环的开销为1010个个 时钟周期那么在标量串行方式下,计算时钟周期那么在标量串行方式下,计算DAXPYDAXPY 循环所需要的时钟周期数为:循环所需要的时钟周期数为: 3.5 向量处理机 43/43Ts = ( 10+12+12+7+6+12 )×nv = 59nv 在向量方式下,计算在向量方式下,计算DAXPYDAXPY循环所需要的循环所需要的时钟周期数为:时钟周期数为: Tv = 64+3nv 根据向量长度临界值的定义,有:根据向量长度临界值的定义,有: Tv = Ts 64+3nv = 59nv3.5 向量处理机=6456= 2nv  结束语结束语谢谢大家聆听!!!谢谢大家聆听!!!44 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.