第一章 量化设计与分析基础
并行度与并行体系结构的分类
应用程序两种主要的并行:
- 数据级并行(DLP):可以同时操作许多数据项
- 任务级并行(TLP):创建了一些能够单独处理但大量采用并行方式执行的工作任务
计算机硬件以如下4种主要方式开发应用级并行:
- 指令级并行:在编译器的帮助下,利用流水线思想、推理执行思想开发数据级并行
- 向量体系结构和图形处理器(GPU):将单条指令并行应用于一个数据集来开发数据级并行
- 线程级并行:在一种紧耦合硬件模型中开发数据级并行或任务级并行,这种模型允许在并行线程之间进行交互
- 请求级并行:在程序员或操作系统指定的大量去耦合任务之间开发并行
指令流数据流分类:
- 单指令流、单数据流(SISD):标准的顺序计算机,但是可以利用指令级并行
- 单指令流、多数据流(SIMD):同一个指令由多个使用不同数据流的处理器执行,可以开发数据级并行,对多个数据项并行执行相同操作。每个处理器都有自己的数据存储器,但是只有一个指令存储器和控制处理器,来提取和分派指令
- 多指令流、单数据流(MISD):目前还没有这种类型的商用处理器
- 多指令流、多数据流(MIMD):每个处理器都提取自己的指令,对自己的数据进行操作,它针对的是任务级并行
计算机体系结构的定义
指令集体系结构(ISA)
- ISA分类,所有最新ISA都采用载入-存储版本
- 寄存器-存储器ISA:可以在许多指令中访问存储器
- 载入-存储ISA:只能用载入或存储指令访问存储器。
- ISA编码
- 固定长度:所有ARM/MIPS指令的长度都是32位,简化指令译码级,编译的程序占用较多空间
- 可变长度:x86指令变长,编译的程序通常可以占用较少空间
- ISA分类,所有最新ISA都采用载入-存储版本
计算机实现:组成和硬件
- 组成:计算机设计的高阶内容,包括存储器系统/存储器互联/设计内部处理器等
- 硬件:计算机具体实现,包括逻辑设计和封装技术
计算机体系结构:
- 指令集体系结构
- 组成或微体系结构
- 硬件
计算机设计的量化原理
充分利用并行式提高性能最重要的方法之一。
局部性原理:时间局部性/空间局部性
Amdahl定律:
- 回报递减规律:如果仅改进一部分计算性能,在增加改进时,所获得的加速比增量会逐渐减小