У меня в ноутбуке процессор
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 ядрах?