Как можно измерить производительность отдельного ядра в Linux на процессоре Intel 12-го поколения (с учетом производительных и эффективных ядер)?

У меня есть ноутбук с процессором <a href="https://www.intel.com/content/www/us/en/products/sku/226253/intel-core-i71280p-processor-24m-cache-up-to-4-80-ghz/specifications.html" rel="nofollow">Intel 1280p</a>, который включает в себя 6 производительных и 8 энергоэффективных ядер. 

Я хотел бы измерить реальную производительность как одного, так и нескольких P и E ядер. 

Вот что я обнаружил при просмотре содержимого директории `/sys/devices/system/cpu/cpu0/topology/`:

<pre><code class="bash">$  ls /sys/devices/system/cpu/cpu0/topology/
cluster_cpus       core_cpus_list      die_cpus       package_cpus_list
cluster_cpus_list  core_id             die_cpus_list  physical_package_id
cluster_id         core_siblings       die_id         thread_siblings
core_cpus          core_siblings_list  package_cpus   thread_siblings_list</code></pre> 

Я не нашел параметр `core_type`. Однако, запуская команду `taskset -c $NUM_PROC stress -c 1` и наблюдая за частотой ядер в `htop`, я пришел к выводу, что ядра 0-11 соответствуют 6 производительным ядрам, а ядра 12-19 — 8 эффективным. Частота P-ядер иногда превышает 3.6 ГГц (что является максимумом для E-ядер), но, как правило, не достигает заявленного максимума 4.8 ГГц.

На первый взгляд, показатели bogo ops почти не отличаются, что кажется неверным. Если я запускаю `taskset -c $12-19 chromium-browser` и выполняю тест, используются P-ядра.

В связи с вышеизложенным, у меня есть два вопроса:
1) Как корректно оценить производительность P и E ядер?
2) Как запустить браузер Chrome только на P и только на E ядрах?
  • 26 февраля 2025 г. 11:34
Ответы на вопрос 2
Для правильной оценки производительности производительных (P) и энергоэффективных (E) ядер в процессорах Intel 12-го поколения можно применять несколько методов. Давайте подробнее рассмотрим оба ваших вопроса:

### 1) Как корректно оценить производительность P и E ядер?

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

#### a) Использование `taskset`
Вы уже упомянули, что использовали `taskset`. С помощью этой утилиты можно запускать процессы только на определенных ядрах:

```bash
# Для производительных ядер
taskset -c 0-5 <команда_JA>

# Для эффективных ядер
taskset -c 12-19 <команда_JA>
```

#### b) Использование инструментов для тестирования производительности
Существует множество инструментов для измерения производительности, например:

- **sysbench**: Можно использовать для бенчмаркинга CPU. 
- **Geekbench**: Удобный инструмент для кросс-платформенного бенчмаркинга.
- **PHoronix Test Suite**: Обширный набор тестов для производительности CPU и других компонентов.

Пример использования `sysbench`:

```bash
# Запуск тестирования на P-ядрах
taskset -c 0-5 sysbench cpu run

# Запуск тестирования на E-ядрах
taskset -c 12-19 sysbench cpu run
```

#### c) Мониторинг частоты и загрузки ядер
Вы также можете использовать такие инструменты, как `htop` или `mpstat`, чтобы следить за нагрузкой и частотой отдельных ядер в реальном времени и собирать метрики производительности. 

### 2) Как запустить браузер Chrome только на P и только на E ядрах?

Для запуска Chrome (или любого другого приложения) на конкретных ядрах, вы можете использовать `taskset`.

#### Запуск на P-ядрах:
```bash
taskset -c 0-5 chromium-browser
```

#### Запуск на E-ядрах:
```bash
taskset -c 12-19 chromium-browser
```

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

### Дополнительная информация
Проверьте, что в BIOS вашего ноутбука не отключены параметры, сохраняющие управление тактовой частотой и энергопотреблением, так как это может повлиять на результаты тестирования. Кроме того, результаты могут варьироваться в зависимости от нагрузки, поэтому желательно повторить тестирование несколько раз и усреднить результаты для получения более точной картины.
Для оценки ядер попробуйте утилитку cpu-x, а с настройкой ядер если не очень разбераетесь, лучше не лезть, посмотрите в биосе мод с настройкой производительности.
Похожие вопросы