版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.6向量流水技术(第3章续)3/8/20231向量处理机是具有向量数据表示和向量指令系统的处理机。向量处理机是解决数值计算问题的一种高性能计算机。向量处理机属大型或巨型机,也可以用微机加一台向量协处理器组成。向量处理机一般都接受流水线结构,通常有多条并行工作的流水线。必需把要解决的问题转化为向量运算,才能发挥向量处理机的效率。3/8/202323.6.1向量流水机的基本系统结构1.标量流水线的局限性处理机不具有向量数据表示,仅对标量数据进行流水处理。向量的处理通过标量循环程序完成。所以,(1)流水线工作的时钟周期不行能取得很短。(2)取指令及译码的速率受限。即在一个时钟周期内最多只能启动一条指令,通常称为Flynn瓶颈。2.向量流水线处理机具有向量数据表示,可通过向量指令对向量中的各元素进行流水处理。3/8/202333.6.1.1向量流水处理的主要特点(1)在向量操作中,每个当前结果向量元素的计算与以前结果向量元素的计算是相互独立的,有利于发挥流水线的性能,允许向量流水线有较深的深度。(2)一条向量指令相当于一个标量循环,可降低对指令访问带宽的要求,也消退了由循环转移可能引起的限制相关。(3)若向量指令所要访问的向量元素均相邻,则可利用多模块、交叉存取的方法加快向量元素的存取速度,削减访存等待时间的开销。3/8/20234在对相同数量的数据项进行操作时,向量操作要比一串标量指令操作更快。向量流水机可使访存和有效地址计算流水化。高档的向量机允很多个向量操作同时进行,从而可开发对不同元素进行多个向量操作的并行性。3/8/202353.6.1.2向量机的基本系统结构向量机系统结构的分类①存储器—存储器工作方式向量机向量操作的源向量和目的向量都取自或存放到主存中。②寄存器—寄存器工作方式向量机向量操作的源向量和目的向量都取自或存放到向量寄存器中。3/8/20236典型的向量机基本系统结构向量机主要由标量流水部件和向量流水部件组成,包含了向量功能部件、向量取存部件、向量寄存器或向量缓冲部件、标量寄存器、标量处理部件以及向量限制器等部件。3/8/20237向量处理机的典型结构图3/8/20238例:一个典型向量求解问题:Y=a×X+Y其中X和Y为向量,初始值存放在存储器中,a为标量。接受双精度运算时的算法:a乘X后再加Y。3/8/20239若用标量机运算,须要用标量指令对向量中的每个元素进行一次乘、加和存储操作,并且为了实现循环操作,每次必须要指明对X和Y中元素位置的下标变量进行增量,并使操作次数每次减1,以判别循环是否结束。设X和Y向量的首地址分别存放在Rx和Ry中,当向量元素长度为64时,用标量机处理的循环程序段为:3/8/202310LDF0,a;标量a装入F0ADDIR4,Rx,#512;将向量元素的末地址装
;入R4中LOOP:LDF2,0(Rx);取向量元素X(i)MULDF2,F0,F2;a与X(i)相乘LDF4,0(Ry);取向量元素Y(i)ADDDF4,F2,F4;aX(i)与Y(i)相加SD0(Ry),F4;存结果向量元素ADDIRx,Rx,#8;增量向量元素X下标ADDIRy,Ry,#8;增量向量元素Y下标SUBR20,R4,Rx;R4-Rx→R20,计算是
;否到达限界值BNZR20,LOOP;若循环未结束,转LOOP3/8/202311用向量机完成同样操作:LDF0,a;标量a装入F0LVV1,Rx;装入向量X,LV为向量取指令MULTVV2,F0,V1;向量X与标量a相乘LVV3,Ry;装入向量YADDVV4,V2,V3;向量加aX+YSVRy,V4;存结果向量,SV为向量存指令3/8/202312因为向量指令是对64个元素进行操作,且没有对元素下标变量增量和判循环是否结束的指令,所以向量机只需执行6条指令即可完成操作,从而大大降低了对指令带宽的要求。3/8/202313标量机与向量机计算Y=a×X+Y的比较标量机向量机编程方式采用标量指令,循环程序采用向量指令指令条数9×64+2=5786联锁频率高低对指令带宽的要求高不高3/8/2023143.6.1.3向量启动时间和启动率一条向量指令执行所需时间Tvp:Tvp=Tst+n×IrTst:向量流水线的启动时间,包括流水线固有的延迟时间,用于设置为完成向量操作所需的相应参数(如向量长度等)。n:向量中元素长度Ir:启动率,表示向量流水线填满后,每流出一个结果所需时间。3/8/202315例:一个向量乘法流水部件的启动时间为l0个时钟周期。启动后的启动率为1。对于长度为64的向量乘法,产生每个向量元素结果所需时钟周期数为:对于运行速度较慢的向量流水操作,启动时间的大小对它的影响不大,但对于启动率为1的高速向量流水操作,启动时间的增加就将使性能受到较大影响。3/8/202316寄存器—寄存器工作方式的影响因素⑴向量功能部件流水线的深度流水线的启动时间主要取决于功能部件流水线的深度。因为这是获得第一个流水结果所需的时间。⑵向量功能部件接收一个操作数的频率流水线的启动率主要取决于相应的向量功能部件接收一个操作数的频率。当流水线处于充分流水状态时,就能在每个时钟周期起先时马上对一个新操作数进行运算,从而可使启动率达到1。3/8/2023173.6.2向量操作长度限制和向量访问步长1.向量操作长度限制⑴实际程序中的向量长度往往并不与向量机的自然向量长度相同。自然向量长度:向量寄存器型的向量机中,每个向量寄存器可存放的向量元素个数。3/8/202318⑵程序中一个具体的向量操作长度在编译时常常是未知的,因为在一个代码段中可能须要不同的向量长度。例如求解单精度向量循环SAXPY的代码段为:for(i=0;i<n;i++)Y[i]=a*X[i]+Y[i];3/8/202319可见向量操作长度依靠于n值,而这个n值通常在编译时无法知道,往往要在运行时才可确定,而且这个长度也可能是过程的参数,因此在执行时很易变更。解决方法:接受一个向量长度寄存器,存放某一代码段操作的长度,由它来限制向量操作的长度以及向量的装载和存储。3/8/202320在向量长度寄存器中存放的向量长度值不能超过向量寄存器的长度(MVL)。向量长度小于向量寄存器长度时,均可放入向量寄存器。向量长度大于向量寄存器长度时,需将向量长度按向量寄存器长度分段,分段后的向量长度即是每次向量操作的长度,它必需等于或小于向量寄存器长度。3/8/202321接受分段技术后,SAXPY循环可写成如下形式:low=0;VL=n%MVL;*找出零头长度值for(j=0;j<n/MVL;j++){*外循环for(i=low;i<low+VL;i++)*以长度VL操作Y[i]=a*X[i]+Y[i];*主要操作low=low+VL;*下一向量的起先VL=MVL;*将长度值复原成MVL};经分段处理后,第一段长度为nmodMVL,而以后各段的长度均为MVL。3/8/2023222.向量访问步长存储器是一维线性空间,当须要在其中存放二维或多维数组时,必需将其各元素映射到一维线性空间中。以行为主的存储方式:当按行进行元素访问时,要访问的元素的地址是相邻连续的。当按列进行元素访问时,要访问的元素的地址是不连续的,须要接受向量跨步方式进行访问。3/8/202323例:元素为100×100的A=B×C矩阵乘法的程序段为:for(i=0;i<100;i++)for(j=0;j<100;j++){A[i,j]=0.0;for(k=0;k<100;k++)A[i,j]=A[i,j]+B[i,k]*C[k,j];}在执行内循环k时,若以行为主存放矩阵元素,则B矩阵中元素是连续存放的,C矩阵中元素是以跨步方式进行访问的,相邻元素的间距为100。3/8/202324支持完全的一维数据显式访问的向量机是指能支持对向量跨步访问的向量机。当向量由存储器装入向量寄存器后,原来在存储器中间隔存放的元素在向量寄存器中便成为逻辑上相连续的。能支持完全的一维数据显式访问的向量机能以行、列,甚至沿对角线访问这些方向上的向量元素。3/8/202325CRAY—1巨型机属于能支持完全的一维数据显式访问的向量机。CYBER—205巨型机接受存储器—存储器工作方式,它不支持完全的一维数据显式访问,只能以连续方式访存。假如要进行跨步访问运算,则必需先将这些在存储器中不连续存放的向量元素,先经过运算部件进行依次排序,然后再送入存储器使它们相邻连续存放,最终再从存储器中连续取出进行运算,明显这将大大降低运算性能。3/8/202326在向量机中,向量的取、存操作除了须要说明起始地址外,还应说明访问元素的跨步。元素的跨步须要存放在一个寄存器中,并在向量操作过程中始终保持此参数值。向量机中通常接受一个专用地址流部件来生成跨步向量元素访问。3/8/202327支持二维数据显式访问
除了支持一维数据显式访问外,还可干脆支持对子矩阵的访问,上、下三角矩阵元素的访问,平行四边行图形元素的访问等。支持二维数据显式访问须要更多的访问参数,如每组序列长度,组间跨步等参数。3/8/202328向量机的访存冲突向量机为了增加访存速率,大都接受低地址位的多体交叉存储器。当向量机支持跨步长度访问时,就可能出现对同一存储体的访问间隔时间小于访存周期时间,使得上一次对某一存储体的访问还未结束前,又对同一存储体提出了新的访问要求,从而将加剧访存冲突。3/8/202329例:设有16个存储体,访问时间为12个时钟周期,共要访问64个向量元素。对于步长为1的访问,将须要12+64=76个时钟周期。但当步长为16的倍数时,由于每次对存储器访问将与前一次访问相冲突,因此,每个元素访问都须要12个周期,这样64个元素访问就须要64×12=768个时钟周期。(注:交叉存储体流水访问)3/8/202330防止访存冲突的方法⑴使跨步和存储体数互为质数如使存储体为17而跨步步长为16。⑵增加存储体数目如对于64个存储体,步长为32的访问,若每隔一次访问就会发生访问冲突,而当访问步长为8时,每隔八次访问才会发生访问冲突。当向量机中有多条存储器流水线时,就须要有更多存储体以防止发生冲突,因此,当代的向量巨型机中,存储体数都大于64,有的甚至多达512个。3/8/2023313.6.3向量处理方法向量机中对向量的加工方式的要求:尽量避开出现数据相关和尽量削减对向量操作功能的转换。3/8/2023321.横向加工方式方式:逐个求出结果向量的各个元素。例:设A、B、C和D都是长度为N的向量,需进行向量运算D=A×(B+C),接受横向加工方式时是按向量依次计算的。d1=a1×(b1+c1)d2=a2×(b2+c2)…dN=aN×(bN+cN)3/8/202333处理过程:逐个求D中的N个重量,先进行相加k←b1+c1,其中k为暂存单元,然后相乘d1←k×a1。这样,在每个向量元素的加乘运算中,都会发生数据相关的状况,而且当接受静态流水线时,还要进行2次乘和加功能的转换。这样共会出现N次相关和2N次功能转换。因此,这种横向加工方式只适合于标量循环算法,不适合于向量流水处理。3/8/2023342.纵向(垂直)加工方式纵向(垂直)加工方式:先对全部元素执行一种相同的运算,再对全部元素执行另一种相同的运算。例如上例中,先纵向加工全部B和C向量中元素对的相加操作,中间结果暂存到k1~kN中,然后再纵向加工全部对应元素的乘法操作。3/8/202335先算:k1=b1+c1k2=b2+c2…kN=bN+cN再算:d1=a1×k1d2=a2×k2…dN=aN×kN3/8/202336用向量指令形式表示时为:K=B+CD=K×A此时,在两条向量指令间仅有一次数据相关,流水线功能的切换只需一次。3/8/202337纵向加工方式的特点⑴纵向加工方式可获得较高的吞吐率。由于元素个数N不受限制,且须要有一个暂存中间向量K(由k1~kN个重量组成),所以纵向加工方式适合于存储器—存储器工作方式的向量机。3/8/202338⑵纵向加工方式对主存带宽要求高。为减轻主存的负担,可在主存与流水部件之间设置缓冲器。主存先行读数缓冲器后行写数缓冲器流水功能部件3/8/2023393.纵横向加工方式纵横向加工方式:对向量元素分组,每个组内接受纵向加工方式,组之间接受横向加工方式。纵横向加工方式适合于接受寄存器—寄存器方式工作的向量机。3/8/202340因为向量寄存器的长度有限。当向量长度超过向量寄存器可表示的最大限度n时,就必需分组加以处理。设向量长度为N,则:N=s×n+r其中n≤N,r<n,n、s、r均为正整数,s为组数,r为余数(余下的部分也作为一组处理)。3/8/202341第一组计算:k1~n=b1~n+c1~nd1~n=a1~n×k1~n其次组计算:kn+1~2n=bn+1~2n+cn+1~2ndn+1~2n=an+1~2n×kn+1~2n…每组内各有两条向量指令,各组内有一次数据相关,需2次流水功能切换,需n个中间向量寄存器单元。3/8/202342接受纵横向加工方式,组内的元素计算均在寄存器中完成,可大大削减访存次数,降低了对主存带宽的要求,削减了因存储器冲突而引起的等待。提高了处理速度。3/8/2023433.6.4增加向量处理性能的方法3.6.4.1多功能部件的并行操作向量机接受独立的多个功能部件并行工作。并行约束条件①不存在向量寄存器运用冲突。向量寄存器运用冲突指并行工作的向量指令中的源向量或结果向量运用相同的向量寄存器。②不存在功能部件运用冲突。功能部件冲突是指同一功能部件为多条并行工作向量指令所运用。3/8/202344例:①V0←V1+V2无冲突状况,可以并行处理V5←V3×V4②V0←V1+V2运算时发生向量寄存器运用V3←V1×V4冲突,不行以并行处理两条指令不能同时执行,必需在第一条指令执行完,将V1释放后,其次条指令方可起先执行。这是因为两条指令中运用V1时的首元素下标可能不同,向量长度也可能不同,从而难以由V1同时向两条指令供应所需的源向量。3/8/202345③V3←V1+V2运算时发生功能部件冲突,V6←V4+V5不行以并行处理在志向状况下,若有m个部件并行工作,可使运算速度提高m倍,但事实上由于程序本身并行度有限和可能发生上述的冲突状况,因此能完全并行工作的功能部件数总是小于m的。3/8/2023461.Cray-1向量机Cray-1系统是美国Cray公司于1976年供应的产品。它是一台运算速度达亿次/秒以上的巨型机。速度这么高的一个缘由是它接受了层次结构的存储器系统。向量处理实例3/8/202347Cray-1处理机结构图8个向量寄存器(V)8×64×64主存
储器8MB64个
个体12个流水线结构的运算部件缓冲寄存器(T)64×64标量寄存器(S)8×64缓冲寄存器(B)64×24地址寄存器(A)8×24指令缓冲寄存器256×163/8/2023483/8/2023493/8/202350(1)主存与流水结构运算器之间有一级或两级的中间存储器。对于向量运算来说,中间存储器是V寄存器,它是向量寄存器,它由8个64个重量的寄存器组成,每个重量为一个64位寄存器。向量指令能对向量寄存器的重量进行连续的重复处理。3/8/202351(2)执行向量指令时,流水结构运算器在一个时钟周期内从两个V寄存器得到一对操作数,完成某种操作后用一个时钟周期的时间把结果送入另一个V寄存器。3/8/202352(3)主存储器与V寄存器之间的数据传送以成组传送的方式进行。向量流水线是从向量寄存器而不是从主存储器取数据。同样,从流水线输出的结果向量也是送回向量寄存器。3/8/202353CRAY-I指令3/8/202354Cray-1处理机的4类向量指令第1类向量指令3/8/202355第2类向量指令3/8/202356第3类向量指令3/8/202357第4类向量指令3/8/202358第一类指令从一个或二个向量寄存器取得操作数并把结果回送到另一个向量寄存器中去。其次类向量指令从Si寄存器取得一个标量操作数,又从Vk寄存器取得一个向量操作数,并且把向量结果回送给另一个向量寄存器Vi。第三类以及第四类指令分别是把数据从存储器传送到一个向量寄存器中以及反过来把数据从向量寄存器传送到存储器中。存储器和工作寄存器之间的数据通路可以看成是具有固定时间延迟的数据传送流水线。3/8/2023592.YH-1向量机(银河-1机)83年底交付运用(参见国防科大的李勇编写的教材)(1)系统组成3/8/202360(2)主要性能①字长64位,4种数据类型浮点:1+15+48长整:64短整:24逻辑:64,128②指令格式单字长g(4)+h(3)+i(3)+j(3)+k(3)算术、逻辑指令,gh-OP码,ijk-向量Regs双字长g(4)+h(3)+i(3)+j(3)+k(3)+m(16)标量访存指令,g-OP码,h-变址寄存器Ai-结果或源寄存器,jkm22位的形式地址主存地址(A)+jkm3/8/202361③中心处理机主频20MHz,每拍50ns④运算速度向量运算>75%时,>1亿次/秒⑤主存系统模31体交叉访问,存储周期400ns⑥I/O通道20个,接外围系统3/8/202362(3)中心处理机结构三部分组成:Regs、流水部件和指令缓冲部件①操作寄存器和后援寄存器两组向量寄存器:(8x64x64b)x2V,V’向量长度寄存器:VL(7b,≤128,即最多可传64对向量元素)向量限制寄存器VM(64b),VM’(64b)(屏蔽寄存器,用于向量的测试、归并、压缩和还原)标量寄存器S(8x64b)和标量后援寄存器T(64x64b)M地址寄存器A(8x24b)和地址后援寄存器B(64x64b)3/8/202363②功能部件18个独立的专用功能部件一组地址部件-24b的短整运算AA(1),AM(3)一组标量部件-64b整数和逻辑运算对S运算SA(1),SS左右移位(1),SLg(0),SP计数(1,2)二组浮点部件-向量、标量运算(分别与V,V’接)FA(5),FM(6),FR倒数近似值(6)二组向量部件-64位的非浮点数向量运算(V,V’)VA(1),VS左右移位(3,2),VLg(1)3/8/202364VV’寄存器与功能部件的运用向量功能部件,浮点功能部件VkVjVi向量功能部件,浮点功能部件V’kV’jV’i3/8/202365③指令限制部件程序字计数器P(24b)指令缓冲站IB(4个站x16x16b)指令字缓冲寄存器BIP(16b)下一指令字寄存器NIP(16b)现行指令字寄存器CIP(16b)低部指令字寄存器LIP(16b)指令流出限制部件IC4类向量指令格式与Cray-1相像,但访存流水m=163/8/202366向量与标量性能的平衡实际的应用问题中通常既有向量计算又有标量计算,而且两类计算有确定的比例向量平衡点(vectorbalancepoint):为了使向量硬件设备和标量硬件设备的利用率相等,一个程序中向量代码所占的百分比。关键问题是:希望向量硬件和标量硬件都能够充分利用,不要空闲。3/8/202367例如:一个系统的向量运算速度为90Mflops,标量运算速度为10Mfolps。假如程序的90%是向量运算,10%是标量运算。则向量平衡点为0.9。硬件利用率最高。向量处理机的向量平衡点必需与用户程序的向量化程度相匹配。IBM向量计算机的设计思想与上述方法不同,它维持较低的向量与标量比例,定在3~5的范围之间。这种做法能够适应通用应用问题对标量和向量处理要求。3/8/202368机器型号FujitsuVP400CrayISCray2SCrayX-MPCrayY-MPHitachiS820NECSX2向量性能
Mflops标量性能
Mflops向量平衡点85.09.80.90151.511.20.93143.313.10.92201.617.00.92737.317.80.98424.29.50.98207.16.60.973/8/2023693.6.4.2链接技术链接特性:当相邻两条指令存在先写后读相关时,只要前一条指令的结果向量的第一个元素产生并存入结果向量寄存器,就可以将它作为下一条指令的源操作数,启动下一条指令的运算,从而将两个或两个以上的功能部件链接起来。3/8/202370链接技术:当从一个流水线部件得到的结果干脆送入另一个功能流水线的操作数寄存器时所发生的连接过程。换句话说,中间结果不必送回存储器或寄存器,并在向量操作完成以前就运用它。3/8/202371在寄存器—寄存器系统结构中,全部的向量操作数在把它们送入流水线之前,都要预先装入向量寄存器中。中间和最终结果(流水线输出)在把它们存入主存储器以前,也要把它们装入向量寄存器中。3/8/202372链接技术是利用向量指令间存在的先写后读的数据相关性来加快向量指令序列执行速度的技术。链接技术的实质是标量流水定向传送方法在向量寄存器中的应用。3/8/202373当发出向量指令时,所要求的功能流水线和操作数寄存器便要预定若干个时钟周期,其值取决于向量长度。运用同一组功能部件或操作数寄存器的后继向量指令在预定被释放之前是不能发出的。两个或更多的向量指令假如是不相关的,便可以同时运用不同功能流水线和不同的向量寄存器。这种并发的指令能以相继的时钟周期发出。3/8/202374结果寄存器可能成为后继指令的操作数寄存器。在Cray1中,这种技术称为两条流水线的链接(chaining)。链接是从流水线的内部定向概念发展而来的。链接允许当第一个结果刚刚可用时就立刻发出相继的操作。当然,所须要的功能流水线和操作数寄存器必需恰当地预定,否则,链接操作就不得不挂起直到所须要的资源变为可用为止。3/8/202375功能部件和操作数寄存器的预定(冲突)3/8/202376例:向量加和向量乘的操作ADDVV1,V2,V3;V1←V2+V3MULTVV4,V1,V5;V4←V1×V5这两条指令间对V1向量寄存器存在先写后读相关,假如使向量寄存器V1在同一时钟周期内,既接收一个功能部件送来的运算结果,又可把这一结果作为下一个向量指令运算所需的源操作数送给另一个功能部件,就可使这两个部件链接起来进行操作。通常把这种链接称为超级向量操作。当链接进入充分流水操作状态后,在一个时钟周期内就可同时获得两个操作结果。3/8/202377例:以下4条向量指令序列链接在一起执行一种复合的功能:
V0←存储器;读存储器
V2←V0+V1;向量加
V3←V2>A3;右移
V5←V3∧V4;求逻辑积
下图给出的图解说明表示把存储器读流水线、向量加流水线、向量移位流水线和向量逻辑乘流水线链接成一个较长的流水线。寄存器A3的内容确定移位计数值。3/8/2023783/8/202379时间特征3/8/2023803/8/202381例:要进行向量运算D=A×(B+C)设向量长度≤64,且B和C已由存储器取至V0和V1,则完成运算的向量指令为:LDV3,A;V3←AADDVV2,V0,V1;V2←V0+V1MULTVV4,V2,V3;V4←V2×V3第一、二条指令因既无向量寄存器运用冲突,也无功能部件运用冲突,因而可并行执行。第三条指令与第一、二条指令均存在先写后读相关冲突,因而可将第三条指令与第一、二条指令链接执行。3/8/2023823/8/202383接受并行和链接加速技术后,当被加工向量长度为N时,执行所需时间为:(1+6+1)+(1+7+1)+(N-1)=17+N-1
=N+16拍若这三条指令全部用串行方法则所需时间为:[(1+6+1)+N-1]+[(1+6+1)+N-1]+[(1+7+1)+N-1]=3N+22拍若前两条指令并行执行,第三条指令串行执行,则所需时间为:[(1+6+1)+N-1]+[(1+7+1)+N-1]
=2N+15拍留意:由于同步的要求,数据进入和流出每个功能部件,包括访存都须要1拍时间。3/8/202384实现链接的时间上的要求:①只有当前一指令的第一个结果重量送入结果向量寄存器的那一个时钟周期方可链接,若错过该时刻就无法进行链接,只有等前一向量指令全部执行完毕,释放向量寄存器资源后才能执行后面指令。在上面的例子中,当一条向量指令的两个源操作数分别是两条先行指令的结果寄存器时,要求先行的两条指令产生运算结果的时间必需相等,即要求有关功能部件的延迟时间相等(如上例中的访存和浮点加功能部件延时均为6个时间单位)。②进行链接的向量指令的向量长度必需相等,否则就不行能链接。3/8/202385例:在CRAY-1机中,浮点功能部件中各功能段的执行时间为:浮点加法:6拍;浮点乘法:7拍;求倒数:14拍;存储器存/取:6拍;启动功能部件:1拍;打入结果:1拍。分析任务数为50时,下列指令段的完成时间:①V0←存储器②V3←V1+V2③V4←V0×V3④V0←V4+V53/8/202386分析:①与②无功能和寄存器冲突,可并行。②与③先写后读数据相关,可以链接。④与②有功能冲突,必需在①与②执行完后,才能启动④,即④只能串行工作。①V0←存储器②V3←V1+V2③V4←V0×V3④V0←V4+V5执行时间:(1+6+1)+(1+7+1)+(50-1)+(1+6+1)+(50-1)=123拍并行链接串行3/8/202387例:分析在CRAY-1机中,任务数为50时,下列指令段的完成时间。①V0←存储器②V1←V2+V3③V6←V4×V5分析:三条指令均无功能冲突,可接受全并行的方式,指令段的完成时间为:(1+7+1)+(50-1)=58拍3/8/202388例:分析在CRAY-1机中,任务数为50时,下列指令段的完成时间,设浮点求倒数的执行时间为14拍。①V2←V0×V1②V3←存储器③V4←V2+V3④V5←1/V4分析:①与②无功能和寄存器冲突,可并行。①与②节拍不一样,③不能与①、②链接,只能串行执行。③与④先写后读数据相关,可以链接。执行时间:(1+7+1)+(50-1)+(1+6+1)+(1+14+1)+(50-1)=131拍并行链接串行3/8/2023893.6.5向量处理性能的评估参数和方法衡量向量处理机的性能主要是向量指令的处理时间Tvp、向量长度为无穷大时的向量处理机的最大性能R∞、半性能向量长度n1/2和向量方式的工作速度优于标量串行方式工作时所需的向量长度临界值nv等。下面探讨这些参数。3/8/202390在向量处理机上,执行一条向量长度为n的向量指令的时间Tvp可表示为:Tvp=Ts+Tvf+(n-1)Tc
其中,Ts为向量流水线的建立时间,它包括向量起始地址的设置、计数器加1,条件转移指令执行等。Tvf为向量流水线的流过时间,它是一条指令从起先译码到流过流水线得到第一个结果的时间。Tc为流水线“瓶颈”段的执行时间。1.向量指令的处理时间Tvp
3/8/202391假如不存在“瓶颈”流水段,每段的执行时间都等于一个时钟周期,则上式也可以写成:Tvp=[s+e+(n-1)]τ其中,s为向量流水线建立时间所需的时钟周期数,e为向量流水线流过时间所需的时钟周期数,n为向量长度,τ为时钟周期。3/8/202392向量编队一组向量操作的执行时间主要取决于下面三个因素:向量的长度、向量操作之间是否存在流水功能部件的冲突和数据的相关性。1)能在一个时钟周期内一起起先执行的向量指令称为一个编队。(确定不存在流水功能部件的冲突和数据的相关性—RAW除外)2)有冲突和相关的指令分在不同的编队。3)一个编队的运行时间为队中耗时最长的指令运行时间3/8/202393
例3.6.5.1:假设每种流水功能部件只有一个,则下面一组向量操作能分成4个编队:LVV1,Rx;取向量xMULTSVV2,F0,V1;向量和标量相乘LVV3,Ry;取向量YADDVV4,V2,V3;加法SVRy,V4;存结果第一条指令LV为第一个编队。MULTSV指令因为与第一条LV指令相关,它们不能在同一个编队中。3/8/202394MULTSV指令和其次条LV指令之间不存在功能部件冲突和数据相关,所以这两条指令为其次个编队。ADDV指令与其次条LV指令数据相关,所以ADD为第三个编队。SV指令与ADDV指令数据相关,所以它为第四个编队。所以这一组向量操作划分为以下四个编队:1.LV2.MULTSVLV3.ADDV4.SV3/8/202395一个编队计算一个元素的执行时间记为Tchime,它与向量长度无关(≈1拍)。因此,一组由m个编队组成的向量操作的执行时间为m个Tchime。假如向量长度为n,则整个程序的向量操作的执行时间为m×n个时钟周期。上述例子中,因为整个程序分为4个编队,所以要花费4个Tchime。3/8/202396
除了上述向量操作的真正执行时间外,还须要考虑向量的启动时间Tstart,Tstart是向量操作流水线的延迟,它等于流水功能部件的流水段数,也即流水线的深度。它和上述的向量流水线的流过时间几乎相等。3/8/202397例3.6.5.2:假设一台向量处理机中功能部件的启动开销为:取数和存数部件为12个时钟周期、乘法部件为7个时钟周期、加法部件为6个时钟周期。则例6.5.1中每个编队的起先时间、获得第一个结果元素的时间和获得最终一个结果元素的时间如下表所示。(未考虑链接状况)3/8/202398假如向量长度n为64,则得到一个结果元素的平均时间为:4+(41/64)=4.64个时钟周期。编队开始t第1个结果t最后1个结果t1.LV01212+(n-1)2.MULTSVLV11+n+112+n+1224+n+(n-1)3.ADDV24+2n24+2n+630+2n+(n-1)4.SV30+3n30+3n+1242+3n+(n-1)3/8/202399程序段的执行时间考虑向量长度大于向量寄存器长度时,则须要分段开采。分段开采的开销由执行标量代码的开销Tloop和每个编队的向量启动开销Tstart组成。所以向量长度为n的向量操作(程序段)的整个执行时间为:3/8/2023100为了简洁起见,我们把Tloop看作是一个常数,Cray1机器的Tloop约等于15。
下面我们用例子来说明Tn和Tstart的计算。3/8/2023101例3.6.5.3:在一台向量处理机上实现A=B×s操作,其中A和B是长度为200的向量,s是一个标量。向量寄存器长度为64。各功能部件的启动时间见本PPT50。求总的执行时间。
3/8/2023102解:因为向量长度超过了向量寄存器的长度,所以要实行分段开采方法。每次循环主要由下面3条向量指令组成:LVV1,RbMULTSVV2,V1,F0(s已预存入F0)SVRa,V23条指令相关,m=3;n=200n/64=4(取整,零头算1组)3/8/2023103Tn=4(15+Tstart)+3•200•1=660+4•Tstart又3组串行工作,Tstart=7(load)+7(mul)+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年临时员工派遣协议范本
- 2025年借壳上市交易合作协议
- 2025年仓储干果坚果保管合同
- 2025年售房合同解除协议
- 2025年死因赠与合同的咨询平台
- 2025年食堂食材采购与社区支持农业合同范本大全3篇
- 2025版生物质木屑颗粒燃料买卖合同4篇
- 二零二五年度不动产抵押担保物业管理合同样本3篇
- 2025版微股东众筹入股协议书-新能源开发项目专用3篇
- 二零二五年度科研实验室租赁合同租金调整与设备配置补充协议
- 《中华民族多元一体格局》
- 2023年四川省绵阳市中考数学试卷
- 南安市第三次全国文物普查不可移动文物-各乡镇、街道分布情况登记清单(表五)
- 选煤厂安全知识培训课件
- 项目前期选址分析报告
- 急性肺栓塞抢救流程
- 《形象价值百万》课件
- 红色文化教育国内外研究现状范文十
- 中医基础理论-肝
- 小学外来人员出入校门登记表
- 《土地利用规划学》完整课件
评论
0/150
提交评论