混合 CPU 架构是否会给 VM 或 VM 软件(例如 VMware 或 VirtualBox)带来任何新问题?

混合 CPU 架构是否会给 VM 或 VM 软件(例如 VMware 或 VirtualBox)带来任何新问题?

英特尔的新 P/E 架构如何与虚拟机配合使用?我认为需要改进和更新 VirtualBox 和 VMWare 等软件,以便能够使用从 Alderlake CPU 分配的资源创建虚拟机,因为现在有 2 种核心类型。传统上,当使用 virtualbox 或 VMware 等软件将核心分配给虚拟机时,他们会提供一个整数,1 core, 或2 cores, 或3 cores,但使用新的混合 CPU 架构,说“我想分配 5 个核心”将是一个任意的陈述。您需要明确说明您希望分配 5 个核心的核心类型。

我不知道虚拟机在底层是如何工作的,我想象它们是某种包装器,无论它们是什么,我确信新的架构需要以不同的方式实现,这需要编写更多的软件,这需要测试、更新、修复错误等...

所以我想知道是否有人知道 Alderlake 在运行第 12 代英特尔 CPU 之前的 VM 时是否存在问题?

答案1

虚拟机产品不知道,也不需要知道CPU核心是如何分配的。

虚拟 CPU 只不过是由 VM 产品旋转的线程,用于在 VM 上下文中执行机器代码。对于 Windows,这是一个与其他线程一样的线程,Windows 调度程序会正常处理。

P/E 核心的分配是在操作系统中完成的,使用硬件 Intel Thread Director 返回的数据。事实上,这项新技术是 Windows 11 架构的主要原因之一。

我相信目前这项技术仅在 Windows 11 中使用,但 Linux 和其他系统将来可能会效仿。即使操作系统不支持这项技术,英特尔 CPU 也会自行分配一些核心。

更多阅读: 第 13 代英特尔酷睿处理器的工作原理

答案2

我们在 Virtual Box 和 VM-Ware 中使用新的第 12 代英特尔架构和虚拟机时,性能非常差。虚拟机运行 Linux,并带有开发工作负载(IDE、编译、浏览器)

旧的第 10 代处理器的性能要好得多。看来虚拟机还没有为这种新的性能/效率架构做好准备。

  • 第 12 代示例,VM 性能较差:Intel Core i7-8565U CPU @ 1.80GHz
  • 第 10 代的示例,具有良好的 VM 性能:Intel Core i7 10750H CPU @ 2.6GHz

看起来虚拟机确实需要了解架构并进行修改才能很好地使用它,即确保性能核心可用于虚拟机工作负载。

答案3

我的经验是虚拟机受到混合核心的严重阻碍。

虽然主机操作系统调度程序确实负责组织何时何地设置指令,但我发现,由于 VM 提供的抽象层会混淆这一点。我经常会发现,根据 VM 内部运行的内容,某些指令集的处理速度比其他指令集快得多。

如果您的代码带有锁等,并且这些进程被发送到较慢的核心,您可能会陷入困境。虽然主机操作系统也存在同样的问题,但不同之处在于操作系统调度程序可以提前查看即将到来的指令,并更好地确定将作业发送到何处。当您使用虚拟机时,它会变得更加抽象,因此,为了让虚拟机正确有效地使用这些新核心,需要进行更多的开发。虽然我不是这里的架构师,但我认为唯一的解决方案是虚拟机需要找到一种方法来将更多的底层系统暴露给主机。

老实说,我找到这篇文章是想看看是否有人有办法告诉调度程序只使用这些核心。当错误的操作被放在较慢的核心上时,巨大的处理速度差异(1.3 v 2.8 ghz)会导致严重的滞后。即使我只分配 4 个核心(性能核心的数量),也无法保证会分配哪些核心,我可以知道什么时候它在慢速核心上运行。

相关内容