第8章 SIMD 处理机 8.1 SIMD处理机模型 8.2 SIMD处理机的结构 8.3 SIMD处理机实例

Slides:



Advertisements
Similar presentations
第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
Advertisements

2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
§3.4 空间直线的方程.
3.4 空间直线的方程.
信息技术:硬件、软件、网络、数据库 计算机技术、多媒体技术、压缩技术...
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
一、二阶行列式的引入 用消元法解二元线性方程组. 一、二阶行列式的引入 用消元法解二元线性方程组.
实验四 利用中规模芯片设计时序电路(二).
第11章 计算机系统 计算机系统概述 分类方法、计算机系统性能评测方法 2. 微机系统 3. 他体系结构处理机
小学生游戏.
Oracle数据库 Oracle 子程序.
第五节 微积分基本公式 、变速直线运动中位置函数与速度 函数的联系 二、积分上限函数及其导数 三、牛顿—莱布尼茨公式.
计算机系统结构 南京航空航天大学 计算机科学与技术学院 主讲:刘佳
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
计算机基础知识 丁家营镇九年制学校 徐中先.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Hadoop I/O By ShiChaojie.
OpenMP简介和开发教程 广州创龙电子科技有限公司
第二章 矩阵(matrix) 第8次课.
存储系统.
SOA – Experiment 3: Web Services Composition Challenge
元素替换法 ——行列式按行(列)展开(推论)
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Windows网络操作系统管理 ——Windows Server 2008 R2.
中国科学技术大学计算机科学与技术系 国家高性能计算中心(合肥) 2004年12月
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
逆向工程-汇编语言
数据挖掘工具性能比较.
动态规划(Dynamic Programming)
CPU结构和功能.
工业机器人技术基础及应用 主讲人:顾老师
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
计算机系统结构 第一章 基本概念 第二章 指令系统 第三章 存储系统 第四章 输入输出系统** 第五章 标量处理机 第六章 向量处理机
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
微机系统的组成.
实数与向量的积.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
K60入门课程 02 首都师范大学物理系 王甜.
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
第八章 SIMD计算机.
第二章 补充知识 2.1 总线和三态门 一、总线(BUS) 三总线结构 数据总线DB(Data Bus)
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
iSIGHT 基本培训 使用 Excel的栅栏问题
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
第三章 函数的微分学 第二节 导数的四则运算法则 一、导数的四则运算 二、偏导数的求法.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
2.2矩阵的代数运算.
2019/5/21 实验一 离散傅立叶变换的性质及应用 实验报告上传到“作业提交”。 11:21:44.
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
§7.3 离散时间系统的数学 模型—差分方程 线性时不变离散系统 由微分方程导出差分方程 由系统框图写差分方程 差分方程的特点.
Google的云计算 分布式锁服务Chubby.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
数据表示 第 2 讲.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
入侵检测技术 大连理工大学软件学院 毕玲.
工业机器人入门使用教程 ESTUN机器人 主讲人:李老师
第二次课后作业答案 函数式编程和逻辑式编程
9.3多项式乘多项式.
Presentation transcript:

第8章 SIMD 处理机 8.1 SIMD处理机模型 8.2 SIMD处理机的结构 8.3 SIMD处理机实例

8.1 SIMD处理机模型 两种并行性概念: (1)同时性并行Simultaneity:两个或两个以上事件在同一时刻发生。 (2)并发性并行Concurrency:两个或两个以上事件在同一时间间隔内发生。 三条技术途径: (1)资源重复:重复设置多个部件来提高速度。 (2)时间重叠:流水线 (3)资源共享:分时系统,分布式系统

按照按照佛林分类法,它属于SIMD处理机。SIMD处理机又称SIMD处理机,也称为阵列处理机。 多个处理部件PU按照一定方式互连,在同一个控制部件CU控制下,对各自的数据完成同一条指令规定的操作。从CU看,指令是串行执行的,从PU看,数据是并行处理的。 按照按照佛林分类法,它属于SIMD处理机。SIMD处理机又称SIMD处理机,也称为阵列处理机。 2. SIMD处理机的主要应用领域: 用于高速向量或矩阵运算。

M=(N,C,I,M,R), 其中: 3. SIMD处理机的操作模型可用五元组来表示: N为PE个数。如IlliacIV有64个PE。 C为控制部件CU执行的指令集,包括标量指令和程序控制指令。 I为所有PE并行执行的指令集,包括ALU、数据传送等操作 M为屏蔽操作集,将PE划分为允许操作和禁止操作两个子集 R是数据寻径集,互连网络中PE间通信所需要的各种模式

4. H.J.Siegel提出的SIMD处理机模型

8.2 SIMD处理机结构 8.2.1 SIMD处理机的基本结构 8.2.2 分布存储器SIMD处理机 8.2.3 共享存储器SIMD处理机

一台SIMD处理机由五个部分组成: 多个处理单元PE, 多个存储器模块M, 一个控制器CU, 一个互连网络ICN, 一台输入输出处理机IOP。 SIMD处理机有两种典型结构: 分布存储器SIMD处理机, 共享存储器SIMD处理机。

8.2.2 分布存储器SIMD处理机 目前的大部分SIMD处理机属于基于分布式存储器模型。 分布式存储器SIMD处理机比较容易构成MPP(Massively Parallel Processor),可以有几十万个处理部件PE。 CU是控制部件。对于标量指令,在CU中直接执行;对于向量指令,CU把它广播到各个PE中去执行。 在CU中通常有一个较大容量的存储器,用来存放程序和共享数据。

IOP是输入输出处理机,或称为主机。在IOP上安装操作系统,它除了负担输入输出工作外,还负责程序的编辑、编译和调试等工作。 IOP可以是一台通用计算机。 分布式存储器SIMD处理机必须依靠并行算法来提高PE的利用率。因此,应用领域有限,可以认为是一种专用计算机。 数据在局部存储器中的分布是一个很关键的问题。 标量指令与向量指令可以并发执行。

分布式存储器SIMD处理机的结构框图

8.2.3 共享存储器SIMD处理机 共享多体并行存储器SM通过互连网络与各处理单元PE相连。 存储模块的数目等于或略大于处理单元的数目。为了实现无冲突访问,存储模块的个数为质数。 在存储模块之间合理分配数据,通过灵活、高速的互连网络,使存储器与处理单元之间的数据传送在大多数向量运算中都能以存储器的最高频率进行,而最少受存储器冲突的影响。

共享存储器模型的处理单元数目一般不多,几个至几十个。 Burroughs Scientific Processor(BSP)采用了这种结构。16个PE通过一个16×17的对准互连网络访问17个共享存储器模块。 存储器模块数与PE数互质可以实现无冲突并行访问存储器。 对互连网络的要求很高。

共享存储器SIMD处理机的结构框图

8.2.4 SIMD处理机的特点 SIMD处理机的主要特点如下: 与流水线处理机、向量处理机等比较。 1. 速度快,而且潜力大 2. 模块性好,生产和维护方便 3. 可靠性高,容易实现容错和重构 4. 效率低 与流水线处理机、向量处理机等比较。 依靠的是资源重复,而不是时间重叠,它的每个处理单元要担负多种处理功能,其效率要低一些。

主要依靠增加PE个数,与流水线处理机主要依靠缩短时钟周期相比,其提高速度的潜力要大得多。 5. 潜力大 主要依靠增加PE个数,与流水线处理机主要依靠缩短时钟周期相比,其提高速度的潜力要大得多。 6. 依赖于互连网络和并行算法 互连网络决定了PE之间的连接模式,也决定了SIMD处理机能够适应的算法。 7. 需要有一台高性能的标量处理机 如果一台机器的向量处理速度极高,但标量处理速度只是每秒一百万次,那么对于标量运算占10%的题目来说,总的有效速度就不过是每秒一千万次。

8.3 SIMD处理机实例 IlliacIV 是最先采用SIMD结构的SIMD处理机。 随后一个方向是用位片PE制造的SIMD处理机, 如Goodyear MPP、AMT/DAP610和TMC/CM-2 CM-5是以SIMD模式运行的同步MIMD计算机 另一方向是字宽运算PE的中粒度SIMD计算机 SIMD处理机的两个发展方向: 保留阵列结构,但每个处理单元的规模减小,如一个bit。 去掉阵列结构和分布存储器。Burroughs公司的BSP是代表。

8.3.1 IlliacIV SIMD处理机 1963年,美国西屋电器公司提出“Slotnick,The SOLOMON Computer,Simultaneous Operation linked Ordinal Modular Network”。 1966年美国国防远景研究规划局ARPR与伊利诺依大学签定合同。原计划:256个PE,运算速度为1GFLOPS。 Burroughs公司和伊利诺依大学于1972年共同设计和生产,1975年实际投入运行。用了4倍的经费,只达到1/20的速度。只实现了88=64个PE,只达到50MFLOPS。 IlliacIV的影响非常大。它是SIMD处理机的典型代表,也是分布存储器SIMD处理机的典型代表。

IlliacIV处理机阵列: 包括8×8 PE、PEM和互连网络。 阵列控制器CU。 输入输出处理机:一台标准的Burroughs B6700计算机。

标量操作与各PE的数组操作可以重叠执行。 控制器的功能有以下五个方面: (1)对指令进行译码,并执行标量指令; 1. 阵列控制器 阵列控制器CU实际上是一台小型计算机。 对阵列处理单元实行控制和完成标量操作。 标量操作与各PE的数组操作可以重叠执行。 控制器的功能有以下五个方面: (1)对指令进行译码,并执行标量指令; (2)向各PE发出执行数组操作指令的控制信号; (3)产生并向所有处理单元广播公共的地址; (4)产生并向所有处理单元广播公共的数据; (5)接收和处理PE、I/O操作以及B6700产生的陷阱中断信号。

IlliacIV的输入输出系统包括: 磁盘文件系统DFS, I/O分系统, 一台B6700处理机组成。 I/O分系统由三个部分组成: 2. 输入输出系统 IlliacIV的输入输出系统包括: 磁盘文件系统DFS, I/O分系统, 一台B6700处理机组成。 I/O分系统由三个部分组成: 输入输出开关IOS, 控制描述字控制器CDC, 输入输出缓冲存储器BIOM。

IlliacIV处理阵列由88=64个PU组成。每个PU由处理部件PE和它的局部存储器PEM组成。 每一个PUi只和它的东、西、南、北四个近邻: PUi+1 mod 64、PUi-1 mod 64、PUi+8 mod 64、PUi-8 mod 64直接连接。 南北方向同一列PU连成一个环, 东西方向构成一个闭合螺线。 闭合螺线网络直径为7步, 环形网格的直径为8步。

例如:从PU0到PU36,采用环行网格必须8步: 或 PU0PU8PU16PU24PU32PU33PU34PU35PU36 或 … 如果采用闭合螺旋线,只需要7步: PU0PU63PU62PU61PU60PU52PU44PU36 或 PU0PU63PU55PU47PU39PU38PU37PU36 或 …… 对于n×n个单元的阵列,网络直径为n-1。

二维闭合螺旋线网格网 结点度为4,网络直径为n-1。

8.3.2 BSP处理机 BSP(Buroughs Scientific Processor)计算机是由美国宝来公司和伊利诺依大学于1979年制造的。 BSP是共享存储器SIMD处理机的典型代表。 BSP由5个部分组成: 控制处理机、 SIMD处理机、 文件存储器、 并行存储器模块、 对准网络。

(2)通过输出对准网络把数据送入16个并行处理部件 (3)16个并行处理部件SIMD处理机数据 17个存储模块,每个模块512K字,周期160ns 5级流水线: (1)从17个存储模块中读出数据 (2)通过输出对准网络把数据送入16个并行处理部件 (3)16个并行处理部件SIMD处理机数据 (4)通过输入对准网络把数据从并行处理部件送到并行存储器 (5)把接收到的数据写入并行存储器 时钟周期160ns,向量运算速度50MFLOPS。

执行存放在控制存储器中的操作系统和用户程序的标量部分。 把全部的向量指令及成组的标量指令送给SIMD处理机。 2. 控制处理机 控制处理机主要用来控制SIMD处理机。 提供与系统管理机相连的接口。 执行存放在控制存储器中的操作系统和用户程序的标量部分。 把全部的向量指令及成组的标量指令送给SIMD处理机。 控制维护单元是系统管理机与控制处理机之间的接口,用来进行初始化、监控命令通信和维护。

计算任务文件从系统管理机加载到文件存储器,由控制处理机执行。 文件存储器是在BSP直接控制下的唯一外围设备。 3. 文件存储器 计算任务文件从系统管理机加载到文件存储器,由控制处理机执行。 文件存储器是在BSP直接控制下的唯一外围设备。 程序执行过程中所产生的暂存文件和输出文件,在将它们送给系统管理机输出给用户之前是存在文件存储器中的。 文件存储器的数据传输率较高,大大地缓解了I/O受限问题。

数据从一个源广播至几个目的地,几个源寻找一个目的地时能分解冲突。 存储器模块和对准网络的组合实现了无冲突访问并行存储器。 4. 对准网络 对准网络采用全交叉开关实现。 数据从一个源广播至几个目的地,几个源寻找一个目的地时能分解冲突。 存储器模块和对准网络的组合实现了无冲突访问并行存储器。 对准网络还可以实现快速傅里叶变换、数据压缩和扩展操作。

只有数组存取和I/O访问并行存储器。等效存储周期为10ns。 5. 无访问冲突存储系统 只有数组存取和I/O访问并行存储器。等效存储周期为10ns。 两次算术运算中需要用到三个变量,产生一个结果,共访问存储器4次,并行存储器和浮点运算之间的频带保持完全平衡。 对于长向量来,中间结果存在寄存器中,每次运算只需要一个操作数。因此并行存储器有足够的频宽留给输入和输出信息用。 实现一维向量和二维矩阵的行、列、对角线和反对角线的无冲突访问。

8.4 SIMD处理机算法举例 8.4.1 有限差分问题 8.4.2 矩阵乘 8.4.3 求累加和

SIMD处理机特别依赖于并行算法。 并行算法的一个关键是提高向量化的程度。 在设计并行算法时,要特别注意: 数据在多个存储模块之间的分布。 要解决好访问存储器的冲突问题。 互连网络并不能提供所有处理单元之间的连接,因此,并行算法要充分利用互连网络的结构。

把连续方程变换成离散形式。二阶偏导数表示为差分形式: 8.4.1 有限差分问题 有限差分方法是一种通用和有效方法: 把连续方程变换成离散形式。二阶偏导数表示为差分形式:

并代入原方程,则可得有限差分计算公式: 其中:(x, y)为平面直角坐标, h为网格间距。 IlliacIV的阵列结构特别适合计算这种在网格上定义的有限差分函数。 把内部网格点分配给各个处理单元,计算过程可以并行完成。 运算速度的提高可以与处理机数目成正比。

矩阵乘是典型的并行程序,非常适合在SIMDSIMD处理机上运行。 例如:A、B、C均为8×8的二维矩阵,则C=A×B的计算公式为: 8.4.2 矩阵乘 矩阵乘是典型的并行程序,非常适合在SIMDSIMD处理机上运行。 例如:A、B、C均为8×8的二维矩阵,则C=A×B的计算公式为: 在串行机上要用一个三重循环程序,乘法和加法分别为512次。

如果在SIMD处理机上求解,FORTRAN语言程序如下: DO 10 I=0,7 C(I, J)=0 DO 20 K=0, 7 20 C(I, J)=C (I, J )+A(I, K) * B(K, J) 10 CONTINUE 可以在8个PE的SIMD处理机运行,运算速度可提高8倍。也可在64个PE的SIMD处理机上运行 数据如何分布到各个局部存储器中?

在SIMD处理机上,J循环只需一次。 PE0:c00=a00b00+a01b10+a02b20……+a07b70 PE1:c01=a00b01+a01b11+a02b21……+a07b71 …… PE7:c07=a00b07+a01b17+a02b27……+a07b77 PE0:c10=a10b00+a11b10+a12b20……+a17b70 PE1:c11=a10b01+a11b11+a12b21……+a17b71 PE7:c17=a10b07+a11b17+a12b27……+a17b77 PE7:c77=a70b07+a71b17+a72b27……+a77b77

8.4.3 求累加和 把N个数的顺序相加变为并行相加。 串行求和的 FORTRAN 程序如下: C(-1)=0 DO 10 I=0, N 10 C(I)=C(I-1)+A(I) 在SIMD处理机上,采用递归加法,FORTRAN 程序如下: DO 10 I=0,log2N-1 10 A=A+SRL(A, 2**I) ;A向量右移2i个PE 在SIMD处理机上只需做 log2N 次加法。

运算次数增加:从N次增加到N·log2N次 效率降低:实际效率为1/log2N 递归求和算法的性能分析: 运算速度提高:加速比为N/log2N倍 运算次数增加:从N次增加到N·log2N次 效率降低:实际效率为1/log2N 如:N=1024,速度提高100倍,运算次数增加10倍,效率只有1/10 如果N=220,即100万个数求和,速度可以提高5万倍。 这种方法也称为级联求和,或递归求和。 与流水线中采用的方法类似,它利用加法结合律来提高并行度。

本章重点: 1.并行处理的基本结构 2.并行处理的特点 3.典型的SIMD处理机算法 练习题: 8.3 8.6(改为:n个PE) 8.12