华东师范大学计算机组成原理教材,华东师范大学_计算机组成原理7B.pptx

华东师范大学_计算机组成原理7B

第七章 B: SIMDs, Vectors,and GPUs

[Adapted from Computer Organization and Design, 4th Edition,

Patterson & Hennessy, © 2008, MK]

Flynn’s Classification Scheme

现在,有些术语已经过时了

SISD – 单指令流单数据流的单处理器

例如 单处理器 – 本学期一直在讨论的

SIMD – 单指令流多数据流的多处理器

单个控制单元将操作广播到多个数据通路

MISD – 多指令流,单数据流

没有这样的机器 (尽管有些人将向量机归为此类)

MIMD – 多指令流,多数据流

如多处理器 (SMPs, MPPs, clusters, NOWs)

SIMD 处理器

单个控制单元 (只需执行代码的一个副本)

多个数据通路 (处理单元 PEs) 并行执行

Q1 – 这些处理单元通常通过网格或圆环互相连接,并交换和分享控制单元控制的数据

Q2 – 每个处理单元在它自己的数据上进行相同的操作

SIMD 机器的例子

Maker

Year

# PEs

# b/ PE

Max memory (MB)

PE clock (MHz)

System BW (MB/s)

Illiac IV

UIUC

1972

64

64

1

13

2,560

DAP

ICL

1980

4,096

1

2

5

2,560

MPP

Goodyear

1982

16,384

1

2

10

20,480

CM-2

Thinking Machines

1987

65,536

1

512

7

16,384

MP-1216

MasPar

1989

16,384

4

1024

25

23,000

Did SIMDs die out in the early 1990s ??

SIMD:多媒体扩展

SIMD目前使用最广泛的变种几乎在每个微处理器中都可以找到 – 已成为 MMX and SSE 指令的基础,引进这些指令的目的是提高多媒体程序的性能

将一个很宽的ALU分布到许多并行工作的小ALU上

在x86中,现在已经有数百万条SSE指令,可用于支持多媒体的操作

32 bit adder

16 bit adder

16 bit adder

8 bit +

8 bit +

8 bit +

8 bit +

例如,一个硬件单元可以是一个64位ALU,也可以是两个32位ALU、四个16位ALU甚至八个8位ALU。存储器操作位宽与ALU是相同的,这样无论是传输一个64位数据元还是传递两个32位数据元,四个16位数据元或八个8位数据元,程序员都可以认为数据传输指令都是相同的

向量机

向量机(例如,Cray)将ALU流水化,从而在低成本下获得高性能。向量体系结构的一个关键特征是拥有一组向量寄存器,用于保存操作数和结果。

从存储器中数据元,并将它们按顺序放到一大组寄存器中,然后在寄存器中对它们依次操作,最后将结果写回存储器

它们构成了1980’s及90’s超级计算机的基础

基于MIPS指令集体系结构进行扩展,增加向量指令和向量寄存器,例如

addv.d 表示将两个双精度的向量相加,输入是一对向量寄存器

addvs.d and mulvs.d 表示将标量寄存器的内容加(乘)到向量寄存器中的每个数据元上

lv and sv 分别代表向量的读入和写回,它们完成整个双精度数据向量的读入或写回

MIPS vs VMIPS DAXPY 代码: Y = a × X + Y

l.d $f0,a($sp);读入标量 a

addiu r4,$s0,#512;读入的上界

loop:l.d $f2,0($s0);读入 X(i)

mul.d $f2,$f2,$f0;a × X(i)

l.d $f4,0($s1);读入 Y(i)

add.d $f4,$f4,$f2;a × X(i) + Y(i)

s.d $f4,0($s1);写回 Y(i)

addiu $s0,$s0,#8;递增 X 的索引

addiu $s1,$s1,#8;递增 Y 的索引

subu $t0,r4,$s0;计算边界

bne $t0,$zero,loop;检查是否完成

l.d $f0,a($sp);读入标量 a

lv $v1,0($s0);读入向量 X

mulvs.d $v2,$v1,$f0;向量与标量的乘法

lv $v3,0($s1);读入向量 Y

addv.d $v4,$v2,$v3;将 Y 加到 a × X

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值