什么是图形处理单元(GPU)及其工作方式。

2017年4月10日,Pradhyumna

通用CPU非常适合日常的音频,视觉工作量和宏(例如使用文字处理器,播放视频,运行通用代码和程序,处理文件)和计算,但是在需要大量数据的情况下通过视觉和几何计算以及浮点运算来显示充满复杂3D对象的复杂场景,CPU需要借助专用的图形处理和渲染设备(GPU可以在其中实现图形化)。

今天,视频游戏和其他图形媒体中图形细节的复杂性和数量令人震惊,并且还在不断发展。

CPU通常具有数量有限的高性能内核,而GPU的体系结构则侧重于并行性。 GPU包含1000个核心,它们可以执行图形和几何计算,并执行对象转换(例如平移,应力,剪切)以对对象进行动画处理

CPU通过高速PCIe接口与GPU对话,GPU插入PCIe插槽,图形应用程序和OS均不直接与GPU对话,而是CPU使用各种AP​​I,例如DirectX,OpenGL,Vulkan等。上。

在虚幻引擎4中渲染的逼真的场景

这些Graphics API告诉CPU向GPU发出绘制调用,告诉它在屏幕上绘制的内容(通过HDMI / DVI电缆输出到显示器)

GPU由一块位于PCB上的小型图形处理芯片和多个内存控制器组成,以访问卡上VRAM(视频RAM)的各个单元。 存储器带宽取决于总线宽度和存储器时钟速度。

GPU需要在VRAM中存储所有各种图形参数,例如光源及其位置,场景中对象的位置,像素着色器信息,多边形,各种顶点和颜色信息等,以用于生成最终渲染的图像或场景。

这是当今游戏中图形逼真程度的一个示例:

蝙蝠侠阿卡姆骑士

GPU包含以特定方式布置的1000个专用内核阵列。

首先,我们有数量众多的着色器核心或着色器单元,可以处理像素着色。 当今的GPU使用统一着色,其中所有着色器核心都执行所有着色器功能,

  • 顶点着色(使用顶点和点):顶点着色器将虚拟空间中每个顶点的3D位置转换为实际在屏幕上显示的2D坐标位置。 顶点着色器可以操纵诸如位置,颜色和纹理坐标之类的属性,但是不能创建新的顶点。
  • 像素着色(像素级别的颜色和深度):像素着色器是2D着色器,用于计算像素级别每个像素的颜色和深度值。 他们可以保持输出相同的颜色,应用照明值,阴影,凹凸贴图等。
  • 几何着色(在Direct3D 10和OpenGL 3.2中引入):几何着色器能够从较早期的基本图元生成较新的图形图元,例如线,点和三角形,这些图形图元是在渲染的较早阶段输入的。
  • Tessellation着色(在OpenGL 4.0和Direct3D 11中添加):Tessellation着色阶段添加了两个新的子阶段,即船体着色和区域着色,这两个子阶段结合在一起后,可以在运行时根据功能将简单的网格细分为更精细的网格。

GPU的另一个重要组件是TMU(纹理映射单元),它们执行缩放和变换功能,将2-D位图映射到3-D模型上。

TMU影响称为纹理填充率的参数,该参数是可渲染与模型上各种纹理相关的像素的速率。

最终组件是渲染输出单元(ROP),这些单元通过称为“栅格化”的过程来计算和确定阴影和纹理化像素的最终像素值。

战地1

此时使用一种称为“抗锯齿”的后处理技术,“抗锯齿”可减少图像中的锯齿或阶梯效应,从而产生更清晰的图像。

ROP将最终输出写入帧缓冲区中的相应位置作为帧缓冲区值。

可以通过GPU的时钟速度(以Hz为单位)来衡量所有这些过程的完成速度。

此外,通过将所有计算卸载到GPU上可用的1000核中,GPU可以用于执行大规模的浮点运算。

了解GPU及其工作原理是否有趣而有趣? 评论下面,让我们知道!