Как изменить приоритет логических ядер при SMT на Windows 11?
Имею ноутбук с процессором i5-11400H и Windows 11 22H2. Проблема в том, что когда запускаю многопоточные приложения, потоки всегда вначале назначаются на одни и те же физические ядра, а остальные не используются. Хуже все работает на двух потоках — они всегда назначаются на одно и тоже физическое ядро, в итоге производительность каждого из них в 1.5 раза ниже, чем когда я их вручную назначаю на разные физические ядра. Такая же проблема и при другом количестве потоков больше двух — производительность в среднем ниже до 25%. Я же хочу сделать так, чтобы потоки по умолчанию назначались на разные физические ядра, и только когда физических ядер начнёт не хватать, только тогда начинать назначать их на одинаковые ядра, используя SMT. При этом я не хочу отключать SMT полностью — мне нужен 30% прирост многопоточной производительности.
1. Перейдите в Панель управления → Электропитание.
2. Нажмите "Создание схемы управления питанием".
3. Выберите за основу схему "Высокая производительность".
4. Скопируйте вручную все настройки из Вашей старой схемы (обычно "Сбалансированная") в новую схему, чтобы новая схема была максимально похожа на старую.
5. Установите созданную схему в качестве текущей.
Готово. Дело в том, что в схеме "Высокая производительность" присутствуют некоторые скрытые настройки, которые как раз и влияют на приоритет логических ядер. При использовании этой схемы приоритет будет отдаваться именно отдельным физическим ядрам.