通过 BIOS 或内核关闭超线程?

and*_*tim 4 bios hyperthreading linux-kernel

这些禁用的超线程方案之间是否存在性能差异?哪个最好,为什么?

  • 在 BIOS 中禁用 HT
  • 使用noht内核参数

高度优化的并行应用程序在启用 HT 的情况下运行速度较慢。
https://www.percona.com/blog/2015/01/15/hyper-threading-double-cpu-throughput/
我们的应用程序在 4 核上的运行速度比 4 核 + 4 HT 快 13%。

硬件:

  • 主板:Supermicro X9SPU-F
  • CPU:Intel(R) Xeon(R) CPU E3-1275 V2

Mic*_*ton 7

嗯,第一个明显的区别是它noht实际上在现代 Linux 系统上没有做任何事情。这个内核引导选项早已过时,并被替换为maxcpus=.

设置maxcpus=m,其中m是物理(非 HT)内核的数量,现在完成同样的事情。

还可以在系统运行时通过 sysfs 启用或禁用单个 CPU 内核/超线程

有了这个...

在 BIOS 中禁用超线程或在操作系统中禁用它之间的性能应该没有区别。

唯一真正的区别是,如果您禁用操作系统中的内核/线程,那么您可以稍后重新启用它们而无需重新启动。如果您运行不同的计算作业,您可能想要这样做,其中一些可以从超线程中受益,而另一些则不能。