35向量处理机内容摘要:

向量处理机 21/ 43 例 设 A和 B是长度为 N的向量 , 考虑在 Cray1向量处理器上实现如下的循环操作。 DO 10 I = 1, N 10 A(I) = * B(I) + ◆ 当 N ≤64 时,可以用如下指令序列实现上 述循环操作: S1← ;将常数 S1 S2← ;将常数 S2 VL←N ;在向量长度寄存器 VL中设置向量长度 N 向量处理机 22/ 43 V0←B ;从存储器中将向量 B读入向量寄存器 V0 V1←S 1*V0 ;向量 B中的每个元素分别和常数 S1 相乘 V2←S 2+V1 ;向量 V1中的每个元素分别和常数 S2相加 A←V 2 ;将计算结果从向量寄存器 V2存入存 储器的向量 A 向量处理机 23/ 43 ◆ 当 N > 64时,就需要进行分段开采。 在进 行分段开采时,首先必须根据向量长度计算 出循环次数 K : 一般来说, N并不一定总是 64的倍数,所 以如果 N/64有余数,那么余数 L为: 向量处理机 64 K = N L = N - 64 64 N S1← ;将常数 S1 S2← ;将常数 S2 VL←L ;在向量长度寄存器 VL中设置向量长度 L V0←B ;从存储器中将向量 B[0..L1]读入向量 寄存器 V0 V1←S 1*V0 ;向量 B中的每个元素分别和常数 S1相乘; V2←S 2+V1 ;向量 V1中的每个元素分别和常数 S2相加 A←V 2 ;将计算结果从向量寄存器 V2存入存储器 的向量 A[0..L1] 处理余 数部分 , 计算 L 个元素 For (I=0 to K1) { V0←B ;从存储器中将向量 B[L+I*64… L+I*64+63] 读入向量寄存器 V0 V1←S 1*V0 ;向量 B中的每个元素分别和常数 S1相乘; V2←S 2+V1 ;向量 V1中的每个元素分别和常数 S2相加 A←V 2 ;将计算结果 V2存入存储器的向量 A[L+I*64… L+I*64+63] } 循环 K次 , 分段 处理 26/ 43 衡量向量处理机性能的 主要参数: ◆ 执行一条向量长度为 n的向量指令所需的时间为: 向量处理机的性能评价 Tvp = Ts + Tvf + (n1)Tc  Ts : 向量处理单元流水线的建立时间, 包括:向量起始地址的设置、计数 器加 条件转移指令执行等。 向量处理机 27/ 43  Tvf : 向量处理单元流水线的流过时间,它 是从向量指令开始执行到得到第一个 计算结果(向量元素)所需的时间。  Tc : 向量处理单元流水线 “ 瓶颈 ” 段的执行 时间。 ◆ 如果向量处理单元流水线不存在 “ 瓶颈 ” 段,每 段的执行时间等于一个时钟周期,则上式也可 以写为: Tvp = [s + e + (n1)]Tclk 向量处理机 28/ 43  s: 向量处理单元流水线建立所需的时 钟周期数;  e: 向量流水线流过所需的时钟周期数;  Tclk: 时钟周期时间。 ◆ 可以再改写为: Tvp = ( Tstart + n) Tclk 。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。