33
第第第 第第第 SIMD SIMD 第第第 第第第 SIMD SIMD 第第第第第第第第第第 第第第第第第第第 第第第第第第第第第第第第第 ,, 第第第第第第第第第第 第第第第第第第第 第第第第第第第第第第第第第 ,, 第第第第第第第第第第第第第第第第

第八章 SIMD 计算机

  • Upload
    diem

  • View
    278

  • Download
    1

Embed Size (px)

DESCRIPTION

第八章 SIMD 计算机. SIMD 计算机也称并行处理机,又称阵列处理机,主要应用于要求大量高速向量或矩阵运算的场合。. 并行性概念. 并行性 (parallelism) :指在数值计算、数据处理、信息处理或是人工智能求解过程中可能存在某些可同时进行运算或操作的部分。 开发并行性的目的在于能够并行处理,以提高计算机系统求解问题的效率。 并行性的含义: 【 同时时 (Simultaneity) 】 :两个或两个以上事件在同一时刻发生。 【 并发性 (Concurrency) 】 :两个或两个以上事件在同一时间间隔内发生。 - PowerPoint PPT Presentation

Citation preview

Page 1: 第八章   SIMD 计算机

第八章 第八章 SIMDSIMD 计算机计算机

SIMDSIMD 计算机也称并行处理机,又称阵列处理机,主要应计算机也称并行处理机,又称阵列处理机,主要应用于要求大量高速向量或矩阵运算的场合。用于要求大量高速向量或矩阵运算的场合。

Page 2: 第八章   SIMD 计算机

并行性概念并行性概念并行性 (parallelism) :指在数值计算、数据处理、信息处理或是人工智能求解过程中可能存在某些可同时进行运算或操作的部分。 开发并行性的目的在于能够并行处理,以提高计算机系统求解问题的效率。

并行性的含义:【同时时 (Simultaneity) 】 :两个或两个以上事件在同一时刻发生。【并发性 (Concurrency) 】 :两个或两个以上事件在同一时间间隔内发生。

实现并行性技术的途径:【资源重复 (resource replication) 】 :在并行性概念中引入空间因素,通过重复设置硬件资源来提高可靠性或性能,如备份系统、容错系统、阵列机等。【时间重叠 (time interleaving) 】 :在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度,如流水线等。【资源共享 (resource sharing) 】 :指利用软件的方法让多个任务按一定的时间顺序轮流地使用同一套资源,以提高其利用率,相应地提高整个系统性能。如分时系统、分布式系统、计算机网络等。

Page 3: 第八章   SIMD 计算机

并行处理机 (Parallel Processor) 是将重复设置的 N 个处理单元 PE0~PEN-1 ,按照一定方式互连组成阵列,在单一控制部件 CU 控制下,同时对处理单元各自分配到的数据并行完成同一条指令所规定的操作。因此,并行处理机采用互连网络连接成阵列构型,也称阵列处理机 (Array Processor) 。 并行处理机所有处理单元同时执行从控制部件广播来的同一条指令,但使用不同的数据,因此,并行处理机是指令操作级并行的单指令流多数据流处理机 (SIMD) 。

并行处理机模型并行处理机模型

P0

M0

PE0

P1

M1

PE1

P2

M2

PE2

Pn-1

Mn-1

Pen-1

互连网络

控制器

……

H·J·Siegel 提出的并行处理机模型

Page 4: 第八章   SIMD 计算机

标量处理机

阵列控制部件

控制部件存储器( 程序与数据 )

主机

大容量存储器

PE0

LM0

互连网络

PE1

LM1

PEN-1

LMN-1

I/O 用户指令标量指令

向量指令 广播总线

数据总线

网络控制

一种典型的阵列处理机一种典型的阵列处理机

Page 5: 第八章   SIMD 计算机

并行处理机执行过程:1 )主机 ( 或称管理主机 ) 通常是一种通用计算机,运行操作系统,用于用户程序的汇编及向量化编译,完成系统维护、输入输出、大容量存储器的管理、作业调度、文件管理等操作系统功能。2 )程序和数据装入控制存储器。3 )阵列控制部件 (CU) 是一台功能专用的处理机,负责译码,有自己的存储器,存放系统程序、用户程序和标量数据。4 )阵列控制部件 (CU) 译码后,如果是标量操作或控制操作,则直接由同控制部件相连的标量处理机执行;如果是向量操作,则将它广播到所有 PE并行执行。4 )划分后的数据集合通过向量数据总线被分配到所有 PE 的本地存储器 PEM , PEMi 对 PEi 来说,是本地存储器;而 PEMj(j<>i) 对 PEi 来说,则是远程存储器。 PEi 访问本地存储器中的数据。 5 ) PE 通过数据寻径网络互连,数据寻径网络执行 PE 间的通讯,如移数、置换和其他寻径操作。控制部件通过执行程序来控制数据寻径网络, PE 的同步由控制部件的硬件实现。

Page 6: 第八章   SIMD 计算机

并行处理机特点:1 )从 CU 看,指令是串行执行的,即每次只能执行一条指令;从 PE 看,各 PE 同时执行同一条指令,数据并行处理,产生多个数据流,因此具有数据并行性 (SIMD) 。2 )各 PE 通过互连网络实现相互连接,控制部件对控制程序进行译码,其结果用于控制网络的寻径。3 ) PE 之间的同步由控制部件的硬件实现,保证各 PE 在同一个周期执行同一条指令,并且可以通过对屏蔽位的设置,控制一个 PE 是否执行当前指令。4 )并行处理机五元组模型:

M=(N,C,I,M,R) 其中: N为 PE 数量, C为控制部件直接执行的指令集,包括标量指令和程序流控制指令, I为各 PE 同时执行的指令集, M为屏蔽方案集,即划分允许操作和禁止操作的方案集, R为数据寻径功能集,即互连网络模式。5 )并行处理机利用的是资源重复,而非时间重叠;利用并行性中的同时性,而非并发性。6 )标量指令与向量指令可以并发执行。7 )从 PE 方面看,由于各 PE 相同,因而可以将并行处理机看成是同构型并行处理机;但从整体看,并行处理机是由标量处理机、处理机单元阵列、主机构成的异构型多处理机系统。

Page 7: 第八章   SIMD 计算机

8 )并行处理机是以某一类算法为背景的专用计算机。这是由于并行处理机中通常采用简单、规整的互连网络实现处理单元之间的连接操作,从而限定了它所适用的求解算法类别。9 )并行处理机的研究必须与并行算法研究密切结合,以使它的求解算法的适应性更强些,应用面更广些。10 )并行处理机的五个部分组成:

▉ 处理单元 PE 阵列 ▉ 标量处理机 ▉ 阵列控制部件 ▉ 互连网络 ▉ 输入输出处理主机

并行处理机有两种典型结构:分布存储器并行处理机共享存储器并行处理机

Page 8: 第八章   SIMD 计算机

标量处理机

阵列控制部件

控制部件存储器( 程序与数据 )

主机

大容量存储器

PE0

LM0

互连网络

PE1

LM1

PEN-1

LMN-1

I/O 用户指令标量指令

向量指令 广播总线

数据总线

网络控制

分布式存储器结构的阵列处理机分布式存储器结构的阵列处理机

Page 9: 第八章   SIMD 计算机

目前制造的 SIMD 计算机几乎都是基于分布式存储器结构。之间的主要区别在于数据寻径网络。典型产品: ILLiac IV 、 Goodyear 的 MPP 、 AMT(Active Memory Technology) 的 DAP 610 、 Thinking Machines公司的 CM-2 、 MasPar 计算机公司的 MP-1 等。

Page 10: 第八章   SIMD 计算机

标量处理机

阵列控制部件

控制部件存储器( 程序与数据 )

主机

大容量存储器

PE0

互连网络

PE1 PEN-1

I/O用户

指令标量指令

向量指令 广播总线

数据总线

网络控制

SM0 SM1 SMN-1

集中式共享存储器结构的阵列处理机集中式共享存储器结构的阵列处理机

Page 11: 第八章   SIMD 计算机

特点:1 )典型例子: Burroughs公司和依里诺大学联合研制的 BSP(Burrough

s Scientific Processor) , 16 个 PE , 17 个存储体, 16×17 对准网络。2 )由多个存储体组成的多体交叉存储器经互连网络为全部处理单元所共享。3 )共享存储器采用多模块交叉存储器,并且,为了避免发生 PE 访问共享

存储器冲突, PE 数与存储器数应互质,而且,“处理单元数 <= 共享存储器数”。

4 )适用于处理单元数目不大的情况,否则,解决存储器访问冲突将耗费大量的系统资源,大大降低系统的性能价格比。

Page 12: 第八章   SIMD 计算机

并行处理机的特点并行处理机的特点1) 运行效率取决于计算程序向量化程度。2) 具有较为固定的结构,使之与一定的算法相联系,因此,系统结构的研究必须与算法的研究结合起来。

3) 模块性好,生产和维护方便4) 可靠性高,容易实现容错和重构5) 效率低(与流水线处理机、向量处理机等比较)。通常作为专用计算机,

因此,在很大程度上依赖于并行算法。它依靠的是资源重复,而不是时间重叠,它的每个处理单元要担负多种处理功能,其效率要低一些。另一方面,它依靠增加 PE 个数,与流水线处理机主要依靠缩短时钟周期相比,其提高速度的潜力要大得多。

6) 依赖于互连网络和并行算法。互连网络决定了 PE 之间的连接模式,也决定了并行处理机能够适应的算法。

7) 实际有效速度除了向量运算速度外,还取决于标量运算速度和编译过程中的时间开销。如果一台机器的向量处理速度极高,但标量处理速度只是每秒一百万次,那么对于标量运算占 10%的题目来说,总的有效速度就不过是每秒一千万次(为什么?)。

Page 13: 第八章   SIMD 计算机

1 ) ILLiac IV 阵列处理机是世界上最早采用 SIMD 结构的计算机,由美国宝来公司和依里诺依大学 1965年研制并于 1972年生产。2 )可以认为 ILLiac IV 处理机包括两个部分,即 ILLiac IV 阵列和 ILLiac IV 输入输出系统,也可以看成由 3 种类型处理机组成:专门用于数组运算的处理单元阵列阵列控制器一台标准的 Burroughs B6700 计算机

典型的典型的 SIMDSIMD 计算机( 计算机( ILLiac IV ILLiac IV ))

Page 14: 第八章   SIMD 计算机

PEM63PEM0 PEM1

CU CDC BIOM

B6700CPU

B6700内存

B6700多路开关

B6700外围设备

IOS

激光存储器

64

64 X 8

CU×ÜÏß

¿ØÖÆÏßģʽλÏß

APPAÍø½Ó¿Ú

128

2561024

I/O ×ÜÏß

CDBPE63

PE0

1024

实 时 装 置

48

48

48 48

256

PE0 PE1 PE63...DFS

Page 15: 第八章   SIMD 计算机

ILLiac IV 阵列

PE0

PE8

PE56

PE1

PE9

PE57

PE7

PE15

PE63

i-8

i+8

ii-1 i+1

Page 16: 第八章   SIMD 计算机

特点:1 ) 64 个 PE 组成 8×8 阵列结构2 )两个 PE 之间通信可以使用软件寻径,而且中间过程不会超过 7 步。3 )可以证明,在 N×N 阵列中,两个 PE 间最短距离不会超过 N-1 步。4 )处理单元存储器 PEM 分属于每一个处理单元,各有 2048×64位存储容

量, 64 个 PEM联合组成阵列存储器,存储数据和指令。整个阵列存储器可以接受阵列控制器 CU 的访问,读出 8 个字的信息块到 CU 的缓冲器中。阵列存储器也可以经过 1024位的总线与 I/O 开关相连。每个 PE只能访问自己的 PEM ,分布在各个 PEM 中的公共数据只能先读至 CU后,再经 CU 的公共数据总线 CDB 广播到 64 个处理单元中去。

5 )阵列存储器具有双重变址机构:控制器 CU 实现所有处理单元的公共变址,每个处理单元 PE还可单独变址,最终操作数有效地址对 PEi 来说,由下式决定:

ai=a+(b)+(ci) 式中, a 是指令地址; (b) 是 CU 中央变址寄存器内容; (ci) 是 P

Ei 的局部变址寄存器内容。

Page 17: 第八章   SIMD 计算机

阵列控制器 阵列控制器 CU 实际上是一台小型计算机。 CU除了能对矩阵的处理单元实行控制外,还能利用自己的内部资源执行一整套指令,用以完成标量运算。 CU 的标量运算操作与各 PE 的数组操作是时间重叠的。 阵列控制器 CU 同处理单元阵列之间有 4 条信息通路:( 1 ) CU 总线。 PEM经 CU 总线把 PEM 指令和数据传送到阵列控制器CU ,以 8 个 64位字为一个信息块。( 2 )公共数据总线 (Common Data Bus) 。 64位总线,用于向 64 个处理单元同时广播公共数据。例如,作为公共乘数的常数不必在 64 个 PEM 中重复存放,可以由 CU 的某个寄存器送往各处理单元。( 3 )模式位线 (Mode Bit Line) 。每个 PE经模式位线将其模式寄存器状态送到 CU 中,送来的信息包括该处理单元“活动状态”。 CU 将送来的 64 个模式位组合成一个模式字,以便执行测试指令。( 4 )指令控制线。传送处理单元微操作控制信号、读写控制信号。

Page 18: 第八章   SIMD 计算机

阵列控制器 CU 功能:1) 对指令流进行控制和译码,执行标量操作指令。2) 向各处里单元发出执行数组操作指令所需的控制信号。3) 产生和向所有处理单元广播公共的地址部分。4) 产生和向所有处理单元广播公共的数据。5) 接收和处理由各 PE(计算出错时)、系统 I/O 操作以及管理主机 B6700

所产生的陷阱中断信号。

输入输出系统ILLiac IV 输入输出系统有下列系统组成:1 )磁盘文件系统 DFS 。两套大容量并行读写磁盘系统及其控制器。每套磁盘系统有 13 台磁盘机,总容量 109位。每台磁盘机有 128道,每道 1 个磁头,并行读写,数据宽度 256位,最大传输率 512×106bit/s ,平均等待时间 19.6ms 。

2 ) I/O 分系统。包括 3 部分:输入输出开关 IOS 、控制描述字控制器 CDC 和输入输出缓冲存储器 BIOM 。 输入输出开关 IOS 功能有二:其一,将 DFS 或可能连上的实时装置转接到阵列存储器,进行大批数据的 I/O传送;其二,作为 DFS 与 PEM 之间的缓冲,平衡两边不同的数据宽度。

Page 19: 第八章   SIMD 计算机

控制描述字控制器 CDC 对阵列控制器 CU 的 I/O请求进行管理。 CU 提出中断请求, CDC 使 B6700 中断,由 B6700响应输入 / 输出请求,并通过 CDC给 CU送响应代码,在 CU 中设置好必要的控制状态字。然后, CDC促使 B6700启动 PEM 加载过程,由 DFS 向 PEM送程序和数据。在 PEM加载完成后,由 CDC 向 CU传送控制信号,使 CU 开始执行 Illiac IV 的程序。 BIOM 在 DFS 和 B6700 之间,使两者之间传送频带平衡( B6700 存储器经 CPU 输送数据的频宽 80×106bit/s ,而 DFS传送数据宽度 500×106bit/s )。实际上, BIOM 用 4 个 PEM做成,总容量 8192×64 位。

3 ) B6700 管理机基本组成: CPU(可选多 1 个)、 32字内存(可扩展至 512K字) B6700 管理机作用:管理全部系统资源,完成用户程序的编译或汇编,作业调度、存储分配、产生输入 / 输出控制描述字从 CDC 、中断处理等。

Page 20: 第八章   SIMD 计算机

BSP 计算机 BSP 计算机是由美国宝来公司和依里诺依大学于 1979年制造,是共享存储器结构的 SIMD 计算机典型代表。

系统管理机B7700/7800

文件存储器4~64M字

文件存储控制器

指令 / 控制存储器256K字

并行处理机控制器

控制维护单元

控制处理单元

并行存储器0.5~8M字

入口和出口对准网络

16 个算术单元

并行处理机

文件存储器系统

控制处理机

程序和数据250K字 /s

操作系统和维护信息

Page 21: 第八章   SIMD 计算机

a00 a01 a02 a03 a04a10 a11 a12 a13 a14a20 a21 a22 a23 a24a30 a31 a32 a33 a34

BSP 并行存储器无冲突访问 设并行存储器的存储体数 M=7(质数),运算单元数 N=6 。若有一个 4×5 数组

要求存储后按同一列、同一行、主对角线、反对角线访问都不会发生存储体冲突。

地址映象算法:1 )先将二维数组按列或行顺序变换为一维数组,形成一个一维线性地址空间,地址用 a表示。2 )将地址 a变换成并行存储器地址 (j,i) ,其中 j 是存储体体号, i 是体内地址,且

j=a mod mi=[a/n]

其中 m,n 分别为存储体数和处理单元数。

Page 22: 第八章   SIMD 计算机

a00 a10 a20 a30 a01 a11 a21 a31 a02 a12 a22 a32 a03 a13 a23 a33 a04 a14 a24 a34

数组元素地址 a 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

体号 j 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1 2 3 4 5

i 0 0 0 0 0 0 1 1 1 1 1 1 2 2 2 2 2 2 3 3体内地址

0

a00

1

a10

2

a20

3

a30

4

a40

5

a50

7

a31

8

a02

9

a12

10

a22

11

a32

6

a21

14

a23

15

a33

16

a04

17

a14

12

a03

13

a13

21 22 23 18

a24

19

a34

20

28 29 24 25 26 27

体号 体号 0 1 2 3 4 5 60 1 2 3 4 5 6体内地址体内地址

00

11

22

33

44

Page 23: 第八章   SIMD 计算机

阵列处理机的常用算法(以 ILLiac IV 为例) 阵列处理机的处理器阵列结构是为适合一定类型的计算问题而设计的专门结构,因此对这一类问题表现出很高的性能。

1 、矩阵加 将两个 8×8 的矩阵 A 和 B 相加时,只需要把 A 和 B 同一位置的一对元素存放在同一个 PEM 中,那么, 64 个 PE就可同时并行地完成 64 对元素的相加,得到结构矩阵 C=A+B ,处理速度为顺序处理的 64倍。

A(0,0)B(0,0)C(0,0)

PEM0

aa+1a+2

A(0,1)B(0,1)C(0,1)

PEM1

A(7,7)B(7,7)C(7,7)

PEM63

矩阵相加存储器分配

Page 24: 第八章   SIMD 计算机

2 、矩阵乘 若 A 和 B为两个 8×8 的矩阵,则 C=A×B 的 64 个元素为: 7 Cij= ∑ aikbkj 0<=i,j<=7 k=0

存储器分配好后,只需 3 条汇编指令就可一次实现矩阵相加:LDA ALPHA ;全部 (a) 由 PEM送 PE 的 RGAADRN ALPHA+1 ;全部 (a+1) 与 (RGA) 进行浮点加,结果送 RGASTA ALPHA+2 ;全部 (RGA) 由 PE送 PEM 的 a+2 单元

Page 25: 第八章   SIMD 计算机

a0,0 a0,1 … a0,7a1,0 a1,1 … a1,7……a7,0 a7,1 … a7,7

b0,0 b0,1 … b0,7b1,0 b1,1 … b1,7

……b7,0 b7,1 … b7,7

a0,0×b0,0+a0,1×b1,0+…+a0,7×b7,0 … a0,0×b0,7+a0,1×b1,7+…+a0,7×b7,7a1,0×b0,0+a1,1×b1,0+…+a1,7×b7,0 … a1,0×b0,7+a1,1×b1,7+…+a1,7×b7,7 ……a7,0×b0,0+a7,1×b1,0+…+a7,7×b7,0 … a7,0×b0,7+a7,1×b1,7+…+a7,7×b7,7

=

×

如果顺序执行 C=A×B ,那么,计算每个元素 cij需要做 8 次乘法,7 次加法,共需做 15 次乘 / 加运算。 在 ILLIAC IV 的处理机上,操作数 B 的 64 个元素存储在 64 个 PEM 中。当每次计算元素 cij 时,就把操作数 A 的 8 个元素 aik(0<=k<=7) 播送到相应的 8 个 PE 中,然后并行地一次完成 8 个中间积的运算。最后对 8 个中间积做 7 次加法,累加得到 cij 。

Page 26: 第八章   SIMD 计算机

3 、累加和 对于 8×8 的处理阵列,需要把一行或一列的 8 个处理单元中的操作数累加求出累加和,即将 N 个数的顺序相加过程变为并行相加的过程。 对于累加和这样的递归操作,为了加快并行计算,常采用递归折叠算法。

PE01234567

值A0

A1

A2

A3

A4

A5

A6

A7

第一步A0+A1

A2+A3

A4+A5

A6+A7

第二步A0+A1+A2+A3

A4+A5+A6+A7

第三步A0+A1+A2+A3+A4+A5+A6+A7

一般而言,对于在 P 个单元上实现 P 个元素累加求和,需要折叠[lbP] 次,并行相加 [lbP] 次,并行传送数据的次数根据各 PE 间互连网络的拓扑结构不同而有很大差异。 在求累加和过程中,并非每个处理单元始终参加运算,因此,需要借助屏蔽方式。

Page 27: 第八章   SIMD 计算机

题: A 和 B都是元素为浮点表示的 64×64 的二维数组,一次浮点加法的计算过程由取数、求阶差、对阶、尾数加、规格化和存数共 6 个段组成。若每个段的执行时间均为 Δt ,请分别求出在下列结构不同的处理机上完成 C=A+B 所需时间及相对于顺序处理的加速比。(1) 顺序处理方式的处理机(2) 具有浮点加法流水线的流水处理机,且浮点加法流水线分为 6 个段,各段执行时间均为 Δt 。(3)8×8 的阵列处理机,且处理阵列上的每个处理器只能顺序处理浮点加运算。(4)8×8 的阵列处理机,且处理阵列上的每个处理器均能流水处理浮点加运算。(4)64×64 的阵列处理机。

Page 28: 第八章   SIMD 计算机

a0,0 a0,1 … a0,63a1,0 a1,1 … a1,63

……a63,0 a63,1 … a63,63

b0,0 b0,1 … b0,63b1,0 b1,1 … b1,63

……b63,0 b63,1 … b63,63

+

a0,0 + b0,0 a0,1 + b0,1 … a0,63 + b0,63 a1,0 + b1,0 a1,1 + b1,1 … a1,63 + b1,63

……a63,0+b63,0 a63,1+b63,1 … a63,63+b63,63

=

解:(1) 顺序处理方式下,需要顺序执行的浮点加法次数为 64×64=4096 ,每次浮点加运算所需时间为 6Δt ,则全部运算所需时间为:

T1=4096×6Δt=24576Δt(2)需要流水执行的浮点加法次数为 64×64=4096 ,则一个 K=6段浮点加法流水线处理全部运算所需时间为:

T2=(k+n-1)Δt=(6+4096-1)Δt=4101Δt加速比:

S2=T1/T2=5.9

Page 29: 第八章   SIMD 计算机

(3) 对于 8×8 的处理阵列,每个处理器需要处理 64×64二维数组中的一个 8×8子数组,因此,每个处理器需要执行的浮点加法次数为 8×8 。每次浮点加法运算需要时间 6Δt 。每个处理器顺序执行 64 次浮点加法所需时间为 64×6Δt=384Δt 。 64 个处理器并行处理,同时完成各自的 64 次浮点加运算,所以,全部运算所需时间为:

T3=384Δt加速比:

S2=T1/T3=64(4) 对于 8×8 的处理阵列,每个处理器需要处理 64×64二维数组中的一个 8×8子数组,因此,每个处理器需要执行的浮点加法次数为 8×8 。 K=6段的浮点加法流水线处理 64 次浮点加运算需要时间 (k+n-1)Δt=(6+64-1)Δt=67Δt 。64 个处理器并行处理,同时完成各自的 64 次浮点加运算,所以,全部运算所需时间为:

T4=67Δt加速比:

S2=T1/T4=366.8

Page 30: 第八章   SIMD 计算机

(5) 对于 64×64 的处理阵列,每个处理器只需执行一次浮点加运算,所需时间为 6Δt ,所以,全部运算所需时间为:

T5=6Δt加速比:

S2=T1/T5=4096

Page 31: 第八章   SIMD 计算机

题:分别计算在下列各处理机中,计算点积 8 S= ∑ aibi

i=1

所需时间及相对于顺序处理方式的加速比。( 1 )顺序处理方式处理机( 2 )具有一个流水加法器和一个流水乘法器的流水处理机,且加法器和乘法器可以同时工作。( 3 ) 8 个处理单元之间用双向环互连的并行处理机,相邻 PE 之间传送一次数据需时间△ t 。

假设各处理机或处理单元取数和存数的时间忽略不计,完成一次加法需 2 t△ ,完成一次乘法需 4 t△ 。

Page 32: 第八章   SIMD 计算机

解:计算点积 8 S= ∑ aibi

i=1

需要做 8 次乘法和 7 次加法。( 1 )顺序处理机时间

T1=8×4Δt+7×2Δt= 32Δt+14Δt=46Δt( 2 )在流水处理机上, 7 次加法存在数据相关,流水乘和流水加引入连接,时空图如下:

9 10 11 12 13 14 15

1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8

加乘

由时空图可知,计算点积 S需要时间T2=17×2Δt=34Δt

相对于顺序执行的加速比S2=T1/T2=46Δt/34Δt=1.35

Page 33: 第八章   SIMD 计算机

( 3 )由 8 个 PE 组成双向环,每个 PE 有自己的局部 PEM ,向量 A 和 B的元素对 ai 和 bi 存储在相应的 PEM 中。 8 个 PE 并行做 1 次乘法得到 8 个乘积分别存于各自的 PE 中,用时 4Δt 。 有了乘积后,接下来做累加和(折叠):PE

01234567

值A0

A1

A2

A3

A4

A5

A6

A7

第一步A0+A1

A2+A3

A4+A5

A6+A7

第二步A0+A1+A2+A3

A4+A5+A6+A7

第三步A0+A1+A2+A3+A4+A5+A6+A7

Δt 2Δt 2Δt 2Δt Δt 2Δt

传送

传送

传送

计算点积 S需要时间T3= 4Δt+10Δt=14Δt

相对于顺序执行的加速比S3=T1/T3=46Δt/14Δt=3.3