【GPGPU编程模型与架构原理】第一章 1.2 GPGPU 发展概述

1.2 GPGPU 发展概述

  l随着半导体工艺水平不断提高和计算机体系结构设计的不断创新,GPU快速发展,从传统图形图像相关的三维图形渲染专用加速器拓展到多种应用领域,形成通用的图形处理器。

1.2.1 GPU

图形图像任务:在计算过程中,将三维立体模型转化为屏幕上的额日为图像需要经过一系列的处理任务,这些处理步骤在实际设计中会形成图形处理的流水线。
图形流水线需要通过不同的应用程序接口来定义它们的功能,主要是两种标准:OpenGL 和Direct3D。三维场景输入,输出二位图像显示器,主要步骤如下:

  • 输入阶段。运行在CPU上的程序是整个图形流水线的入口处,改应用程序负责构建想要渲染在屏幕上的集合图形。
  • 顶点处理。接收到CPU发送来的顶点信息后,顶点着色器对每个顶点的数据进行一系列的变换,包括几何变换、视图变换、投影变换等,实现顶点的三维坐标向屏幕的二位坐标的转化。
  • 几何处理。几何处理器对由多个顶点组成的几何图元进行操作,实现逐图元着色或产生额外的图元,各个图元之间的处理也是相互独立的。
  • 像素处理。这些像素或由像素组成的片段通过像素着色器添加纹理、颜色和参数等信息。
  • 输出合并。最后阶段执行Z-buffer深度测试和模板测试,丢弃隐藏片段或段深度取代像素,并将段颜色和像素颜色进行合成,将合成后的颜色写入像素点。

随着图形处理需求的日益复杂复杂和硬件加速性能的不断完善,由越来越多的功能 被添加到图形流水线中,形成更丰富的图形流水线操作步骤和流程。其中顶点处理、几何处理和像素处理是可编程的部分。

1.2.2 从GPU 到GPGPU

20世纪90年代,GPU被局限于处理图形渲染的j计算任务,对于拥有强大计算能力的GPU来说,这是对计算资源的极大浪费。随着GPU可编程性的不断提高,GPU接管一部分适合自己运算的应用,利用GPU完成通用计算的研究也渐渐活跃GPU开始应用于通用领域 ,逐渐发展维GPGPU。

GPU发展的三大时代,即固定功能的图形流水线时代、可编程的图形流水线阶段和GPGPU通用计算时代。

  • 20世纪80年代初到90年代末,固定功能流水线性能最好,但是不可编程,已呢次不够灵活。早起的GPU只能进行二维的位图操作,20世纪90年代末,出现了硬件加速的三维坐标转换和光源计算技术
  • 2001-2006年,可编程实时图形流水线的出现将顶点处理和片段处理移动到了可编程处理器上。例如,以前的固定图形流水线中需要CPU计算每一帧的顶点变化后传递给流水线执行。单顶点着色器出现之后,CPU只需要吧顶点数据准备好,然后在顶点着色器中编程控制顶点的各种属性。这样CPU指需要在开始传递一次数据给GPU,大大节省了数据传输消耗的时间。
  • 2006年。NVIDIA公布统一着色器架构和GeForce8 系列GPU。传统 GPU厂商采用固定比例的顶点着色器和像素着色器,但这会导致单元利用率低下,为解决这个问题,统一着色器架构整合了顶点着色器和像素着色器,这种无差别设计,使得GPU成了一个多核的通用处理器。
  • 第三个时代可以认为是2007年6月NVIDIA 推出的CUDA。CUDA 是一种将GPU 作为数据并行计算设备的软硬件体系。不需要使用图形学API,而是采用容易的类C 语言开发。与以往相比,支持CUDA的GPU 在架构上有了明显的改进。一是采用了统一处理架构,可以有效的利用过去分布在顶点着色器和像素着色器的计算资源;二是引进了片内共享存储器,支持随机写入(scatter)和线程间通信。

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