Как мне определить, какие ядра являются какими на гибридном процессоре Intel?

Вопрос или проблема

У меня есть гибридный процессор Intel (Alder Lake). Это означает, что в нем есть определенное количество P-ядр и определенное количество E-ядр. Кроме того, P-ядра имеют гипертрединг.

Диспетчер задач и другие программы для мониторинга производительности и температуры отображают все эти ядра процессора (или аппаратные потоки, включая HT) численно без различия по типу. Например, на процессоре 8P+8E общее количество «ядер», сообщаемое такими инструментами, составляет 24, пронумерованных от 0 до 23.

Как мне узнать, какому типу физического ядра соответствует каждое из них? Если я замечаю 100% загрузку на «ЦП 5», это P-ядро или E-ядро? Если это P-ядро, какое число соответствует HT-ядру, с которым оно связано?

AIDA64 может определить тип ядра процессора (и его использование) в Windows

(обратите внимание, что у меня нет гибридного процессора с P/E-ядрами, поэтому я не могу протестировать это напрямую)

AIDA64 имеет раздел «Использование ЦП», который показывает информацию о типе процессора:

Скриншот AIDa64

(благодарность 1nteldevteam на форуме Intel)

Ядра сгруппированы по процессору (только один на изображении выше), затем идут пары ядер, соответствующие HT-единицам, затем отдельные E-ядра.

Эта схема похоже, работает и для других инструментов отчетности, таких как Диспетчер задач, но это может быть не гарантировано. ОП сообщает в комментарии; жирное выделение — мое:

При внимательном использовании инструмента FurMark’s CPU Burner и привязок процессоров (через Диспетчер задач), я могу подтвердить, что порядок, указанный в AIDA64, соответствует порядку, показанному в Диспетчере задач. Предполагая, что эта схема верна, это также говорит нам о том, что ядра представлены как пары HT-сопоставленных P-ядр, за которыми следуют E-ядра.

Для Linux используйте lscpu

Хотя вы спрашивали о Windows, существует ответ на SO, который охватывает Linux:

Запустите lscpu --all --extended

➜ lscpu --all --extended
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE    MAXMHZ   MINMHZ
  0    0      0    0 0:0:0:0          yes 6700.0000 800.0000
  1    0      0    0 0:0:0:0          yes 6700.0000 800.0000
  2    0      0    1 1:1:1:0          yes 6700.0000 800.0000
  3    0      0    1 1:1:1:0          yes 6700.0000 800.0000
  4    0      0    2 2:2:2:0          yes 6500.0000 800.0000
  5    0      0    2 2:2:2:0          yes 6500.0000 800.0000
  6    0      0    3 3:3:3:0          yes 6500.0000 800.0000
  7    0      0    3 3:3:3:0          yes 6500.0000 800.0000
  8    0      0    4 4:4:4:0          yes 6500.0000 800.0000
  9    0      0    4 4:4:4:0          yes 6500.0000 800.0000
 10    0      0    5 5:5:5:0          yes 6500.0000 800.0000
 11    0      0    5 5:5:5:0          yes 6500.0000 800.0000
 12    0      0    6 6:6:6:0          yes 6500.0000 800.0000
 13    0      0    6 6:6:6:0          yes 6500.0000 800.0000
 14    0      0    7 7:7:7:0          yes 6500.0000 800.0000
 15    0      0    7 7:7:7:0          yes 6500.0000 800.0000
 16    0      0    8 8:8:8:0          yes 3900.0000 800.0000
 17    0      0    9 9:9:8:0          yes 3900.0000 800.0000
 18    0      0   10 10:10:8:0        yes 3900.0000 800.0000
 19    0      0   11 11:11:8:0        yes 3900.0000 800.0000
 20    0      0   12 12:12:9:0        yes 3900.0000 800.0000
 21    0      0   13 13:13:9:0        yes 3900.0000 800.0000
 22    0      0   14 14:14:9:0        yes 3900.0000 800.0000
 23    0      0   15 15:15:9:0        yes 3900.0000 800.0000

Благодаря Yixing за их ответ.

На macOS вы можете использовать powermetrics

Для тех, кто на оборудовании Apple, есть соответствующий ответ на AskDifferent

sudo powermetrics -s cpu_power

P-ядра:

скриншот powermentris P core

E-ядра:

скриншот powermetrics E core

Благодарность JMY1000 за их ответ и два изображения, приведенные выше.

Вы можете прочитать страницу man powermetrics онлайн.

Я полагаю, что более точный ответ, который не требует угадывания на основе характеристик процессора, таких как частота или количество потоков, заключается в том, что эта информация доступна в псевдофайловой системе /sys в Linux:

На Alder Lake (и в основном, как и в других гибридных архитектурах Intel), вместо /sys/devices/cpu есть две директории: /sys/devices/cpu_atom/ и /sys/devices/cpu_core/, первая (cpu_atom) для E-ядр, а вторая (cpu_core) для P-ядр.

Внутри каждой директории есть файл с именем cpus, который содержит диапазон чисел ядер.

Например, в моем i7-1360P:

  • /sys/devices/cpu_core/cpus содержит 0-7 (четыре P-ядра с двумя потоками каждый)
  • /sys/devices/cpu_atom/cpus содержит 8-15

Ответ или решение

Как идентифицировать ядра на гибридном процессоре Intel (Alder Lake)

Понимание структуры ядер гибридного процессора Intel, такого как Alder Lake, может быть сложной задачей из-за особенностей архитектуры, включающей как производительные ядра (P-cores), так и эффективные ядра (E-cores). Трудности возникают из-за того, что многие инструменты мониторинга системы, такие как Диспетчер задач и другие программы, отображают все ядра без различия по типам. В этой статье мы разберем, как можно определить, какие ядра являются P-cores, а какие – E-cores, а также как получить информацию о связанных потоках.

1. Использование AIDA64 для Windows

Одним из наиболее удобных инструментов для идентификации типов ядер на Windows является AIDA64. В разделе "Использование CPU" AIDA64 представляется информация о типах ядер:

  • Производительные ядра (P-cores) будут отображаться первыми, при этом они будут дополнительно разделены на пары, обозначающие гипертредирование.
  • Эффективные ядра (E-cores) представлены в отдельной группе после P-cores.

Такое распределение подтверждено пользователями, проводившими тесты на утилите FurMark, что позволяет утверждать, что в Диспетчере задач и других аналогичных утилитах эта информация будет расположена аналогичным образом.

2. Метод для Linux: lscpu

Если вы используете Linux, для получения необходимой информации можно воспользоваться командой lscpu. Запустив команду:

lscpu --all --extended

Вы сможете увидеть все процессоры с их типами, что позволят определить принадлежность ядер к P и E:

  • Ядра P-cores будут представлены парами (по два потока каждое), а за ними последуют отдельные E-cores.

3. Кто на macOS?

На macOS можно использовать команду powermetrics следующим образом:

sudo powermetrics -s cpu_power

С помощью этой команды вы сможете легко различить P- и E-cores, так как каждое ядро будет обозначено отдельно, после чего программы подскажут, какое ядро загружено в данный момент.

4. Система файлов в Linux: удобное решение

Для более глубокого и ценного анализа на Linux существует возможность использования псевдосистемы файлов /sys. Здесь две директории:

  • /sys/devices/cpu_core/ для P-cores
  • /sys/devices/cpu_atom/ для E-cores

В каждой из этих директорий вы найдете файл cpus, где указаны диапазоны номеров ядер. Например, для i7-1360P:

  • P-cores в /sys/devices/cpu_core/cpus содержат диапазон 0-7.
  • E-cores в /sys/devices/cpu_atom/cpus содержат диапазон 8-15.

Заключение

В результате, идентификация типов ядер на гибридном процессоре Intel может быть эффективно выполнена с использованием различных инструментов и методов, в зависимости от вашей операционной системы. AIDA64 предоставляет обширные возможности для пользователей Windows, в то время как Linux предлагает простые команды и системные директории для получения необходимой информации. Использование этих методов обеспечит оптимизацию процесса мониторинга и использование всех преимуществ вашего процессора.

Оцените материал
Добавить комментарий

Капча загружается...