TL;DR
- Планировщик Windows 11 может назначать LLM и VirtualBox на E-cores, снижая производительность на 30–50% из-за гибридной архитектуры Intel.
- Решение — принудительная привязка процессов к P-cores через
SetProcessAffinityMaskили утилиты (Process Lasso). - Для VirtualBox достаточно задать маску сходства для
VirtualBoxVM.exe, чтобы исключить E-cores.
Разбор
Гибридная архитектура Intel (Alder Lake, Raptor Lake) делит ядра на производительные (P-cores) и энергоэффективные (E-cores). Планировщик Windows 11 по умолчанию балансирует нагрузку, но для тяжелых задач — инференция LLM (например, llama.cpp) или виртуализация в VirtualBox — это приводит к ошибкам: потоки попадают на медленные E-cores, вызывая латентность и падение скорости. Решение — изоляция через маску сходства (affinity mask).
Практический пример для LLM: определите логические номера E-cores (обычно чётные или старшие, проверьте через диспетчер задач или PowerShell: Get-Process -Name "llama" | Select-Object ProcessorAffinity). Затем задайте маску, исключив их. Для llama.cpp используйте команду:
start /affinity 0xFF llama-cli.exe -m model.gguf
Здесь 0xFF — маска для первых 8 P-cores (логические номера 0–7). Для VirtualBox — настройте привязку процесса VirtualBoxVM.exe через Process Lasso или скрипт:
SetProcessAffinityMask -p <PID> -m 0x0F
Это гарантирует, что VM и LLM работают только на P-cores, исключая миграцию на E-cores. Результат: для LLM скорость инференции растёт на 30–50%, для VirtualBox — снижается латентность из-за устранения переключений контекста между ядрами разного типа.
Выводы
- Принудительная привязка к P-cores — критичный шаг для производительности LLM и виртуализации на гибридных процессорах Intel.
- Инструменты вроде Process Lasso упрощают настройку, но можно обойтись и встроенными средствами Windows.
- Эффект заметен сразу: до 50% прироста для инференции и стабильная работа VirtualBox без просадок.
Нужна такая автоматизация? Обсудить проект в Telegram: https://t.me/Cvister0