GPU(Graphics Processing Unit)是图形处理单元。是个人电脑、工作站以及移动设备等用来进行图像处理的微处理器。显卡是连接计算机主板和显示器的重要元件,可以接受主板的控制信号,转换成显示器能够识别的命令,控制显示器正确显示图像信息。而GPU 就是显卡的处理器,是显卡的“大脑”,专门用来处理图形计算任务。
GPU 架构特点。GPU 架构特点与其需要处理的任务相关,其处理和显示的计算机图形本质上都是二维数据矩阵。计算机图形显示的基本单元是像素点,众多像素点构成各种线段、平面和形状,通常我们说的320*215 的显示屏是指像素点行数是320个,列数是215 个,构成一个320*215 的矩阵,布满整个屏幕。由于图像信息都是以这种矩阵像素点形式存储和呈现的,因此处理图片的GPU 需要以矩阵形式存在的基本处理单元,来分块处理这些矩阵数据。
GPU 与CPU 区别。从GPU 与CPU 架构对比图可以看出,CPU 的逻辑运算单元(ALU)较少,控制器(control)占比较大;GPU 的逻辑运算单元(ALU)小而多,控制器功能简单,缓存(cache)也较少。GPU 的众多逻辑运算单元呈矩阵排列,可以并行处理数量众多但较为简单的处理任务,图像运算处理就可以进行这样的拆解。GPU 单个运算单元处理(ALU)能力弱于CPU,但是数量众多的运算单元可以同时工作,当面对高强度并行计算时,其性能要优于CPU。
以英伟达Maxwell 架构的GM200 处理器说明GPU 的内部结构。该处理器由4 个图形处理集群(GPC)和16 个流处理集群(SMM)组成。每个流处理集群又由4个调度器组成,每个调度器控制着32 个逻辑计算内核(core),这些计算内核就是实现逻辑运算的基本单元。相对于CPU 的“多核”,GPU 算得上是“众核”。
GPU 处理流程。在电脑中,GPU 被集成在显卡中进行图形处理。整个计算机运行时,CPU 将图形处理任务交给GPU 进行处理。GPU 从CPU 获得指令后,把大规模、无结构化的图像数据分解成许多独立的块,分配给各个流处理集群(SMM)。每个流处理集群再次把数据分解,分配给调度器,调度器将任务放入自身所控制的32个计算内核(core)中完成最终的数据处理任务。如果将一个core 的运算过程记为一个线程,那么该显卡就有32*4*16=2048 个线程同时进行。而当前英特尔最强大的酷睿X 系列处理器顶配也只能做到18 核、36 线程。这些任务单一、数量众多同时进行的线程可以大大缩短计算机运算时间,这即是GPU 在图形处理方面的优势所在。