高性能计算导论 笔记 1
并行计算
并行计算硬件模型
Flynn分类法,按照指令流(Instrcution Stream)与数据流(Data Stream)进行分类,其中指令流是指处理器操作指令的流水线数量,数据流是指一条指令操作的数据数量:
- SISD:单指令流,单数据流
- SIMD:单指令流,多数据流(例如Intel CPU上的大位宽算数指令)
- MISD:多指令流,单数据流
- MIMD:多指令流,多数据流
对于NVIDIA GPU,其中每一个计算流称为一个Streaming Multiprocessor(SM),每一个SM中包含若干个Warp,Warp是变成可操作的最小计算单元,每个Warp中包含32个Core,其中的每一个Core可以操作不同的数据,也就是说其规定了操作数的个数,这被称为SIMT(Single Instruction Multiple Threads)
同样我们还能按照其他的方式对硬件进行分类
内存视角
- 共享内存:所有处理器都与共享内存相连,处于同一个地址空间下,任何处理器可以访问任意内存位置,还可以细分为:
- 均匀内存访问架构(UMA):性能均等,难以扩展
- 非均匀内存访问架构(NUMA):每个单元有局部内存,跨单元代价高
- 分布式内存:每个处理器有自己的地址空间,需要显示通信来访问其他单元的内存
