第六章向量处理机
1.在大型数组的处理中常常包含向量计算,按照数组中各计算相继的次序,我们可以把向量处理方法分为哪三种类型?
横向处理方式,纵向处理方式,纵横处理方式
横向处理方式:向量计算是按行的方式从左至右横向的进行 纵向处理方式:向量计算是按列的方式自上而下纵向的进行 纵横处理方式:横向处理和纵向处理相结合的方式 2.解释下列与向量处理有关的术语。
(1)向量和标量的平衡点:为了使向量硬件设备和标量设备的利用率相等,一个程序中向量代码所占的百分比
(2)用户代码的向量化比值:用户代码可向量化的部分占全部的比重
(3)向量化编译器或量化器:将标量运算进行向量化或者将向量运算进行适当的修改使之能够进入向量处理进行向量处理的编译器
3.简要叙述提高向量处理机性能的常用技术 (1)链接技术
(2)向量循环或分段开采技术 (3)向量递归技术
(4)稀疏矩阵的处理技术
4.下述的几个需要解决的问题中,那个是向量处理机所最需要关心的? A.计算机指令的优化技术
B.设计满足运算器带宽要求的存储器
C.如何提高存储器的利用率,增加存储器系统的容量 D.纵横处理方式的划分问题
5.假设系统在向量模式下面能够达到9Mflops,在标量模式下能够达到1Mflops速度,而代码的90%是向量运算,10%是标量运算,这样花在两种模式上的计算时间相等。那么向量平衡点是:
A.0.1 B.0.9 一个程序中向量代码所占的百分比 C.0.5 D.以上都不是 6.查看下面三条指令: V3←A V2←V0+V1 V4←V2*V3
假设向量长度小于64,且前后其他的指令均没有相关性,数据进入和流出每个功能部件,包括访问存储器都需要一拍的时间,假设向量的长度为N。三条指令全部采用串行的方法,那么执行的时间是:
A.3N+20 B.3N+21
C.3N+22 D.3N+23
7.下面一组向量操作能分成几个编队?假设每种流水功能部件只有一个。 LV V1,Rx ;取向量 MULTSV V2,F0,V1 ;向量和标量相乘 LV V3,Ry ;取向量Y
ADDV V4,V2,V3 ;加法 SV Ry,V4 ;存结果 可以划分成四个编队:
(1)LV (2)MULTSV LV (3)ADDV (4)SV
8.在一台向量处理机上实现A=B×s操作,其中A和 B是长度为200的向量,s是一个标量。向量寄存器长度为64。功能部件的启动开销为:取数和存数部件为12个时钟周期,乘法部件为7个时钟周期,加法部件为6个时钟周期。总的执行时间是?
A.784 B.783 C.785 D.780
9.简述三种向量处理方式,他们对向量处理机结构要求有什么不同。
解:水平处理方式:向量长度为N,则水平处理方式相当于执行N次循环。不适合对向量进行流水处理。(或者叫做横向处理方式)
垂直处理方式:将整个向量按相同的运算处理完毕之后,再去执行其他的运算,适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入输出端直接与存储器相联,构成M-M型的运算流水线。
分组处理方式:把长度为N的向量分为若干组,每组按照纵向处理
10.解释下列与向量处理有关的术语。 (1)向量规约指令 (2)收集和散播指令 解:(1)将向量化转化为标量的指令
(2)收集指令可以把非连续存储单元的内容传送到向量寄存器组中若干个连续的寄存器;散播指令与此相反。他们用于稀疏矩阵的存储与运算,可以节省空间。 11. 查看下面三条指令: V3←A V2←V0+V1 V4←V2*V3
假设向量长度小于64,且前后其他的指令均没有相关性,数据进入和流出每个功能部件,包括访问存储器都需要一拍的时间,假设向量的长度为N。三条指令采用链接的方法,那么执行的时间是:
A.3N+22 B.2N+15 C.N+16 D.N+17
12.在一台向量处理机上实现A=B×s操作,其中A和 B是长度为200的向量,s是一个标量。向量寄存器长度为64。功能部件的启动开销为:取数和存数部件为12个时钟周期,乘法部件为7个时钟周期,加法部件为6个时钟周期。那么一个结果元素的平均执行时间(包括启动开销)为:
A.3.7 B.3.9 C.4.1 D.4.3
13.某向量处理机有16个向量寄存器,其中V0-V5种分别存放有向量A,B,C,D,E,F,向量的长度是8,向量各元素均为浮点数;处理部件采用两个单功能流水线,加法功能部件时
间为2拍,乘法功能部件时间为3拍。采用类似CRAY-1的链接技术,先计算(A+B)*C,在流水线不停的情况下,接着计算(D+E)*F。求此链接流水线的通过时间是多少拍?(设寄存器出入各需1拍)
A.8 B.9 C.17 D.18 14.名词解释 向量流水处理机
解:处理机具有向量数据表示,并通过向量指令对向量的各元素进行处理。
15.某向量处理机有16个向量寄存器,其中V0-V5种分别存放有向量A,B,C,D,E,F,向量的长度是8,向量各元素均为浮点数;处理部件采用两个单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。采用类似CRAY-1的链接技术,先计算(A+B)*C,在流水线不停的情况下,接着计算(D+E)*F。每拍时间是50ns,完成这些计算并且把结果存进相应的寄存器,此处理部件实际吞吐率是多少MFLOPS?(设寄存器出入各需1拍)
A.26.67 B.29. C.24.6 D.25.83
16.一台单处理机可以以标量方式运行,也可以以向量方式运行。在向量方式情况下,计算可比标量方式快9倍。设某基准程序在此计算机上运行的时间是T。另外,已知T的25%用于向量方式,其余机器时间则以标量方式运行。请计算在上述条件下与完全不用向量方式条件下相比的加速比,并计算上述程序中向量化代码所占的百分比。
加速比=(0.25T*9+0.75T*1)/T=3
由于T中向量化代码所占的时间为0.25T,则串行代码用时=T-0.25T=0.75T,所以完全不用向量方式执行该段代码用时= 0.75T+9*0.25T=3T, 因此加速比=3T/T=3.
根据Amdahl定律.
17.一台向量计算机一次只能以下述两种方式中的一种运行:一种是向量方式,执行速度Rv为10Mflops;另一种是标量方式,执行速度Rs为1Mflops。设α是该计算机的典型程序代码中可以向量化部分的百分比。如果要使平均执行的速度达到7.5Mflops,那么向量化百分比应该多大?
1/[a/Rv+(1-a)/Rs]=7.5 所以a=0.963
18.在CARY1机器上,设向量长度均为32,s是标量寄存器,加法需要6拍,乘法需要7拍,从存储器读数需要6拍,打入寄存器及启动功能部件(包括寄存器)各需要1拍。则下面的指令组完成所需要的拍数是:
V3←存储器 打入1,启动1,读数6 V2←V0+V1 s0←s2+s3 V3←V1×V4
A.111 B.110 C.78 D.79 8+31+9+31
19.在CRAY-1机器上,链接方式执行下面4条向量指令(括号中给出相应功能部件的时间),如果向量寄存器和功能部件之间的数据传输需要1拍,试求此链接流水线的流过时间为多少拍?
V0←存储器 (存储器取数7拍)9 V1←V0+V1 (向量加3拍)5
V3←V2 20. 一台单处理机可以以标量方式运行,也可以以向量方式运行。在向量方式情况下,计算可比标量方式快18倍。设某基准程序在此计算机上运行的时间是T。另外,已知T的25%用于向量方式,其余机器时间则以标量方式运行。那么在上述条件下与完全不用向量方式的条件下相比的加速比是: A.3 B.3.43 C.3.33 D.以上均不正确 1/[0.75/18+0.25/1] 21.一台向量计算机一次只能以下述两种方式中的一种运行:一种是向量方式,执行速度Rv为10Mflops;另一种是标量方式,执行速度Rs为1Mflops。设α是该计算机的典型程序代码中可以向量化部分的百分比。求平均执行速度的计算公式。 1/[a/Rv+(1-a)/Rs]=10/(10-9a) 22.向量处理机有那两种最基本的结构? 存储器--存储器结构 寄存器--寄存器结构 23.研制高性能的向量处理机主要需要解决哪几个问题? (1) 较好的维持向量/标量性能平衡 (2) 可扩展性随处理机数目的增加而提高 (3) 增加存储器系统的容量和性能 (4) 提供高性能的I/O和易访问的网络 24.为了提高向量处理机的性能,会采用一些特殊的技术,下面那一项不是提高向量处理机性能而采用的技术? A.链接技术 B.向量递归技术 C.cache缓存技术 D.稀疏矩阵的处理技术 25.在CARY1机器上,设向量长度均为32,s是标量寄存器,加法需要6拍,乘法需要7拍,从存储器读数需要6拍,打入寄存器及启动功能部件(包括寄存器)各需要1拍。则下面的指令组完成所需要的拍数是: V0←存储器 V2←V0+V1 V3←V2×V1 V5←V3×V4 26.若要进行向量运算D=A×(B+C),假设向量长度N<64,且B和 C已经存至V0和V1,则下面三条指令就可以完成上述的运算。 V3←A (6拍) V2←V0+V1 (6拍) V4←V2×V3 (7拍) 分别求三条指令全部用串行的方法和链接技术执行的时间(读写各需1拍)。 27.在某台向量处理机上执行DAXPY代码,即完成Y=a×X+Y,其中X和Y是向量,最初存放在内存,a是一个标量,他们的向量指令如下: LV V1,Rx ;取向量 MULTSV V2,F0,V1 ;标量和向量相乘 LV V2,Ry ;取向量Y ADDV V4,V2,V3 ;相加 SV Ry,V4 ;存结果 求总的执行时间。假设其中存取数需要12拍,乘法需要7拍,加法需要6拍,向量长度是n。 28.假设某向量处理机上执行DAXPY代码所需要的时钟周期是4n+64,其中n是向量长度,时钟频率是200MHz,那么最大性能是多少? A. 90MFLOPS B. 80MFLOPS C.50 MFLOPS D. 100MFLOPS 29.假设某向量处理机上执行DAXPY代码所需要的时钟周期是4n+64,其中n是向量长度,时钟频率是200MHz,那么半性能向量长度是: A.12.8 B.10.7 C.12 D.13 30.日本FOCOM向量处理机VP-200具有流水线链接和并行化功能。它有2条存储流水线到向量寄存器,两者可以并行工作。此外尚有加法和乘法流水线。各流水线间均可以链接操作。若现在要在Vp-200向量机上实现以下的向量操作: A(I)=B(I) ×C(I)+D(I) ×E(I)+F(I) ×G(I) I=1,2,…,N。假定所有流水线的延迟时间都相等,取/存操作转换时将有t的流水线重构延迟时间。求完成操作所需要的时间。 所以时间为:4N+t 31. 在CARY1机器上,设向量长度均为32,s是标量寄存器,加法需要6拍,乘法需要7拍,从存储器读数需要6拍,打入寄存器及启动功能部件(包括寄存器)各需要1拍。则下面的指令组完成所需要的拍数是: V3←存储器 V2←V0+V1 V4←V2×V3 存储器←V4 A.87 B.88 C.89 D.86 32.nv表示向量流水方式的工作速度优于标量串行方式工作时间时所需要的向量长度的临界值。请问该参数主要衡量那些标准? 衡量建立时间,也衡量标量向量的速度比对性能的影响。 33.有关半性能向量长度,下面哪种说法正确? A.该值是最大性能的一半 B.该值越大说明向量计算机性能越好 C.该值是为达到一半最大性能所需要的向量长度 D.该值必须是整数,计算的时候应该向下取整 34.考虑一个如图所示的4级加法流水线,其中X和Y为流水线输入线,Z为输出线。流水线输出端有一个寄存器R,他用来暂时存储中间结果并且在适当时刻反馈带S1。输入X和Y分别与输出R,Z经相应多路开关接到S1和2个输入端。假设向量A的所有元素以每个周期一个元素速率,通过输入端送入流水线。如果需要计算N个元素的向量累加和,则最少需要多少个时钟周期?约定无操作数输入,就认为是将1个0值送入,而且流水线的设置时间可以忽略不计。 ZXYS1S2S3S4R N+11 如图所示, 当进行完第4个周期, 开始第5个周期时, 暂存在寄存器R中的A(1)将和Y输入端输入的A(5)相加, 其和放入S1, 当进入下一个周期, A(1)+A(5)进入S2, 而A(2)+A(6)放入S1, …… 依次递推。 当第N个周期完成时, S1中放的是A(1)+A(5)+A(9)+A(13)+…; S2中放的是A(2)+A(6)+A(10)+A(14)+…; S3中放的是A(3)+A(7)+A(11)+A(15)+…; S4中放的是A(4)+A(8)+A(12)+A(16)+…; 然后该计算这四段的总和, 不妨设这四段分别为Y1,Y2,Y3,Y4, 又经过4个周期, S1中做Y1+Y2, 再经过4个周期, S1中做(Y1+Y2)+(Y3+Y4), 然后还需要3个周期将最终结果由Z输出。 故最小时间为Nτ+4τ+4τ+3τ=(N+11)τ。即N+11个时钟周期。 35.下列那一项不是可扩展性的目标? A.延时可扩展性 B.规模可扩展性 C.换代可扩展性 D.问题可扩展性 36. 查看下面三条指令: V3←A V2←V0+V1 V4←V2*V3 假设向量长度是32,且前后其他的指令均没有相关性,数据进入和流出每个功能部件,包括访问存储器都需要一拍的时间。三条指令采用链接的方法,那么执行的时间是多少? A.46 B.47 C.48 D.49 8+9+31 37.一台机器向量处理速度是标量的10倍。如果想将一个完全标量执行的程序所需要的时间减少到原来的80%,通过向量化的方法,至少该程序多大比例能够向量化? A.33.3% B.22.2% C.30% D.35% [a/10+(1-a)/1]/1=80% 39. 在CARY1机器上,设向量长度均为32,s是标量寄存器,加法需要6拍,乘法需要7拍,从存储器读数需要6拍,打入寄存器及启动功能部件(包括寄存器)各需要1拍。则下面的指令组完成所需要的拍数是: (1) V0←存储器 V1←V2+V3 V4←V5×V6 并行执行,以最长指令为准:9+31=40 (2) V0←存储器 V1←V2+V3 V4←V5×V6 s0←s1+s2 标量看成1个分量的向量: 9+31+8=48