如何看显卡是否工作 (显卡是如何工作的科普)

显卡是如何工作的科普,显卡是如何工作的

自从3dfx 发布了最初的 Voodoo 加速器以来,不起眼的显卡那样对你的机器是否能够游戏产生了很大的影响。 虽然其他组件绝对重要,但是一台拥有32gb 内存、500美元 CPU 和 PCIe-based 的存储器的高端 PC,如果被要求以现代的分辨率和细节级别在一张10年前的卡上运行现代的 AAA 大作,那么它将会窒息而死。 图形卡(也通常称为 gpu 或图形处理单元)对于游戏性能至关重要,我们对它们进行了广泛的介绍。 但是我们并不经常深入研究究竟是什么让 GPU 运转,以及这些卡是如何工作的。

这将是一个高层次的 GPU 功能概述,涵盖通用的 AMD、英伟达、英特尔的集成 GPU,以及任何独立的卡。 苹果、 图像技术、高通、 ARM 和其他厂商开发的移动 gpu 也应该使用这种技术。

为什么我们不用 cpu 运行渲染?

我想说的第一点是,为什么我们不首先在游戏中使用 cpu 来完成工作。 对这个问题的诚实回答是,您可以直接在 CPU 上运行完成,至少在理论上是这样。 早在显卡普及之前的早期 3d 游戏,如 Ultima Underworld,完全在 CPU 上运行。 由于多种原因,UU 是一个有用的参考案例ーー它有一个比 Doom 等游戏更先进的渲染引擎,全面支持上下查找,以及当时高级的纹理映射特性。 但是,这种支持付出了沉重的代价ーー许多人缺乏一台真正能够运行游戏的电脑。

显卡是如何工作的科普,显卡是如何工作的

在 3d 游戏的早期,许多游戏如《半条命》和《雷神之锤2》都有软件渲染器,可以让玩家在没有 3d 加速器的情况下玩游戏。 但是我们放弃这个选项的原因很简单: cpu 被设计成通用的微处理器,换句话说,它们缺乏 gpu 提供的专用硬件和功能。 一个现代的 CPU 可以轻松处理18年前在软件中运行时会出现卡顿的游戏,但是如果在这种模式下运行,从今天开始,地球上没有 CPU 可以轻松处理现代的 AAA 游戏。 至少,在场景、分辨率和各种视觉效果没有重大变化的情况下是不可能的。

什么是 GPU?

GPU,即图形处理器,是一种具有一系列特定硬件功能的设备,可以很好地映射各种 3d 引擎执行代码的方式,包括几何设置和执行、纹理映射、内存访问和着色器。 3d 引擎的工作方式和 GPU 设计者构建硬件的方式之间存在着某种联系。 你们中的一些人可能还记得,AMD 的 HD 5000系列使用的是 VLIW5架构,而 HD 6000系列的某些高端 gpu 使用的是 VLIW4架构。 随着 GCN 的出现,AMD 改变了它的并行处理方式,以每个时钟周期提取更多有用的指令执行闻名。

显卡是如何工作的科普,显卡是如何工作的

Nvidia 首次创造了“ GPU”这个词,是在发布了最初的 GeForce 256,并支持在 GPU 上进行硬件转换和光线计算(这与微软(Microsoft)的 directx7的发布大致相当)。 将专业能力直接集成到硬件中是早期 GPU 技术的一个特点。 许多这些专门的技术仍在使用(以非常不同的形式) ,因为有专门的资源在芯片上处理特定类型的工作负载比试图在一个可编程核心阵列中处理所有的工作更省电、更快。

Gpu 和 CPU 内核之间有很多不同之处,但是在高层次上,你可以这样考虑它们。Cpu 通常被设计为尽可能快速有效地执行单线程代码。诸如 SMT / Hyper-Threading 之类的特性改进了这一点,但是我们通过并排堆叠更高效的单线程核心来衡量多线程性能。Amd 的32核 / 64线程 Epyc 处理器是目前市面上最大的处理器。从这个角度来看,Nvidia 最低端的 Pascal GPU 有384个内核。用 GPU 的说法,“核心”指的是比一般 CPU 处理能力小得多的单元。

注意: 你不能仅仅通过比较 GPU 内核的数量来比较或估计 AMD 和 Nvidia 之间的相对游戏性能。 在同一个 GPU 系列(例如,Nvidia 的 GeForce GTX 10系列,或 AMD 的 RX 4xx 或5xx 系列)中,较高的 GPU 核心计数意味着 GPU 比低端卡更强大。

由于不同的体系结构越来越没有效率,所以你不能根据核心计数来对制造商或核心家族之间的 GPU 性能得出直接的结论。 与 cpu 不同,gpu 被设计成并行工作。 Amd 和 Nvidia 都将它们的卡片结构成计算资源块。 Nvidia 称这些块为 SM (串流多处理器) ,而 AMD 称它们为计算单元。

显卡是如何工作的科普,显卡是如何工作的

每个块包含一组核、一个调度程序、一个寄存器文件、指令缓存、纹理和 L1缓存以及纹理映射单元。 可以认为 SM / CU 是 GPU 的最小功能块。 它并不包含所有的东西ーー视频解码引擎、在屏幕上实际绘制图像所需的渲染输出,以及用于与机载 VRAM 通信的内存接口ーー但是当 AMD 提到 APU 有8或11个 Vega 计算单元时,这就是他们所说的(等价的)硅块。 如果你看一个 GPU 的框图,任何一个 GPU,你会注意到它是 sm / cu 在图像中重复了十几次或更多次。

显卡是如何工作的科普,显卡是如何工作的

一个 GPU 中 sm / cu 单元的数量越多,它在每个时钟周期中并行执行的工作就越多。 渲染是一种有时被称为“令人尴尬的并行”的问题,这意味着随着核心数量的增加,它有向上扩展的潜力。

当我们讨论 GPU 设计时,我们经常使用这样的格式: 4096:160:64。Gpu 核心计数是第一个数字。它越大,GPU 的速度越快,只要我们在同一个家族内进行比较(gtx970对 gtx980对 gtx980 Ti,RX 560对 RX 580,等等)。

纹理映射和渲染输出

Gpu 还有两个主要组件: 纹理映射单元和渲染输出。 一个设计中纹理映射单元的数量决定了它的最大纹理输出以及寻址和映射纹理到对象的速度。 早期的3D 游戏使用的纹理非常少,因为绘制3D 多边形形状的工作已经够困难了。 3 d 游戏实际上并不需要纹理,尽管在现代不使用纹理的游戏非常少。

图形处理器中纹理映射单位的数量由4096中的第二个数字表示: 160:64度量。英伟达和英特尔通常将这些数字等效于它们对 GPU 家族的升级和降级。换句话说,你不会真的发现一个 GPU 有一个4096:160:64的配置,而其上面或者下面的 GPU 是一个4096:320:64的配置。纹理映射在游戏中绝对是一个瓶颈,但是产品堆栈中第二高的 GPU 通常会提供至少更多的 GPU 核心和纹理映射单元(高端卡是否有更多的 rop 取决于 GPU 家族和卡的配置)。

渲染输出(有时也称为光栅操作管道)是 GPU 的输出组装成图像显示在显示器或电视上的地方。渲染输出的数量乘以 GPU 的时钟速度控制像素填充率。更高的 rop 数量意味着可以同时输出更多的像素。Rops 还可以处理反走样,并且启用 AA ——特别是超倍增的 AA ——可以导致游戏的填充速率受到限制。

内存带宽,内存容量

我们将讨论的最后一个组件是内存带宽和内存容量。 内存带宽指的是每秒可以从 GPU 的专用 VRAM 缓冲区复制多少数据。 许多高级的视觉效果(以及更高的分辨率)需要更多的内存带宽才能以合理的帧速率运行,因为它们增加了复制进出 GPU 核心的数据总量。

在某些情况下,缺乏内存带宽可能是 GPU 的一个实质性瓶颈。像 Ryzen 52400g 这样的 AMD 的 apu 有很大的带宽限制,这意味着提高 DDR4时钟频率会对整体性能产生重大影响。游戏引擎的选择也会对 GPU 需要多少内存带宽来避免这个问题产生重大影响,就像游戏的目标分辨率一样。

机载内存的总量是 gpu 中的另一个关键因素。如果在给定的细节级别或分辨率下运行所需的 VRAM 数量超过了可用资源,游戏通常仍然可以运行,但是它必须使用 CPU 的主存储器来存储额外的纹理数据ー而且 GPU 从 DRAM 中提取数据所需的时间要长得多,而不是从内置的 VRAM 池中提取数据。当游戏在从本地内存和常规系统 RAM 的快速池中提取数据时,这会导致大规模的卡顿。

需要注意的一件事是,GPU 制造商有时会装备一个低端或中端卡与更多的 VRAM ,作为一种方式提供更多的产品。我们不能完全预测这是否会使 GPU 更具吸引力,因为说实话,结果会因 GPU 的不同而不同。我们可以告诉你的是,在很多情况下,如果一张卡的唯一区别是一个更大的内存缓冲区,那就不值得花更多的钱购买。根据经验,低端 gpu 在被有限的可用内存阻塞之前,往往会遇到其他瓶颈。如果有疑问,在网上查看卡的评论,比较一下2gb 版本是否比4gb 版本更好,或者相应的 RAM 数量是多少。通常情况下,假设两个解决方案之间的所有其他因素都相等,您会发现较高的 RAM 负载不值得为之付费。

【翻译自https://www.extremetech.com/gaming/269335-how-graphics-cards-work】