Skip to content

Vector Processor

1. 三种处理方式

如何计算 D = A × (B - C) ?

1.1 横向

串行循环处理:每一行一次数据相关(乘法的操作数依赖于减法)。

Screen Shot 2022-06-09 at 23.41.22

1.2 纵向

向量内部的单步运算无数据相关,向量之间有一次相关(向量乘法的操作数依赖于向量减法的结果)。

Screen Shot 2022-06-09 at 23.42.11

1.3 纵横

Screen Shot 2022-06-09 at 23.44.23

Screen Shot 2022-06-09 at 23.44.54

可以算任意长度的向量。

2. 结构

分类标准:操作数的存储位置

2.1 存储器-存储器

无论向量长度有多大,相同运算都用一条向量指令完成,这需要操作数在存储器中。

纵向处理。

2.2 寄存器-寄存器

纵横分组处理。

Screen Shot 2022-06-10 at 00.04.22

3. 提高向量处理机性能的常用技术

3.1 设置多个功能部件

3.2 链接技术

Pipeline Chaining 流水线链接:

  • 对于先写后读的两条指令
  • 如果没有功能部件冲突和其它操作数的冲突
  • 可以将功能部件链接起来流水处理

链接流水线通过时间的计算:

  • 向量寄存器和功能部件之间的数据传输需要时间
  • 向量长度 > 1 时,类似于流水线

3.3 循环开采

Screen Shot 2022-06-10 at 11.07.55

3.4 编队

编队:在同一时钟周期内开始执行的几条向量指令

  • 同一编队中的向量指令之间一定不存在流水功能部件的冲突、寄存器的冲突、数据的相关

4. 性能评价

循环开采 + 编队,执行时间: $$ T_{all} = \lceil {n \over \text{MVL}} \rceil (T_{start} + T_{loop}) + mn $$ 向量长度无穷大时处理机的最大性能: $$ R_{\infty} = \lim_{n \rightarrow + \infty} { \text{Num of FOP in a single seq} \times n \times f \over T_{all}} $$ 半性能长度 \(n_{1/2}\) :向量长度为此值时,性能为峰值性能一半。

向量长度临界值 \(n_{v}\) :标量处理机和向量处理机时间相等。

  • 二者性能差距的来源(?):链接技术

Last update: June 10, 2022
Authors: Co1lin