- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华东师范大学_计算机组成原理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 s
有哪些信誉好的足球投注网站
文档评论(0)