Задать вопрос
@vityaba3

Как проверить производительность конкретного ядра в Linux (intel 12th, Perf/Eff cores)?

У меня в ноутбуке процессор Intel 1280p.
У него 6 производительных ядер и 8 энергоэффективных

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

$  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


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

Теперь, если запустить `stress-ng` на ядре 0:

$       taskset -c 0 stress-ng --cpu 1 --cpu-method matrixprod --metrics-brief --times  --timeout 10s
stress-ng: info:  [70346] setting to a 10 secs run per stressor
stress-ng: info:  [70346] dispatching hogs: 1 cpu
stress-ng: metrc: [70346] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s
stress-ng: metrc: [70346]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: metrc: [70346] cpu               28942     10.00      9.96      0.00      2893.98        2904.23
stress-ng: info:  [70346] for a 10.00s run time:
stress-ng: info:  [70346]     200.05s available CPU time
stress-ng: info:  [70346]       9.96s user time   (  4.98%)
stress-ng: info:  [70346]       0.00s system time (  0.00%)
stress-ng: info:  [70346]       9.96s total time  (  4.98%)
stress-ng: info:  [70346] load average: 0.59 0.88 1.06
stress-ng: info:  [70346] skipped: 0
stress-ng: info:  [70346] passed: 1: cpu (1)
stress-ng: info:  [70346] failed: 0
stress-ng: info:  [70346] metrics untrustworthy: 0
stress-ng: info:  [70346] successful run completed in 10.00 secs



На ядре 19 :

$    taskset -c 19 stress-ng --cpu 1 --cpu-method matrixprod --metrics-brief --times  --timeout 10s
stress-ng: info:  [70283] setting to a 10 secs run per stressor
stress-ng: info:  [70283] dispatching hogs: 1 cpu
stress-ng: metrc: [70283] stressor       bogo ops real time  usr time  sys time   bogo ops/s     bogo ops/s
stress-ng: metrc: [70283]                           (secs)    (secs)    (secs)   (real time) (usr+sys time)
stress-ng: metrc: [70283] cpu               27800     10.00      9.98      0.00      2779.89        2785.91
stress-ng: info:  [70283] for a 10.00s run time:
stress-ng: info:  [70283]     200.04s available CPU time
stress-ng: info:  [70283]       9.97s user time   (  4.98%)
stress-ng: info:  [70283]       0.00s system time (  0.00%)
stress-ng: info:  [70283]       9.97s total time  (  4.98%)
stress-ng: info:  [70283] load average: 0.62 0.93 1.09
stress-ng: info:  [70283] skipped: 0
stress-ng: info:  [70283] passed: 1: cpu (1)
stress-ng: info:  [70283] failed: 0
stress-ng: info:  [70283] metrics untrustworthy: 0
stress-ng: info:  [70283] successful run completed in 10.00 secs



Можно увидеть, что bogo ops почти не отличается!
Это не похоже на правду.

Если запустить `taskset -c $12-19 chromium-brewser` и в нем открыть какой-нибудь тест, то будут использоваться P-ядра

Поэтому вопрос:
1) Как правильно оценить производительность P и E ядер?
2) Как запустить Хром только на P и только на E ядрах?
  • Вопрос задан
  • 118 просмотров
Подписаться 3 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы