Skip to content

Commit

Permalink
Improve try to measure/report cpufreq in parallel
Browse files Browse the repository at this point in the history
Adding OnePlus 5 / Snapdragon 835 numbers (though throttling occured). Closes #54
  • Loading branch information
ThomasKaiser committed Nov 7, 2022
1 parent 10376de commit 2e7e88a
Show file tree
Hide file tree
Showing 8 changed files with 1,208 additions and 5 deletions.
3 changes: 2 additions & 1 deletion Results.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ So do **not** rely on collected numbers unless you carefully read through all th
| [ODROID-XU4](http://ix.io/1iWL) | 2000/1400 MHz | 4.9 | Stretch armhf | 6400 | 1622 | 72075 | 2230 | 4850 | - |
| [ODROID-XU4](http://ix.io/3GnC) | 2000/1400 MHz | 5.4 | Focal armhf | 8980 | 1604 | 72020 | 2280 | 4910 | - |
| [Olimex A20-Lime2](http://ix.io/3EOw) | 960 MHz | 5.10 | Bullseye armhf | 1040 | 540 | 18670 | 460 | 2020 | - |
| [OnePlus 5](http://ix.io/4fdD) | 2360/1900 MHz | 6.1 | Jammy arm64 | 9800 | 2474 | 883330 | 9720 | 14070 | 12.58 |
| [Orange Pi PC Plus](http://ix.io/3MQV) | 1370 MHz | 5.10 | Focal armhf | 3060 | 879 | 26590 | 890 | 3450 | - |
| [Orange Pi PC 2](http://ix.io/3MQJ) | 1370 MHz | 5.10 | Focal arm64 | 3500 | 1023 | 637410 | 1070 | 3680 | - |
| [Orange Pi Plus 2](http://ix.io/1iX4) | 1300 MHz | 4.14 | Stretch armhf | 2890 | 812 | 25250 | 830 | 3240 | - |
Expand Down Expand Up @@ -204,7 +205,7 @@ So do **not** rely on collected numbers unless you carefully read through all th
* *kH/s* is a **multi threaded** cpuminer score showing the board's performance when executing NEON/SSE optimized code. To get the performance difference between big and little cores click the links in the left column
* The Akaso M8S and Tronsmart MXIII Plus numbers may be representative for other Amlogic S812 devices (quad Cortex-A9 @ 1.2/1.55 GHz), Tronsmart S82 for other S802 devices (quad Cortex-A9 @ 1.6 GHz)
* The Amazon a1.xlarge numbers represent a 1st gen Graviton CPU (64-bit 'ARM Neoverse') limited to four A72 cores and 8GB memory while the Ampere A1 numbers represent an Ampere Altra limited to four Neoverse-N1 cores.
* Cubietruck and 'LeMaker Banana Pi' numbers are more or less representative for all other Allwinner A20 devices, same with Lime for Allwinner A10, Olimex Teres-I for Allwinner A64, Orange Pi "PC Plus" and "Plus 2" for Allwinner H2+/H3 and NanoPi K1 Plus, Orange Pi "PC 2" and Prime for Allwinner H5, MangoPi Mcore for Allwinner H616 (though clocked 300 MHz higher than usual). AMedia X96 Max+ numbers represent Amlogic S905X3 devices.
* Cubietruck and 'LeMaker Banana Pi' numbers are more or less representative for all other Allwinner A20 devices, same with Lime for Allwinner A10, Olimex Teres-I for Allwinner A64, Orange Pi "PC Plus" and "Plus 2" for Allwinner H2+/H3 and NanoPi K1 Plus, Orange Pi "PC 2" and Prime for Allwinner H5, MangoPi Mcore for Allwinner H616 (though clocked 300 MHz higher than usual). AMedia X96 Max+ numbers represent Amlogic S905X3 devices. OnePlus 5 scores may represent properly other Snapdragon 835 devices though in Oneplus some sort of throttling occured (15% drop in 7-zip scores within three consecutive multi-threaded runs) so other Snapdragon 835 devices might perform even better.
* Honeycomb LX2 numbers (based on SolidRun's CEx7 LX2160A COM) might vary somewhat with memory configuration but are more or less representative for LX2160A in general.
* Clearfog A1 and Helios4 use exactly same SoC (Armada 385) and clockspeeds and the only reason why OpenSSL numbers differ is since Helios4 numbers were made using [Marvell's CESA crypto accelerator via cryptodev](https://forum.armbian.com/topic/7763-benchmarking-cpus/?do=findComment&comment=59569) which provides nice speed improvements with larger block sizes but also some initialization overhead with tiny block sizes. Also CPU utilization is way lower so the SoC is free for other stuff while performing better at the same time.
* EspressoBin's boot BLOB claims to run at up to 1GHz while real clockspeeds are lower maxing out with this setting at 790MHz (obviously a kernel bug -- see [details](https://forum.armbian.com/topic/4089-espressobin-support-development-efforts/?do=findComment&comment=60082))
Expand Down
1,101 changes: 1,101 additions & 0 deletions results/4fdD.txt

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions results/ARMv8-Crypto-Extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ Crawling through [sbc-bench results collection](../Results.md) comparing +30 dif
| [RK3568](http://ix.io/3UXa) | 1950 | 911730 | 467 |
| [S905X3](http://ix.io/2kaS) | 2010 | 941590 | 468 |
| [S905X3](http://ix.io/3TQ2) | 2100 | 981940 | 467 |
| [Snapdragon 835](http://ix.io/4fdD) | 1900 | 883330 | 465 |
| [Snapdragon 845](http://ix.io/4dJV) | 1760 | 824640 | 469 |
| Cortex-A72 | | | |
| [RK3399](http://ix.io/1iWU) | 1800 | 1023600 | 568 |
Expand Down
71 changes: 71 additions & 0 deletions results/Qualcomm-Snapdragon-835-6.1.0-rc3-msm8998.cpuinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
processor : 0
BogoMIPS : 38.40
Features : fp asimd aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0xa
CPU part : 0x801
CPU revision : 4

processor : 1
BogoMIPS : 38.40
Features : fp asimd aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0xa
CPU part : 0x801
CPU revision : 4

processor : 2
BogoMIPS : 38.40
Features : fp asimd aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0xa
CPU part : 0x801
CPU revision : 4

processor : 3
BogoMIPS : 38.40
Features : fp asimd aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0xa
CPU part : 0x801
CPU revision : 4

processor : 4
BogoMIPS : 38.40
Features : fp asimd aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0xa
CPU part : 0x800
CPU revision : 1

processor : 5
BogoMIPS : 38.40
Features : fp asimd aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0xa
CPU part : 0x800
CPU revision : 1

processor : 6
BogoMIPS : 38.40
Features : fp asimd aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0xa
CPU part : 0x800
CPU revision : 1

processor : 7
BogoMIPS : 38.40
Features : fp asimd aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x51
CPU architecture: 8
CPU variant : 0xa
CPU part : 0x800
CPU revision : 1
6 changes: 6 additions & 0 deletions results/Sorted-Results.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
| [Loongson-3A5000-HV](http://ix.io/4dzX) | 2500 MHz | 4.19 | Loongnix 20 loongarch64 | **11120** | 2990 | 116900 | 6930 | 19170 | - |
| [Pentium N6005](http://ix.io/4f3I) | 3300/2000 MHz | 6.0 | Jammy amd64 | **10810** | 3485 | 922000 | 9600 | 11300 | 20.15 |
| [Celeron N5100](http://ix.io/3IlQ) | 2800/1100 MHz | 5.13 | Focal amd64 | **10550** | 3088 | 783800 | 7750 | 8090 | 19.22 |
| [OnePlus 5](http://ix.io/4fdD) | 2360/1900 MHz | 6.1 | Jammy arm64 | **9800** | 2474 | 883330 | 9720 | 14070 | 12.58 |
| [ODROID-N2+](http://ix.io/3DtN) | 2400/2015 MHz | 5.14 | Impish arm64 | **9790** | 2253 | 1366930 | 4300 | 7480 | - |
| [ODROID-N2+](http://ix.io/3LoH) | 2400/2015 MHz | 5.14 | Hirsute arm64 | **9780** | 2386 | 1366090 | 4030 | 7120 | - |
| [Khadas VIM3](http://ix.io/3VfL) | 2400/2015 MHz | 5.10 | Focal arm64 | **9760** | 2374 | 1365900 | 4840 | 8260 | - |
Expand Down Expand Up @@ -213,6 +214,7 @@
| [Ryzen R1606G](http://ix.io/2tQQ) | 2600/1400 MHz | 5.4 | Focal amd64 | 7970 | **2854** | 700780 | 8230 | 5970 | 16.45 |
| [Jetson Xavier AGX](http://ix.io/4ebH) | 2250 MHz | 4.9 | Bionic arm64 | 21590 | **2742** | 853250 | 10910 | 22520 | 26.57 |
| [Athlon II X3 420e](http://ix.io/4eOo) | 2600 MHz | 4.19 | Buster amd64 | 4780 | **2566** | 98840 | 4120 | 3870 | - |
| [OnePlus 5](http://ix.io/4fdD) | 2360/1900 MHz | 6.1 | Jammy arm64 | 9800 | **2474** | 883330 | 9720 | 14070 | 12.58 |
| [Pentium J5005](http://ix.io/21rE) | 2700/1500 MHz | 5.0 | Bionic amd64 | 9230 | **2455** | 778360 | 5530 | 7130 | 20.74 |
| [Amazon a1.xlarge](http://ix.io/2iFY) | 2300 MHz | 4.15 | Bionic arm64 | 8610 | **2406** | 1297960 | 4280 | 14220 | - |
| [ODROID-N2+](http://ix.io/3LoH) | 2400/2015 MHz | 5.14 | Hirsute arm64 | 9780 | **2386** | 1366090 | 4030 | 7120 | - |
Expand Down Expand Up @@ -436,6 +438,7 @@
| [ODROID-M1](http://ix.io/3Ug9) | 1930 MHz | 4.19 | Focal arm64 | 5010 | 1450 | **898610** | 3070 | 6220 | 7.14 |
| [Khadas VIM3L](http://ix.io/26Wy) | 1900 MHz | 4.9 | Bionic arm64 | 5160 | 1399 | **892110** | 3670 | 6360 | 7.29 |
| [Khadas VIM3L](http://ix.io/3Vdt) | 1900 MHz | 5.16 | Bullseye arm64 | 5110 | 1403 | **890730** | 3700 | 5140 | - |
| [OnePlus 5](http://ix.io/4fdD) | 2360/1900 MHz | 6.1 | Jammy arm64 | 9800 | 2474 | **883330** | 9720 | 14070 | 12.58 |
| [Jetson Xavier AGX](http://ix.io/4ebH) | 2250 MHz | 4.9 | Bionic arm64 | 21590 | 2742 | **853250** | 10910 | 22520 | 26.57 |
| [Quartz64](http://ix.io/3rUb) | 1810 MHz | 5.13 | Buster arm64 | 4840 | 1353 | **845490** | 2980 | 7650| - |
| [MangoPi Mcore](http://ix.io/4bSf) | 1800 MHz | 5.19 | Jammy arm64 | 4100 | 1218 | **840270** | 990 | 2380 | - |
Expand Down Expand Up @@ -578,6 +581,7 @@
| [Khadas Edge2](http://ix.io/4a5U) | 2260/1800 MHz | 5.10 | Jammy arm64 | 16470 | 3096 | 1287490 | **10860** | 29110 | - |
| [Radxa ROCK 5B](http://ix.io/41BH) | 2350/1830 MHz | 5.10 | Focal arm64 | 16450 | 3146 | 1337540 | **10830** | 29220 | 25.31 |
| [Jetson AGX Orin](http://ix.io/4ax9) | 2200 MHz | 5.10 | Focal arm64 | 39450 | 3187 | 1242940 | **10600** | 30350 | 59.96 |
| [OnePlus 5](http://ix.io/4fdD) | 2360/1900 MHz | 6.1 | Jammy arm64 | 9800 | 2474 | 883330 | **9720** | 14070 | 12.58 |
| [Pentium N6005](http://ix.io/4f3I) | 3300/2000 MHz | 6.0 | Jammy amd64 | 10810 | 3485 | 922000 | **9600** | 11300 | 20.15 |
| [Jetson Xavier NX](http://ix.io/3YWp) | 1890 MHz | 4.9 | Bionic arm64 | 13230 | 2201 | 706280 | **9190** | 18480 | - |
| [Ryzen R1606G](http://ix.io/2tQQ) | 2600/1400 MHz | 5.4 | Focal amd64 | 7970 | 2854 | 700780 | **8230** | 5970 | 16.45 |
Expand Down Expand Up @@ -770,6 +774,7 @@
| [Phytium D2000 2xSO-DIMM](http://ix.io/446h) | 2300 MHz | 5.19 | Jammy arm64 | 16670 | 2252 | 828130 | 3480 | **16110** | - |
| [Celeron 5205U](http://ix.io/4eiM) | 1900 MHz | 5.15 | Jammy amd64 | 4060 | 2171 | 521090 | 7350 | **16020** | 11.20 |
| [Amazon a1.xlarge](http://ix.io/2iFY) | 2300 MHz | 4.15 | Bionic arm64 | 8610 | 2406 | 1297960 | 4280 | **14220** | - |
| [OnePlus 5](http://ix.io/4fdD) | 2360/1900 MHz | 6.1 | Jammy arm64 | 9800 | 2474 | 883330 | 9720 | **14070** | 12.58 |
| [Jetson Nano](http://ix.io/3Ufc) | 2000 MHz | 4.9 | Bionic arm64 | 6260 | 1977 | 717500 | 4100 | **11760** | 8.72 |
| [Khadas VIM4](http://ix.io/3Wvv) | 2200/1970 MHz | 5.4 | Focal arm64 | 12090 | 2081 | 1253200 | 7810 | **11600** | - |
| [Khadas VIM4](http://ix.io/3Wq0) | 2200/2010 MHz | 5.4 | Jammy arm64 | 12100 | 2071 | 1252070 | 7800 | **11590** | - |
Expand Down Expand Up @@ -961,6 +966,7 @@
| [Khadas VIM3](http://ix.io/3R2Z) | **2400/2015** MHz| 5.10 | Bullseye arm64 | 9650 | 2376 | 1366350 | 4850 | 7380 | - |
| [Celeron J4105](http://ix.io/1qb0) | **2400/1500** MHz| 4.15 | Bionic amd64 | 8960 | 2274 | 697080 | 5620 | 7650 | 19.13 |
| [Celeron J4105](http://ix.io/1qal) | **2400/1500** MHz| 4.15 | Bionic amd64 | 9020 | 2290 | 697100 | 5500 | 7410 | 19.07 |
| [OnePlus 5](http://ix.io/4fdD) | **2360/1900** MHz| 6.1 | Jammy arm64 | 9800 | 2474 | 883330 | 9720 | 14070 | 12.58 |
| [Radxa ROCK 5B](http://ix.io/41BH) | **2350/1830** MHz| 5.10 | Focal arm64 | 16450 | 3146 | 1337540 | 10830 | 29220 | 25.31 |
| [Phytium D2000 2xSO-DIMM](http://ix.io/446h) | **2300** MHz| 5.19 | Jammy arm64 | 16670 | 2252 | 828130 | 3480 | 16110 | - |
| [Phytium D2000 1xSO-DIMM](http://ix.io/445T) | **2300** MHz| 5.19 | Jammy arm64 | 16390 | 2220 | 827090 | 2820 | 6490 | - |
Expand Down
Binary file modified results/results.tar.xz
Binary file not shown.
1 change: 1 addition & 0 deletions results/validation.md
Original file line number Diff line number Diff line change
Expand Up @@ -220,3 +220,4 @@
| [4eg5](4eg5.txt) | v0.9.9 Hardkernel ODROID-C1 | 0.2%/2.3% | 990Mi/874Mi | X | X | X | X | 2% | 1% | |
| [4eiM](4eiM.txt) | v0.9.9 / Celeron 5205U @ 1.90GHz | 0%/0% | 7.6Gi/6.4Gi | X | X | X | X | 1% | 0% | |
| [4f3I](4f3I.txt) | v0.9.9 HARDKERNEL ODROID-H3 1.0 / Penti | 0%/0.5% | 31Gi/30Gi | X | X | X | X | 1% | 0% | |
| [4fdD](4fdD.txt) | v0.9.9 OnePlus 5 | 2.7%/0.6% | 5.5Gi/5.2Gi | X | X | X | X | 1% | 1% | |
30 changes: 26 additions & 4 deletions sbc-bench.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2330,13 +2330,13 @@ CheckClockspeedsAndSensors() {
esac
done
fi
if [ "X${MODE}" = "Xextensive" ]; then
if [ "X${MODE}" = "Xextensive" -a ! -s ${MonitorLog} ]; then
# in this mode we also check all CPU cores in parallel, 1st in idle
echo -e "\nChecking highest clockspeeds for all cores in parallel (idle):\n" >>${ResultLog}
echo -e "\nMeasuring highest clockspeeds for all cores in parallel (idle):\n" >>${ResultLog}
CheckAllCores idle >>${ResultLog}
# measure maximum clockspeeds under full load again
if [ -x "${InstallLocation}"/cpuminer-multi/cpuminer ]; then
echo -e "\nChecking highest clockspeeds for all cores in parallel (full load):\n" >>${ResultLog}
echo -e "\nMeasuring highest clockspeeds for all cores in parallel (full load):\n" >>${ResultLog}
timeout 15 "${InstallLocation}"/cpuminer-multi/cpuminer --benchmark --cpu-priority=2 >/dev/null &
sleep 10
CheckAllCores full-load >>${ResultLog}
Expand Down Expand Up @@ -2490,14 +2490,30 @@ CheckAllCores() {
for i in $(seq 0 $(( ${CPUCores} -1 )) ) ; do
taskset -c ${i} "${InstallLocation}"/mhz/mhz 3 1000000 >"${TempDir}/CheckAllCores-${1}.${i}" &
done
if [ -f /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq ]; then
CpuFreqToQuery=cpuinfo_cur_freq
elif [ -f /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq ]; then
CpuFreqToQuery=scaling_cur_freq
fi
# if in full-load mode wait 8 seconds
[ "X${1}" = "Xfull-load" ] && sleep 8
for i in $(seq 0 $(( ${CPUCores} -1 )) ) ; do
[ -f /sys/devices/system/cpu/cpu${i}/cpufreq/${CpuFreqToQuery} ] && \
cat /sys/devices/system/cpu/cpu${i}/cpufreq/${CpuFreqToQuery} >"${TempDir}/Reported-${1}.${i}"
done
for job in $(jobs -p) ; do
wait ${job}
done
for i in $(seq 0 $(( ${CPUCores} -1 )) ) ; do
MeasuredSpeed=$(awk -F" cpu_MHz=" '{print $2}' <"${TempDir}/CheckAllCores-${1}.${i}" | awk -F" " '{print $1}' | sort -r -n | tr '\n' '/' | sed 's|/$||')
SpeedSum=$(tr '/' '\n' <<<"${MeasuredSpeed}" | tr -d '.' | awk '{s+=$1} END {printf "%.0f", s}')
RoundedSpeed=$(( ${SpeedSum} / 3000 ))
echo -e "Measured on cpu${i}: ${RoundedSpeed} MHz (${MeasuredSpeed})"
if [ -s "${TempDir}/Reported-${1}.${i}" ]; then
read ReportedSpeed <"${TempDir}/Reported-${1}.${i}"
echo -e "cpu${i}: ${RoundedSpeed}/$(( ${ReportedSpeed} / 1000 )) MHz (${MeasuredSpeed})"
else
echo -e "cpu${i}: ${RoundedSpeed} MHz (${MeasuredSpeed})"
fi
done
} # CheckAllCores

Expand Down Expand Up @@ -3456,10 +3472,12 @@ GuessARMSoC() {
# Marvell PJ4 / r1p1: Marvell Armada 370/XP
# Marvell PJ4B-MP / r2p2: Marvell PJ4Bv7
# Phytium FTC663 / r1p3: Phytium D2000
# Qualcomm Falkor / r10p1: Qualcomm Snapdragon 835 / MSM8998
# Qualcomm Krait / r1p0: Qualcomm Snapdragon S4 Plus (MSM8960)
# Qualcomm Krait / r2p0: Qualcomm IPQ806x
# Qualcomm Kryo / r2p1: Qualcomm MSM8996pro
# Qualcomm Kryo / r13p14: Qualcomm Snapdragon 865 / QRB5165
# Qualcomm Kryo V2 / r10p4: Qualcomm Snapdragon 835 / MSM8998
# ThunderX 88XX / r1p1: ThunderX CN8890
# ThunderX2 99xx / r1p1: Cavium ThunderX2 CN9980
#
Expand Down Expand Up @@ -4165,6 +4183,10 @@ GuessSoCbySignature() {
# Snapdragon 810 / MSM8994/MSM8994V: 4 x Cortex-A53 / r0p2 + 4 x Cortex-A57 / r1p1 / fp asimd evtstrm aes pmull sha1 sha2 crc32
echo "Snapdragon 810"
;;
00QualcommV2r10p400QualcommV2r10p400QualcommV2r10p400QualcommV2r10p404QualcommV1Kryor10p104QualcommV1Kryor10p104QualcommV1Kryor10p104QualcommV1Kryor10p1)
# Snapdragon 835 / MSM8998: 4 x Qualcomm Kryo V2 / r10p4 + 4 x Qualcomm Falkor V1/Kryo / r10p1 / fp asimd aes pmull sha1 sha2 crc32
echo "Snapdragon 835"
;;
*A53r0p2)
# Marvell PXA1908: 4 x Cortex-A53 / r0p2 / fp asimd evtstrm aes pmull sha1 sha2 crc32 half thumb fastmult edsp tls vfp vfpv3 vfpv4 neon idiva idivt
# At least with vendor's 3.14 kernel CPU cores are sent offline when idle so detection of all cores might fail
Expand Down

0 comments on commit 2e7e88a

Please sign in to comment.