通用图形处理器设计——GPGPU编程模型与架构原理(一)

第1章 GPGPU概述

GPGPU(General Purpose Graphics Processing Unit,通用图形处理器):由GPU逐渐发展成为并行计算加速的通用图形处理器;能够很好地适应当今并行计算的需求,已经成为深度学习训练和推理任务最重要的计算平台。

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

  • 处理单元:具有指令处理和计算能力的逻辑电路。(处理器核心,处理器芯片或整个计算节点)
  • 处理单元的集合:定义了并行计算具有一定规模。
  • 通信:处理单元彼此之间的数据交互。
  • 协作:并行任务在执行过程中相对于其他任务的同步关系,约束了并行计算机进行多任务处理的顺序,保障其正确性。
  • 快速解决一个大问题:表明了并行计算机是为解决一个问题而工作的,设计目标是性能。

并行体系结构

指令流:由单个程序计数器产生的指令序列;

数据流:指令所需数据及其访问地址的序列。

(1)单指令流单数据流(SISD):不是并行体系结构,但也可在指令相互独立时实现多条指令的并行,在程序计数器的控制下完成指令的顺序执行,处理一个数据。传统的单核CPU是SISD的代表。

(2)单指令流多数据流(SIMD):一条指令对多个数据进行操作。通常要求问题中包含大量对不同数据的相同运算,需要有高速I/O及大容量存储来实现高效并行。向量处理器是SIMD的典型代表。

(3)多指令流单数据流(MISD):采用多条指令来处理单条数据流,数据可以从一个处理单元传递到其他处理单元实现并行处理。脉冲阵列结构是MISD的一种实例。

(4)多指令多数据流(MIMD):最通用的并行体系结构模型,对指令流和数据流之间的关系没有限制,各个处理单元可以执行同一程序,也可以执行多个不同程序。通用性强但可能导致效率较低。多核处理器属于MIMD的范畴。

并行体系结构有多种实现方式,最基本的方式是单核内指令级并行,即处理器可以在同一时刻执行多条指令。流水线技术是实现指令级并行的关键使能技术

GPU与CPU体系结构对比

CPU:CPU架构中大部分用于构建控制单元和存储单元。一般处理低延迟任务,所以需要L1,L2,L3 cache空间来减少访问指令和数据时产生的延迟。

GPU:控制相对简单,对cache需求较小,大部分晶体管可以组成各类专用电路,多条流水线,以提升算力。图形渲染的高度并行性,使得GPU可以通过简单增加处理单元和存储器控制单元的方式提高处理能力和存储器宽带。

GPU逻辑图形流水线

通用图形处理器设计——GPGPU编程模型与架构原理(一)_第1张图片

统一图形和计算处理单元的GPU架构:

通用图形处理器设计——GPGPU编程模型与架构原理(一)_第2张图片

现代GPGPU产品:NVIDIA、AMD、Intel等 。

你可能感兴趣的:(前端)