gpt4 book ai didi

c# - 禁用超线程与更改 ProcessorAffinity?

转载 作者:太空狗 更新时间:2023-10-29 20:37:15 27 4
gpt4 key购买 nike

我注意到如果我在 BIOS 中禁用超线程,我的几个多线程计算运行得更快。

我还了解到,我可以通过修改当前进程的处理器亲和性以编程方式禁用(逻辑)CPU,例如在 C# 中:

// using System.Diagnostics;
var current = Process.GetCurrentProcess();
var affinity = current.ProcessorAffinity.ToInt32();
current.ProcessorAffinity = new IntPtr(affinity & 0x5555);

至少从性能的角度来看,通过更改处理器亲和性来禁用每个第二个(逻辑)CPU 是否与完全禁用超线程具有相同的效果?

最佳答案

您可以尝试使用 NUMA API,或使用 CPUID 指令手动发现 CPU 拓扑...但恕我直言,最好的解决方案是做一些合理的默认值,并让最终用户调整线程设置。除非您有特定的硬件目标,否则有相当多的可能场景需要处理 - 逻辑内核与物理内核、超线程与否、单插槽与多插槽系统、缓存和内存拓扑。

关于c# - 禁用超线程与更改 ProcessorAffinity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10930822/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com