Warum hat Perf_Count_hw_ref_cpu_cycles eine viel höhere Abweichung zu Zen5 CPUs als perf_count_hw_cpu_cycles?Linux

Linux verstehen
Anonymous
 Warum hat Perf_Count_hw_ref_cpu_cycles eine viel höhere Abweichung zu Zen5 CPUs als perf_count_hw_cpu_cycles?

Post by Anonymous »

Mein Verständnis ist, dass perf_count_hw_ref_cpu_cycles einem Zähler zuordnen sollte, der mit konstanter Geschwindigkeit zählt, im Gegensatz zu perf_count_hw_cpu_cycles, der von der Frequenzskalierung beeinflusst wird. Ich würde erwarten, Frequenz -Skalierungseffekte zu beseitigen, um die Varianz zu verringern, aber aus irgendeinem Grund erhöht es sie! < /P>

Code: Select all

$ echo; for cycle_type in cycles ref-cycles; do echo -n "$cycle_type stddev: "; for i in {1..100}; do perf stat -e $cycle_type true 2>&1 | grep -E "(cycles|ref-cycles)" | grep -v "seconds"; done | awk '{gsub(/,/,""); print $1}' | awk '{sum+=$1; sumsq+=$1*$1; n++} END {mean=sum/n; print sqrt(sumsq/n - mean*mean)}'; done

cycles stddev: 146434
ref-cycles stddev: 353483
< /code>
Auf meinem Haswell -Server erhalte ich das erwartete Verhalten: < /p>
$ echo; for cycle_type in cycles ref-cycles; do echo -n "$cycle_type stddev: "; for i in {1..100}; do perf stat -e $cycle_type true 2>&1 | grep -E "(cycles|ref-cycles)" | grep -v "seconds"; done | awk '{gsub(/,/,""); print $1}' | awk '{sum+=$1; sumsq+=$1*$1; n++} END {mean=sum/n; print sqrt(sumsq/n - mean*mean)}'; done

cycles stddev: 64606.4
ref-cycles stddev: 46084.4
ZEN5 CPU-Modell: AMD Ryzen Ai 9 HX 370 mit Radeon 890m
Haswell CPU-Modell: Intel (r) Xeon (R) CPU E5-2698 V3 @ 2,30GHZ

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post