50% 的 CPU 使用率是否表明超线程 CPU 存在瓶颈?

50% 的 CPU 使用率是否表明超线程 CPU 存在瓶颈?

我正在尝试提高视频游戏中的 FPS,因此我试图找到系统中的瓶颈。似乎没有任何东西可以以 100% 的速度运行,即使 FPS 限制远高于实际 FPS(出于测试目的,我最高可以达到 80 FPS,而限制为 240)。

但后来我突然想到,我有一个超线程 CPU,其“虚拟”核心数量是“真实”核心的两倍。也许核心没有显示 100% 的使用率,因为如果正确使用超线程,则任何“虚拟”核心都不应该真正以 100% 运行。

我的理解是否正确?当我的核心以平均 50% 的速度运行时,这是否意味着 CPU 实际上以最快的速度运行?

答案1

即使没有给出物理核心的数量,该原则也应该适用于所有数量的核心/虚拟处理器。

例如,如果应用程序确实创建了两个满负荷线程,那么在具有一个内核(1 个虚拟 CPU)的机器和具有一个超线程内核(2 个虚拟 CPU)的机器上,CPU 负载将达到 100%。
添加第二个内核可使负载保持在 100%(2 个虚拟 CPU),添加第二个超线程内核可使负载降低到 50%(4 个虚拟 CPU),也就是说,应用程序似乎无法将其工作负载分配到更多处理器,因此,人们可以将软件视为瓶颈,也可以将 CPU 的单线程性能视为瓶颈。

一般来说,具有超线程的物理处理器,因此两个虚拟处理器不如两个单独的物理处理器快,但是如果您的应用程序能够分配其工作负载,那么它将从中受益,至少 CPU 图表将反映这一点,实际性能取决于指令。

您可能无法改变视频游戏,但如果您没有低端 CPU,那么更换它可能也不会带来太多好处,因为单线程性能在过去几年中并没有太大改善。

答案2

以前使用不支持多处理器的旧软件时,曾见过类似的行为。在这些情况下,您可能会看到 CPU 负载持续 50%。在这些情况下,硬件不是限制因素。从您的问题来看,您是在谈论视频游戏。对于视频,您希望软件使用 GPU 而不是 CPU。

相关内容