GPU卡到底是干什么用的?

在GPU出现之前,显卡和CPU的关系有点像“主仆关系”。简单来说,这个时候的显卡就是一个画刷,根据CPU发出的各种指令和数据,对材质进行着色、填充、渲染和输出。

早期的娱乐用3D显卡也叫“3D加速卡”。因为大部分的坐标处理工作和光影特效都需要CPU亲自处理,占用了CPU太多的计算时间,导致整体画面无法非常流畅的显示。

例如,要渲染一个复杂的3D场景,需要在一秒钟内处理数千万个三角形顶点和光栅化数十亿个像素。早期的3D游戏,显卡只是为屏幕显示的像素提供一个缓冲,所有的图形处理都是CPU一个人完成的。图形渲染适合并行处理,擅长串行工作的CPU其实无法胜任这项任务。所以当时在PC上实时生成的三维图像非常粗糙。但是从某种意义上来说,当时的图形绘制是完全可编程的,只是CPU负责这个重要的任务,速度确实达不到要求。

随着时间的推移,CPU各种光影运算的速度已经越来越不能满足游戏开发者的要求。更多多边形和特效的应用,榨干了几乎所有的CPU性能,矛盾产生了...

GPU的诞生

英伟达在8月31,1999发布GeForce 256图形处理芯片时,首次提出了GPU的概念。

GPU之所以被称为图形处理器,主要是因为它可以执行几乎所有与计算机图形相关的数据操作,而这在以前是CPU的专利。

目前,计算机图形学正处于一个前所未有的发展时期。近年来,GPU技术正以惊人的速度发展。渲染速度每六个月翻一倍。从1999年开始,这些年性能翻了10倍100倍,也就是(10的2次方)提升了上千倍!同时不仅提高了性能,也逐渐提高了计算质量和图形编程的灵活性。

以前的PC和电脑工作站只有图形加速器,没有图形处理器(GPU),图形加速器只能简单的加速图形渲染。GPU取代图形加速器后,要抛弃图形加速器的旧观念。

GPU结构

GPU的全称是图形处理单元——图形处理器,它最大的功能是执行绘制计算机图形所需的各种操作,包括顶点设置、光影、像素操作等等。GPU其实就是一组图形功能,这些功能都是通过硬件来实现的。以前这些任务都是由CPU配合特定的软件来完成的,GPU从某种意义上来说是在图形处理中起主导作用的。

一个简单的GPU结构图包含一个标准的GPU,包括2D引擎、3D引擎、视频处理引擎、FSAA引擎和内存管理单元。其中3DEngine在3D计算中起着举足轻重的作用,是现代3D显卡的灵魂,也是区分GPU水平的重要标志。3DEnglne是各公司产品中宣传攻势的重点照顾对象,名字越来越响,比如NVIDIA的nFjnjtFX系列,CineFX系列,AMD的SmoothVision系列。一个3d引擎通常包含t &;L unit、VertexProeessingEngine、SetupEngine、PiexlShader等。

GPU的工作原理

GPU中的数据处理流程

现在我们来看看第二代GPU是如何完整处理一张图片的!首先,来自CPU的各种物理参数进入GPU,顶点着色器会对顶点数据进行基本判断。如果没有要处理的顶点效果,顶点数据会直接进入T &;l单元执行传统的t & amp;l节约时间,提高效率。如果需要处理各种顶点效果,顶点着色器会先计算各种顶点程序的指令。一般来说,顶点程序往往包含了过去需要实现的T&的效果,比如转换、裁剪、光照操作,所以顶点着色器处理的效果一般不需要T & ampl操作。此外,当涉及到曲面镶嵌(将曲面,如拱门,转换为多边形或三角形)时。CPU可以直接将数据交给顶点着色器进行处理。

另外,在DireetX的变换过程中,顶点着色器可以完成Z值的剔除,也就是背面剔除——隐藏面。这意味着除了视野外的顶点,视野内的斜坡前点所覆盖的顶点也会被切掉,大大减少了需要操作的顶点数量。

接下来,VertexShader处理的各种数据会流入SetupEngine,在这里运算器会设置三角形,这是整个绘制过程中最重要的一步。设置引擎甚至直接影响GPU的执行效率。三角形设置过程由多边形组成,或者用更好的三角形代替原来的三角形。在3D图像中,一些三角形可能会被它前面的三角形遮挡,但在这个阶段,3D芯片不知道哪些三角形会被遮挡,因此三角形构建单元接收到由三个顶点组成的完整三角形。三角形的每个角(或顶点)都有相应的X轴、Y轴和Z轴坐标值,这些坐标值决定了它们在3D场景中的位置。同时,三角形的设置也决定了像素填充的范围。至此,VertexShader的工作完成。