似乎两大 GPU 制造商不断发布更新的驱动程序,这些驱动程序在这里和那里都有小幅的性能提升。当它们用于同一场比赛时,我敢打赌它会随着时间的推移而累加。
考虑到这一点,为什么我们从来没有听说过 AMD 或 Intel 为某个应用程序或 Windows 版本或其他东西调整 CPU 驱动程序?
Ben*_*rds 13
首先,有时会发布驱动程序补丁,可能会为特定 CPU 提高性能或提高效率。但显然你问这个问题是因为它并不常见。然而,CPU 驱动程序优化在概念上是相似的。
GPU 是一个非常复杂的电路。它的存在是为了卸载在 CPU 上需要很长时间才能完成的某些任务。他们接收数据集,以及如何处理这些数据的指令。GPU 必须能够以可管理的方式对数据进行排序,并解释指令以告诉它该做什么。然后,它必须对数据执行一系列数学运算。之后,它必须再次对数据重新排序,并在完成后将结果发送回操作系统。这是对计算机图形管道的非常简单的描述。在数据准备好用于程序之前,必须采取多个步骤。
现在,由于 GPU 必须接受指令集并在硬件中实现非常复杂的数学运算,因此已知某些事物会通过此管道运行得更快或更慢。为设备编写驱动程序的一部分是解释发送到设备的数据和指令,翻译它以便设备可以理解它。当驱动程序执行此操作时,它可以决定如何将数据发送到设备,以便任务将花费尽可能短的时间。然而,驱动程序通常没有太多关于它所服务的程序正在做什么的信息。它从程序接收到的只是 API 调用(“画一条线”、“给点上色”、“给三角形着色”等)。因此,它可以做出的假设不是很好。
当 AMD 或 nVidia 发布包含针对特定游戏的性能改进的驱动程序更新时,这意味着驱动程序将检测哪个游戏正在调用图形硬件,并具有一系列关于游戏如何进行的硬编码假设实施的。可能是游戏有很多纹理图像需要在内存中快速交换,或者它在运行中进行了大量颜色混合以产生某些照明效果。通常游戏要做的是实现描述如何执行这些计算的小程序(称为“着色器”),然后将其发送到 GPU 执行。如果驱动程序知道游戏如何使用硬件,它就可以组织数据并选择指令集,以提高吞吐量和效率的方式执行所需的任务。
但有时,在产品发货后,可能会在 GPU 的某些部分发现错误。在设计芯片时,它可能很模糊,以至于在验证中被遗漏了,但可能会发现它会在命中它的特定游戏中导致一些错误或不良行为(甚至崩溃)。在这种情况下,驱动程序将检测到这种有问题的状态并解决它,方法是将一些计算卸载到 CPU 端,或者更改它向 GPU 馈送数据的方式,使其不进入此状态。这些将再次以驱动程序更新的形式发布。
所以基本上,它不会改变硬件本身的性能,它只是改变它使用硬件的方式,以便它可以在同一组数据上更高效、更快速地运行。
saw*_*ust 10
“CPU 驱动程序”很少存在,当然也不是可加载的模块。偶尔需要“CPU 驱动程序”来处理多核控制或中断处理的某些变化(例如,AMD 双核需要 WinXP 驱动程序才能充分利用)。否则,大多数操作系统都被配置和构建为直接访问 CPU。如果问题出现并且很严重,则会修补内核代码并发布内核更新。
GPU 不再只是外围设备;它们已经演变成协处理器。“GPU 驱动程序”不仅提供设备访问,还包括封装在驱动程序中的 GPU 处理算法(即图形子程序)。这些“驱动程序”的大小是一个赠品/线索。正是这些算法/子程序正在得到改进。
| 归档时间: |
|
| 查看次数: |
1196 次 |
| 最近记录: |