【GPGPU编程模型与架构原理】第一章 1.1 GPGPU 与并行计算机

  GPGPU是通用图形处理器。由于产业游戏的推动,GPU成为专门为提升图形渲染效率的而设计的处理器芯片。随着功能的不断完善,GPU逐渐发展成为并行计算加速的通用图形处理器,即GPGPU。近年来,人工智能的发展,GPGPU由于其强大的计算能力和高度灵活的可编程性,已经成为深度学习训练和推理任务最重要的计算平台。

1.1GPGPU 与并行计算机

并行计算机:并行计算是一些处理单元的集合,它们通过通信和协作快速解决一个大的问题。

  • 处理单元:具有指令处理和计算能力的逻辑电路。一个处理单元既可以是一个算术逻辑单元,也可以是处理器核心、处理器芯片或者整个计算节点。
  • 处理单元的集合:说明并行计算有一定的规模性
  • 通信:是指处理单元之间进行数据交互。通信明确了两类并行体系结构:共享存储结构和消息传递结构
  • 协作:指并行任务在执行过程中相对于其他任务的同步关系,约束了并行计算进行多任务处理的顺序,保证其正确性。
  • 快速解决一个大的问题:并行计算机是为解决一个问题工作的,其设计目标是性能

从定义看,GPGPU体系结构也符合并行计算机的定义,而且它明确的采用了类似单指令多数据的设计方式和实现方法,成为当今并行计算机最成功的的设计范例之一。

1.1.1 并行体系结构

·根据指令流和数据流定义并行计算机的类型。指令流是单个程序计数器产生的指令序列,数据流是指令所需要的数据和其访问地址的序列,包括输入数据、中间数据和输出数据。

  • 单指令流单数据流(SISD):这个并不是并行体系结构,但他可以利用指令级并行,在指令相互独立时实现多条指令的并行。传统的单核CPU是SISD典型代表。
  • 单指令流多数据流(SIMD):一条指令对多个数据进行操作,向量处理器就是典型代表。实际中,SIMD通常要求问题中包含大量对不同数据的相同运算,SIMD需要高速 I/O 和大容量存储来实现高效并行。GPGPU也借鉴了SIMD,通过内置很多SIMD处理单元和多线程抽象来实现强大的计算处理能力。
  • 多指令流单数据流(MISD):采用多条指令来处理单条数据流,数据可以从一个处理单元传递到另一个处理单元实现并行处理。一般认为,脉动阵列是MISD的实例,例如谷歌的TPU系列深度学习加速器。
  • 多指令流多数据流(MIMD):最为通用的体系结构,它对指令流和数据流之间没有限制,各个处理程序既可以执行同一程序,也可以执行不同的程序。MIMD通用性搞,但设计复杂导致性能低下。

并行体系结构最基本的方式是单核内指令级并行,即处理器在同一时刻可以执行多条指令。

  • 流水线技术是实现指令级并行的使能技术
  • 采用流水线技术设计的指令级并行微处理器内核已经成为设计典范
  • 在这个基础上是多线程和多核并行,即一个芯片上集成多个处理单元或处理核心,同时完成多个任务
  • 再上一个层次是计算机并行,即多个芯片通过专用的网络连接在一起实现更大规模的并行
  • 更高层次并行是仓储级计算器,即借助互联网技术将数以万计的处理器和计算节点连接在一起,每个节点是一个独立的计算机,并具备前面描述的多种层面的并行。

指令级和数据级并行适合在内核完成,因为它所需要的寄存器传输级(RTL)通信和协作在核内以极低的延迟完成。

现代处理器中的每个核心都会综合运用流水化、超标量、超长指令、分支预测、乱序执行等技术充分挖掘指令级并行。相对来说,MIMD的并行层次更高,会更多的利用多个处理单元、多个处理单元、多个处理核心和多个处理器或更多节点来实现。

你可能感兴趣的:(GPGPU编程模型与架构原理,GPGPU,通用图形处理器设计)