所有的计算机软件都在硬件上运行,那么如果硬件已经在做这项工作,那么软件使用“硬件加速”到底意味着什么呢?事实证明,有一些方法可以更快地使用计算机硬件。速度要快得多。
什么是硬件加速硬件加速是一种计算方法,其中使用专用硬件执行计算的速度比通用硬件快得多。我们将在一分钟内解释这意味着什么,但总的来说,如果你使用专门的硬件来完成一些常见的任务,速度会快得多。GPU就是一个很好的例子。GPU的另一个历史名称是“3D加速器”,尽管今天它们所做的当然不仅仅是3D图形。
你电脑中的CPU可以做与GPU相同的数学运算,只是GPU可以做得更快,足够快,使复杂的实时3D图形成为可能。典型计算机和移动设备中硬件加速的其他示例是视频编码和解码。大多数现代计算机和手机内部都有专门的芯片,可以快速处理视频,同时使用比全CPU低得多的功率,完成同样的任务。
像CPU和GPU这样的大型处理器在它们自己的结构中有专门的部分,专门用于特殊的工作。例如,NVIDIA RTX图形卡具有GPU的特殊区域,用于加速光线跟踪或AI相关任务。
为什么硬件加速更快硬件加速就是专业化。你的CPU是万事通,但不是万能的。它需要设计中的组件来执行任何可以用二进制代码表示的计算,但这本质上是低效的。举个简单的例子,如果你必须建造一台可以加、减、乘、除数字的机器,那么它的速度不太可能像唯一目的是将数字相加的机器那么快。
硬件加速的缺点是什么硬件加速需要进行一些权衡。最大的问题是灵活性的丧失。当你有硬件来做一件事,或者一小部分相关的事情时,你就放弃了做其他事情的能力。这就是为什么我们总是需要一个这样或那样的CPU,无论你有多少专用协处理器。
硬件加速的另一个显著缺点是,你被锁定在一个特定的进程中。例如,加密货币矿工通常使用ASIC(专用集成电路),这种ASIC在挖掘特定区块链时快速高效。然而,他们无法在其他使用不同“数学”的区块链上挖掘,因此,如果这种形式的加密货币变得无利可图,硬件就会变得无用。你的手机可以加速特定视频编解码器的视频解码,但对于较新的编解码器无法做到这一点。你需要一部新手机!
类似地,游戏Alan Wake 2使用了一种称为网格着色器的图形硬件组件。如果你没有为网格着色器功能提供加速硬件支持的图形卡,则GPU必须转而使用更通用的硬件进行计算,从而导致巨大的性能问题。
对于那些设计微处理器的人来说,还有一个重要的问题,那就是专门的硬件和芯片内部有限的不动产。例如,NVIDIA RTC显卡中的光线跟踪加速硬件可能是通用GPU处理器。这意味着你将放弃非光线跟踪性能,转而支持该功能运行得更快。
何时打开硬件加速简单的答案是,只要硬件加速可用,就应该打开它。在大多数情况下,与使用通用处理相比,对性能的影响是深远的。例如,硬件加速的视频出口会对内容创作者产生真正的财务影响,因为时间就是金钱。
然而,硬件加速并不总是最好的解决方案:
有时硬件加速是应用程序不稳定的原因。例如,web浏览器的硬件加速功能通常会导致问题。这就是为什么关闭浏览器的硬件加速是常见的初始故障排除步骤。
硬件加速有时可能更快,但产生的结果质量较低。所以,如果精确性是一个优先事项,你可能想以慢的方式做事。
然而,如果没有质量或稳定性问题,那么还等什么呢!