From b507dc013d08add7301cd994bbd9bfd9d9fae42d Mon Sep 17 00:00:00 2001 From: Thomas Kaiser Date: Wed, 28 Jun 2023 09:02:29 +0200 Subject: [PATCH] Some updated numbers --- Results.md | 3 +- results/4uSM.txt | 570 ---------------------- results/4z3s.txt | 742 +++++++++++++++++++++++++++++ results/4zcm.txt | 687 ++++++++++++++++++++++++++ results/ARMv8-Crypto-Extensions.md | 9 +- results/Sorted-Results.md | 12 + results/results.tar.xz | Bin 652900 -> 655696 bytes results/validation.md | 3 +- sbc-bench.sh | 10 +- 9 files changed, 1456 insertions(+), 580 deletions(-) delete mode 100644 results/4uSM.txt create mode 100644 results/4z3s.txt create mode 100644 results/4zcm.txt diff --git a/Results.md b/Results.md index 124ab14..06718e9 100644 --- a/Results.md +++ b/Results.md @@ -63,6 +63,7 @@ So do **not** rely on collected numbers unless you carefully read through all th | [Lichee Pi 4A](http://ix.io/4xYE) | 1990 MHz | 5.10 | Bookworm riscv64 | 5260 | 1592 | 43820 | 4350 | 14760 | - | | [Lime A10](http://ix.io/1j1L) | 910 MHz | 4.14 | Stretch armhf | 550 | 550 | 28250 | 440 | 1300 | - | | [Loongson-3A5000-HV](http://ix.io/4dzX) | 2500 MHz | 4.19 | Loongnix 20 loongarch64 | 11120 | 2990 | 116900 | 6930 | 19170 | - | +| [Macchiatobin](http://ix.io/4zcm) | 1600 MHz | 5.10 | Buster arm64 | 5720 | 1739 | 909420 | 4510 | 12270 | 7.91 | | [MangoPi Mcore](http://ix.io/4bSf) | 1800 MHz | 5.19 | Jammy arm64 | 4100 | 1218 | 840270 | 990 | 2380 | - | | [Marvell PXA1908](http://ix.io/46hs) | 1245 MHz | 3.14 | Bullseye arm64 | 3180 | 951 | 581840 | 740 | 2220 | - | | [Milk-V Pioneer](http://ix.io/4wYE) | 2000 MHz | 6.1 | Kinetic riscv64 | 59820 | 1622 | 43500 | 3620 | 4760 | - | @@ -194,7 +195,7 @@ So do **not** rely on collected numbers unless you carefully read through all th | [AMD E-450 APU](http://ix.io/4hwl) | 1650 MHz | 5.15 | Jammy amd64 | 2430 | 1258 | 27450 | 1710 | 1740 | - | | [Celeron N2830](http://ix.io/4pEc) | 2160 MHz | 5.19 | Jammy amd64 | 2760 | 1664 | 31270 | 3780 | 3520 | 6.10 | | [Atom N2800](http://ix.io/4nt8) | 1860 MHz | 5.15 | Bullseye amd64 | 2970 | 1006 | 21780 | 2050 | 1570 | - | -[ [Celeron N2807](http://ix.io/4uSM) | 2160 MHz | 5.4 | Focal amd64 | 2990 | 1647 | 31280 | 3600 | 2950 | - | +| [Celeron N2807](http://ix.io/4z3s) | 2165 MHz | 5.10 | Bullseye) amd64 | 3070 | 1766 | 31250 | 3600 | 3110 | 6.09 | | [Celeron N3350](http://ix.io/4rJj) | 2400 MHz | 6.0 | Bullseye amd64 | 3810 | 2034 | 446170 | 5190 | 5700 | - | | [x5-Z8300](http://ix.io/1lgD) | 1420 MHz | 4.9 | Stretch amd64 | 3900 | 950 | 178010 | 2380 | 2380 | 7.81 | | [Celeron 5205U](http://ix.io/4eiM) | 1900 MHz | 5.15 | Jammy amd64 | 4060 | 2171 | 521090 | 7350 | 16020 | 11.20 | diff --git a/results/4uSM.txt b/results/4uSM.txt deleted file mode 100644 index f57a2cd..0000000 --- a/results/4uSM.txt +++ /dev/null @@ -1,570 +0,0 @@ -sbc-bench v0.9.41 WYSE Dell Wyse Thin Client Desktop 3290 Rev 1 / Celeron N2807 @ 1.58GHz (Thu, 04 May 2023 22:36:36 +0800) - -Distributor ID: Ubuntu -Description: Ubuntu 20.04.5 LTS -Release: 20.04 -Codename: focal - -Device Info: - Manufacturer: WYSE - Product Name: Dell Wyse Thin Client Desktop 3290 - Version: Rev 1 - SKU Number: Null - Family: Dell Wyse Thin Client Desktop 3000 series - -BIOS/UEFI: - Vendor: Phoenix Technologies Ltd. - Version: 1.0G - Release Date: 02/12/2015 - BIOS Revision: 0.1 - -/usr/bin/gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 - -Uptime: 22:36:37 up 11 min, 1 user, load average: 0.76, 0.41, 0.20, 34.0°C, 400763090 - -Linux 5.4.0-135-generic (wyse) 05/04/23 _x86_64_ (2 CPU) - -avg-cpu: %user %nice %system %iowait %steal %idle - 8.03 0.01 3.91 1.13 0.00 86.93 - -Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd -sda 46.15 836.96 1257.89 83480.98 568355 854197 56689432 - - total used free shared buff/cache available -Mem: 3.7Gi 172Mi 3.3Gi 0.0Ki 218Mi 3.3Gi -Swap: 2.0Gi 0B 2.0Gi - -Filename Type Size Used Priority -/swapfile file 2097148 0 -2 - -########################################################################## - -Intel P-States: Intel P-state driver initializing - -Powercap present. You might want to check with "powercap-info -p intel-rapl" - -Checking cpufreq OPP: - -Cpufreq OPP: 2165 Measured: 2163 (2163.550/2163.323/2163.323) -Cpufreq OPP: 499 Measured: 524 (546.670/523.353/502.746) (+5.0%) - -########################################################################## - -Hardware sensors: - -soc_dts0-virtual-0 -temp1: +34.0 C - -acpitz-acpi-0 -temp1: +26.8 C (crit = +90.0 C) - -soc_dts1-virtual-0 -temp1: +33.0 C - -coretemp-isa-0000 -Core 0: +36.0 C (high = +105.0 C, crit = +105.0 C) -Core 1: +36.0 C (high = +105.0 C, crit = +105.0 C) - -########################################################################## - -Executing benchmark on cpu0: - -tinymembench v0.4.9-nuumio (simple benchmark for memory throughput and latency) - -CFLAGS: -bandwidth test min repeats (-b): 2 -bandwidth test max repeats (-B): 3 -bandwidth test mem realloc (-M): no (-m for realloc) - latency test repeats (-l): 3 - latency test count (-c): 1000000 - -========================================================================== -== Memory bandwidth tests == -== == -== Note 1: 1MB = 1000000 bytes == -== Note 2: Test result is the best of repeated runs. Number of repeats == -== is shown in brackets == -== Note 3: Results for 'copy' tests show how many bytes can be == -== copied per second (adding together read and writen == -== bytes would have provided twice higher numbers) == -== Note 4: 2-pass copy means that we are using a small temporary buffer == -== to first fetch data into it, and only then write it to the == -== destination (source -> L1 cache, L1 cache -> destination) == -== Note 5: If sample standard deviation exceeds 0.1%, it is shown in == -== brackets == -========================================================================== - - C copy backwards : 2202.6 MB/s (3, 7.9%) - C copy backwards (32 byte blocks) : 2199.0 MB/s (3, 0.3%) - C copy backwards (64 byte blocks) : 2200.6 MB/s (2) - C copy : 2207.5 MB/s (2) - C copy prefetched (32 bytes step) : 1912.3 MB/s (3, 0.8%) - C copy prefetched (64 bytes step) : 1916.0 MB/s (2) - C 2-pass copy : 2046.8 MB/s (3) - C 2-pass copy prefetched (32 bytes step) : 1539.0 MB/s (2) - C 2-pass copy prefetched (64 bytes step) : 1539.9 MB/s (3, 0.4%) - C scan 8 : 795.9 MB/s (3, 1.1%) - C scan 16 : 1525.0 MB/s (2) - C scan 32 : 2780.6 MB/s (2) - C scan 64 : 4472.7 MB/s (2) - C fill : 2977.9 MB/s (3, 0.4%) - C fill (shuffle within 16 byte blocks) : 2978.9 MB/s (2) - C fill (shuffle within 32 byte blocks) : 2977.6 MB/s (2) - C fill (shuffle within 64 byte blocks) : 2976.6 MB/s (3, 1.4%) - --- - libc memcpy copy : 3596.3 MB/s (2) - libc memchr scan : 5854.1 MB/s (2) - libc memset fill : 2949.0 MB/s (3, 0.3%) - --- - MOVSB copy : 2111.5 MB/s (2) - MOVSD copy : 2112.8 MB/s (2) - STOSB fill : 2950.3 MB/s (3, 1.2%) - SSE2 copy : 2180.4 MB/s (2) - SSE2 nontemporal copy : 3446.1 MB/s (3, 0.5%) - SSE2 copy prefetched (32 bytes step) : 2060.4 MB/s (2) - SSE2 copy prefetched (64 bytes step) : 2057.0 MB/s (2) - SSE2 nontemporal copy prefetched (32 bytes step) : 2886.8 MB/s (2) - SSE2 nontemporal copy prefetched (64 bytes step) : 2884.5 MB/s (3, 0.4%) - SSE2 2-pass copy : 2114.8 MB/s (2) - SSE2 2-pass copy prefetched (32 bytes step) : 1712.9 MB/s (2) - SSE2 2-pass copy prefetched (64 bytes step) : 1707.6 MB/s (3, 0.4%) - SSE2 2-pass nontemporal copy : 1714.1 MB/s (2) - SSE2 fill : 2950.6 MB/s (2) - SSE2 nontemporal fill : 5220.5 MB/s (3, 0.2%) - -========================================================================== -== Memory latency test == -== == -== Average time is measured for random memory accesses in the buffers == -== of different sizes. The larger is the buffer, the more significant == -== are relative contributions of TLB, L1/L2 cache misses and SDRAM == -== accesses. For extremely large buffer sizes we are expecting to see == -== page table walk with several requests to SDRAM for almost every == -== memory access (though 64MiB is not nearly large enough to experience == -== this effect to its fullest). == -== == -== Note 1: All the numbers are representing extra time, which needs to == -== be added to L1 cache latency. The cycle timings for L1 cache == -== latency can be usually found in the processor documentation. == -== Note 2: Dual random read means that we are simultaneously performing == -== two independent memory accesses at a time. In the case if == -== the memory subsystem can't handle multiple outstanding == -== requests, dual random read has the same timings as two == -== single reads performed one after another. == -========================================================================== - -block size : single random read / dual random read, [MADV_NOHUGEPAGE] - 1024 : 0.0 ns / 0.0 ns - 2048 : 0.0 ns / 0.0 ns - 4096 : 0.0 ns / 0.0 ns - 8192 : 0.0 ns / 0.0 ns - 16384 : 0.0 ns / 0.0 ns - 32768 : 1.3 ns / 2.3 ns - 65536 : 3.2 ns / 5.1 ns - 131072 : 4.2 ns / 6.2 ns - 262144 : 6.4 ns / 9.3 ns - 524288 : 7.7 ns / 11.0 ns - 1048576 : 28.4 ns / 46.7 ns - 2097152 : 61.1 ns / 92.2 ns - 4194304 : 85.5 ns / 115.3 ns - 8388608 : 98.9 ns / 125.2 ns - 16777216 : 106.3 ns / 130.6 ns - 33554432 : 110.8 ns / 134.9 ns - 67108864 : 124.0 ns / 155.8 ns - -block size : single random read / dual random read, [MADV_HUGEPAGE] - 1024 : 0.0 ns / 0.0 ns - 2048 : 0.0 ns / 0.0 ns - 4096 : 0.0 ns / 0.0 ns - 8192 : 0.0 ns / 0.0 ns - 16384 : 0.0 ns / 0.0 ns - 32768 : 1.3 ns / 2.3 ns - 65536 : 3.2 ns / 5.1 ns - 131072 : 4.2 ns / 6.2 ns - 262144 : 6.4 ns / 9.3 ns - 524288 : 7.6 ns / 11.0 ns - 1048576 : 9.5 ns / 13.9 ns - 2097152 : 54.5 ns / 82.8 ns - 4194304 : 76.9 ns / 102.4 ns - 8388608 : 88.2 ns / 108.3 ns - 16777216 : 93.8 ns / 110.3 ns - 33554432 : 96.7 ns / 111.1 ns - 67108864 : 105.8 ns / 125.1 ns - -########################################################################## - -Executing ramlat on cpu0, results in ns: - - size: 1x32 2x32 1x64 2x64 1xPTR 2xPTR 4xPTR 8xPTR - 4k: 1.453 1.434 1.820 2.328 1.387 1.387 1.850 3.911 - 8k: 1.416 1.416 1.820 2.325 1.420 1.387 1.849 3.879 - 16k: 1.421 1.416 1.821 2.326 1.387 1.388 1.853 3.873 - 32k: 6.880 7.733 3.927 8.096 6.849 8.360 10.08 17.70 - 64k: 6.504 7.763 6.908 7.721 6.477 8.621 10.82 18.46 - 128k: 6.509 7.791 6.914 7.725 6.481 8.796 11.13 18.75 - 256k: 9.745 9.746 10.15 10.61 9.713 9.721 12.40 19.68 - 512k: 9.746 9.747 10.15 10.61 9.732 10.08 12.73 19.68 - 1024k: 68.99 70.39 69.85 70.72 68.85 69.46 71.71 102.1 - 2048k: 110.1 116.3 114.4 111.5 110.1 110.7 111.4 149.9 - 4096k: 110.2 112.1 110.3 111.6 110.2 110.4 111.8 154.0 - 8192k: 110.9 113.5 110.9 113.0 110.9 112.2 114.7 158.1 - 16384k: 115.6 119.6 117.3 121.4 115.2 119.0 122.5 161.8 - 32768k: 116.0 120.1 117.7 120.8 115.6 119.5 125.6 163.7 - 65536k: 128.4 132.5 130.5 133.4 128.2 130.4 137.2 175.4 - 131072k: 129.0 136.9 131.0 137.2 128.8 131.4 138.8 175.2 - -########################################################################## - -Executing benchmark twice on cluster 0 - -OpenSSL 1.1.1f, built on 31 Mar 2020 -type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes -aes-128-cbc 36869.23k 41849.66k 43540.57k 43990.36k 44122.11k 44122.11k -aes-128-cbc 36930.39k 41791.49k 43543.13k 43990.36k 44122.11k 44056.58k -aes-192-cbc 31711.33k 35284.48k 36476.33k 36787.54k 36874.92k 36880.38k -aes-192-cbc 31718.54k 35288.49k 36481.11k 36609.19k 36883.11k 36885.85k -aes-256-cbc 27789.74k 30120.62k 30973.27k 31210.50k 28783.96k 31266.13k -aes-256-cbc 27427.78k 30078.70k 30977.45k 31212.20k 31233.37k 31287.98k - -########################################################################## - -Executing benchmark single-threaded on cpu0 - -7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 -p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,2 CPUs Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678),ASM) - - Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678) -CPU Freq: 64000000 - - - - - - - - - -RAM size: 3809 MB, # CPU hardware threads: 2 -RAM usage: 435 MB, # Benchmark threads: 1 - - Compressing | Decompressing -Dict Speed Usage R/U Rating | Speed Usage R/U Rating - KiB/s % MIPS MIPS | KiB/s % MIPS MIPS - -22: 1504 100 1466 1464 | 21637 100 1848 1847 -23: 1420 100 1448 1448 | 21341 100 1848 1847 -24: 1343 100 1447 1444 | 20974 100 1842 1841 -25: 1281 100 1465 1463 | 20492 100 1824 1824 ----------------------------------- | ------------------------------ -Avr: 100 1456 1455 | 100 1841 1840 -Tot: 100 1649 1647 - -########################################################################## - -Executing benchmark 3 times multi-threaded on CPUs 0-1 - -7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 -p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,2 CPUs Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678),ASM) - - Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678) -CPU Freq: - - - - - - - - - - -RAM size: 3809 MB, # CPU hardware threads: 2 -RAM usage: 441 MB, # Benchmark threads: 2 - - Compressing | Decompressing -Dict Speed Usage R/U Rating | Speed Usage R/U Rating - KiB/s % MIPS MIPS | KiB/s % MIPS MIPS - -22: 2300 161 1387 2238 | 42330 198 1826 3614 -23: 2276 168 1382 2319 | 41524 197 1821 3594 -24: 2274 174 1405 2446 | 40905 198 1813 3591 -25: 2253 180 1432 2573 | 39902 198 1794 3552 ----------------------------------- | ------------------------------ -Avr: 171 1402 2394 | 198 1813 3588 -Tot: 184 1608 2991 - -7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 -p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,2 CPUs Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678),ASM) - - Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678) -CPU Freq: - - - - - - - - - - -RAM size: 3809 MB, # CPU hardware threads: 2 -RAM usage: 441 MB, # Benchmark threads: 2 - - Compressing | Decompressing -Dict Speed Usage R/U Rating | Speed Usage R/U Rating - KiB/s % MIPS MIPS | KiB/s % MIPS MIPS - -22: 2333 164 1386 2270 | 42310 198 1826 3612 -23: 2289 169 1378 2332 | 41610 198 1820 3602 -24: 2276 174 1407 2447 | 40759 197 1813 3578 -25: 2241 179 1427 2560 | 40096 199 1795 3569 ----------------------------------- | ------------------------------ -Avr: 172 1399 2402 | 198 1814 3590 -Tot: 185 1606 2996 - -7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 -p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,2 CPUs Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678),ASM) - - Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678) -CPU Freq: - - - - - - - - - - -RAM size: 3809 MB, # CPU hardware threads: 2 -RAM usage: 441 MB, # Benchmark threads: 2 - - Compressing | Decompressing -Dict Speed Usage R/U Rating | Speed Usage R/U Rating - KiB/s % MIPS MIPS | KiB/s % MIPS MIPS - -22: 2313 162 1393 2251 | 42246 198 1826 3607 -23: 2304 170 1378 2348 | 41540 198 1820 3596 -24: 2260 173 1402 2430 | 41076 199 1814 3606 -25: 2249 180 1430 2569 | 39524 196 1794 3518 ----------------------------------- | ------------------------------ -Avr: 171 1401 2399 | 197 1814 3582 -Tot: 184 1607 2991 - -Compression: 2394,2402,2399 -Decompression: 3588,3590,3582 -Total: 2991,2996,2991 - -########################################################################## - -Testing maximum cpufreq again, still under full load. System health now: - -Time CPU load %cpu %sys %usr %nice %io %irq Temp -22:44:52: 2167MHz 2.06 92% 1% 91% 0% 0% 0% 40.0°C - -Checking cpufreq OPP: - -Cpufreq OPP: 2165 Measured: 2163 (2163.504/2163.278/2163.142) - -########################################################################## - -Hardware sensors: - -soc_dts0-virtual-0 -temp1: +38.0 C - -acpitz-acpi-0 -temp1: +26.8 C (crit = +90.0 C) - -soc_dts1-virtual-0 -temp1: +37.0 C - -coretemp-isa-0000 -Core 0: +39.0 C (high = +105.0 C, crit = +105.0 C) -Core 1: +39.0 C (high = +105.0 C, crit = +105.0 C) - -########################################################################## - -System health while running tinymembench: - -Time CPU load %cpu %sys %usr %nice %io %irq Temp -22:36:45: 2167MHz 0.79 13% 3% 8% 0% 1% 0% 36.0°C -22:36:55: 2167MHz 0.83 50% 0% 50% 0% 0% 0% 36.0°C -22:37:05: 2167MHz 0.85 51% 0% 50% 0% 1% 0% 37.0°C -22:37:15: 2167MHz 0.88 50% 0% 50% 0% 0% 0% 37.0°C -22:37:25: 2167MHz 0.90 50% 0% 50% 0% 0% 0% 37.0°C -22:37:35: 2167MHz 0.91 50% 0% 50% 0% 0% 0% 37.0°C -22:37:45: 2167MHz 0.93 50% 0% 50% 0% 0% 0% 37.0°C -22:37:55: 2167MHz 0.94 50% 0% 49% 0% 0% 0% 37.0°C - -System health while running ramlat: - -Time CPU load %cpu %sys %usr %nice %io %irq Temp -22:37:59: 2167MHz 1.02 17% 3% 12% 0% 1% 0% 37.0°C -22:38:02: 2167MHz 1.02 52% 1% 50% 0% 0% 0% 37.0°C -22:38:05: 2167MHz 1.02 51% 0% 50% 0% 0% 0% 37.0°C -22:38:08: 2167MHz 1.02 51% 0% 50% 0% 0% 0% 38.0°C -22:38:11: 2167MHz 1.02 51% 0% 50% 0% 0% 0% 37.0°C -22:38:14: 2167MHz 1.02 55% 1% 53% 0% 0% 0% 37.0°C -22:38:17: 2167MHz 1.02 50% 0% 50% 0% 0% 0% 37.0°C -22:38:20: 2167MHz 1.02 50% 0% 49% 0% 0% 0% 37.0°C -22:38:23: 2167MHz 1.02 51% 0% 49% 0% 0% 0% 37.0°C -22:38:26: 2167MHz 1.02 50% 1% 49% 0% 0% 0% 37.0°C - -System health while running OpenSSL benchmark: - -Time CPU load %cpu %sys %usr %nice %io %irq Temp -22:38:30: 2167MHz 1.01 18% 3% 14% 0% 0% 0% 37.0°C -22:38:46: 2167MHz 1.01 50% 0% 50% 0% 0% 0% 37.0°C -22:39:02: 2167MHz 1.01 50% 0% 50% 0% 0% 0% 37.0°C -22:39:18: 2167MHz 1.00 50% 0% 50% 0% 0% 0% 37.0°C -22:39:34: 2167MHz 1.07 50% 0% 50% 0% 0% 0% 37.0°C -22:39:50: 2167MHz 1.05 50% 0% 50% 0% 0% 0% 37.0°C -22:40:06: 2167MHz 1.04 53% 1% 51% 0% 0% 0% 37.0°C - -System health while running 7-zip single core benchmark: - -Time CPU load %cpu %sys %usr %nice %io %irq Temp -22:40:18: 2167MHz 1.03 22% 3% 18% 0% 0% 0% 38.0°C -22:40:30: 2167MHz 1.02 50% 0% 50% 0% 0% 0% 38.0°C -22:40:42: 2167MHz 1.02 50% 0% 49% 0% 0% 0% 38.0°C -22:40:54: 2167MHz 1.02 50% 0% 49% 0% 0% 0% 38.0°C -22:41:06: 2167MHz 1.01 52% 1% 50% 0% 0% 0% 38.0°C -22:41:18: 2167MHz 1.01 52% 1% 51% 0% 0% 0% 38.0°C -22:41:30: 2167MHz 1.01 51% 1% 49% 0% 0% 0% 38.0°C -22:41:42: 2167MHz 1.01 50% 0% 49% 0% 0% 0% 38.0°C - -System health while running 7-zip multi core benchmark: - -Time CPU load %cpu %sys %usr %nice %io %irq Temp -22:41:46: 2167MHz 1.00 25% 2% 21% 0% 0% 0% 38.0°C -22:42:16: 2167MHz 1.32 92% 1% 91% 0% 0% 0% 38.0°C -22:42:48: 2167MHz 1.81 92% 2% 90% 0% 0% 0% 39.0°C -22:43:19: 2167MHz 1.89 94% 0% 93% 0% 0% 0% 40.0°C -22:43:50: 2167MHz 2.07 91% 2% 89% 0% 0% 0% 39.0°C -22:44:21: 2167MHz 2.10 93% 1% 92% 0% 0% 0% 40.0°C -22:44:52: 2167MHz 2.06 92% 1% 91% 0% 0% 0% 40.0°C - -########################################################################## - -dmesg output while running the benchmarks: - -[ 1126.237758] perf: interrupt took too long (2515 > 2500), lowering kernel.perf_event_max_sample_rate to 79500 - -########################################################################## - -Linux 5.4.0-135-generic (wyse) 05/04/23 _x86_64_ (2 CPU) - -avg-cpu: %user %nice %system %iowait %steal %idle - 33.33 0.04 2.78 0.66 0.00 63.20 - -Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd -sda 27.69 492.58 790.37 47447.59 588527 944317 56689432 - - total used free shared buff/cache available -Mem: 3.7Gi 174Mi 3.3Gi 0.0Ki 247Mi 3.3Gi -Swap: 2.0Gi 0B 2.0Gi - -Filename Type Size Used Priority -/swapfile file 2097148 0 -2 - -CPU sysfs topology (clusters, cpufreq members, clockspeeds) - cpufreq min max - CPU cluster policy speed speed core type - 0 0 0 500 2166 Celeron N2807 @ 1.58GHz - 1 0 1 500 2166 Celeron N2807 @ 1.58GHz - -Architecture: x86_64 -CPU op-mode(s): 32-bit, 64-bit -Byte Order: Little Endian -Address sizes: 36 bits physical, 48 bits virtual -CPU(s): 2 -On-line CPU(s) list: 0,1 -Thread(s) per core: 1 -Core(s) per socket: 2 -Socket(s): 1 -NUMA node(s): 1 -Vendor ID: GenuineIntel -CPU family: 6 -Model: 55 -Model name: Intel(R) Celeron(R) CPU N2807 @ 1.58GHz -Stepping: 8 -CPU MHz: 1799.075 -CPU max MHz: 2165.8000 -CPU min MHz: 499.8000 -BogoMIPS: 3166.66 -Virtualization: VT-x -L1d cache: 48 KiB -L1i cache: 64 KiB -L2 cache: 1 MiB -NUMA node0 CPU(s): 0,1 -Vulnerability Itlb multihit: Not affected -Vulnerability L1tf: Not affected -Vulnerability Mds: Mitigation; Clear CPU buffers; SMT disabled -Vulnerability Meltdown: Mitigation; PTI -Vulnerability Mmio stale data: Unknown: No mitigations -Vulnerability Retbleed: Not affected -Vulnerability Spec store bypass: Not affected -Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization -Vulnerability Spectre v2: Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP disabled, RSB filling, PBRSB-eIBRS Not affected -Vulnerability Srbds: Not affected -Vulnerability Tsx async abort: Not affected -Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer rdrand lahf_lm 3dnowprefetch epb pti ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat md_clear - -Processor Information - Socket Designation: CPU 1 - Type: Central Processor - Family: Atom - Manufacturer: Intel(R) Corporation - ID: 78 06 03 00 FF FB EB BF - Signature: Type 0, Family 6, Model 55, Stepping 8 - Flags: - FPU (Floating-point unit on-chip) - VME (Virtual mode extension) - DE (Debugging extension) - PSE (Page size extension) - TSC (Time stamp counter) - MSR (Model specific registers) - PAE (Physical address extension) - MCE (Machine check exception) - CX8 (CMPXCHG8 instruction supported) - APIC (On-chip APIC hardware supported) - SEP (Fast system call) - MTRR (Memory type range registers) - PGE (Page global enable) - MCA (Machine check architecture) - CMOV (Conditional move instruction supported) - PAT (Page attribute table) - PSE-36 (36-bit page size extension) - CLFSH (CLFLUSH instruction supported) - DS (Debug store) - ACPI (ACPI supported) - MMX (MMX technology supported) - FXSR (FXSAVE and FXSTOR instructions supported) - SSE (Streaming SIMD extensions) - SSE2 (Streaming SIMD extensions 2) - SS (Self-snoop) - HTT (Multi-threading) - TM (Thermal monitor supported) - PBE (Pending break enabled) - Version: Intel(R) Celeron(R) CPU N2807 @ 1.58GHz - Voltage: 0.8 V - External Clock: 83 MHz - Max Speed: 4000 MHz - Current Speed: 1590 MHz - Status: Populated, Enabled - L1 Cache Handle: 0x0006 - L2 Cache Handle: 0x0007 - Core Count: 2 - Core Enabled: 2 - Thread Count: 1 - Characteristics: - 64-bit capable - Multi-Core - Execute Protection - Enhanced Virtualization - Power/Performance Control - - Compiler: /usr/bin/gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 / x86_64-linux-gnu - Userland: amd64 - Kernel: 5.4.0-135-generic/x86_64 - CONFIG_HZ=250 - CONFIG_HZ_250=y - CONFIG_PREEMPT_NOTIFIERS=y - CONFIG_PREEMPT_VOLUNTARY=y - -########################################################################## - -DIMM configuration: - *-bank:0 - description: SODIMM DDR3 Synchronous 1333 MHz (0.8 ns) - product: HMT451S6DFR8A-PB - vendor: 17 - physical id: 0 - configured speed: 1333MT/s - size: 4GiB - width: 64 bits - clock: 1333MHz (0.8ns) - *-bank:1 - description: SODIMM [empty] - physical id: 1 - slot: DIMM1 - -########################################################################## - -Results validation: - - * Measured clockspeed not lower than advertised max CPU clockspeed - * No swapping - * Background activity (%system) OK - * Powercap detected. Details: "sudo powercap-info -p intel-rapl" - * No throttling - -| WYSE Dell Wyse Thin Client Desktop 3290 Rev 1 / Celeron N2807 @ 1.58GHz | 2165 MHz | 5.4 | Ubuntu 20.04.5 LTS x86_64/amd64 | 2990 | 1647 | 31280 | 3600 | 2950 | - | \ No newline at end of file diff --git a/results/4z3s.txt b/results/4z3s.txt new file mode 100644 index 0000000..f58912a --- /dev/null +++ b/results/4z3s.txt @@ -0,0 +1,742 @@ +sbc-bench v0.9.42 clientron TC120 Type1 - TBD by OEM / Celeron N2807 @ 1.58GHz (Sun, 25 Jun 2023 13:03:37 +0200) + +Distributor ID: Debian +Description: Debian GNU/Linux 11 (bullseye) +Release: 11 +Codename: bullseye + +Device Info: + Manufacturer: clientron + Product Name: TC120 + Version: Type1 - TBD by OEM + SKU Number: Type1 - SKU0 + Family: Type1 - Family + +BIOS/UEFI: + Vendor: INSYDE Corp. + Version: TC120 V:3.A.3H-07112016 + Release Date: 07/11/2016 + BIOS Revision: 168.237 + Firmware Revision: 0.0 + +/usr/bin/gcc (Debian 10.2.1-6) 10.2.1 20210110 + +Uptime: 13:03:37 up 37 min, 1 user, load average: 1.07, 0.71, 0.30, 36.0°C, 308130449 + +Linux 5.10.0-23-amd64 (casa) 06/25/23 _x86_64_ (2 CPU) + +avg-cpu: %user %nice %system %iowait %steal %idle + 6.02 0.00 2.28 0.36 0.00 91.34 + +Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd +sda 15.84 258.39 365.02 0.00 581070 820885 0 + + total used free shared buff/cache available +Mem: 1.8Gi 654Mi 899Mi 6.0Mi 246Mi 1.0Gi +Swap: 976Mi 0.0Ki 976Mi + +Filename Type Size Used Priority +/dev/sda3 partition 1000444 512 -2 + +########################################################################## + +Intel P-States: Intel P-state driver initializing + +Powercap present. You might want to check with "powercap-info -p intel-rapl" + +Checking cpufreq OPP: + +Cpufreq OPP: 2165 Measured: 2164 (2164.259/2164.042/2163.879) +Cpufreq OPP: 499 Measured: 974 (1860.929/587.192/475.163) (+95.2%) + +########################################################################## + +Hardware sensors: + +soc_dts0-virtual-0 +temp1: +37.0 C + +acpitz-acpi-0 +temp1: +28.0 C (crit = +95.0 C) + +soc_dts1-virtual-0 +temp1: +38.0 C + +coretemp-isa-0000 +Core 0: +37.0 C (high = +105.0 C, crit = +105.0 C) +Core 1: +37.0 C (high = +105.0 C, crit = +105.0 C) + +/dev/sda: 30°C + +########################################################################## + +Executing benchmark on cpu0: + +tinymembench v0.4.9-nuumio (simple benchmark for memory throughput and latency) + +CFLAGS: +bandwidth test min repeats (-b): 2 +bandwidth test max repeats (-B): 3 +bandwidth test mem realloc (-M): no (-m for realloc) + latency test repeats (-l): 3 + latency test count (-c): 1000000 + +========================================================================== +== Memory bandwidth tests == +== == +== Note 1: 1MB = 1000000 bytes == +== Note 2: Test result is the best of repeated runs. Number of repeats == +== is shown in brackets == +== Note 3: Results for 'copy' tests show how many bytes can be == +== copied per second (adding together read and writen == +== bytes would have provided twice higher numbers) == +== Note 4: 2-pass copy means that we are using a small temporary buffer == +== to first fetch data into it, and only then write it to the == +== destination (source -> L1 cache, L1 cache -> destination) == +== Note 5: If sample standard deviation exceeds 0.1%, it is shown in == +== brackets == +========================================================================== + + C copy backwards : 2268.2 MB/s (3, 8.5%) + C copy backwards (32 byte blocks) : 2211.4 MB/s (3, 5.9%) + C copy backwards (64 byte blocks) : 2270.0 MB/s (3, 0.2%) + C copy : 2298.0 MB/s (3, 1.2%) + C copy prefetched (32 bytes step) : 1965.6 MB/s (3, 0.9%) + C copy prefetched (64 bytes step) : 1956.5 MB/s (2) + C 2-pass copy : 2049.6 MB/s (2) + C 2-pass copy prefetched (32 bytes step) : 1562.4 MB/s (3, 0.4%) + C 2-pass copy prefetched (64 bytes step) : 1576.0 MB/s (3, 0.7%) + C scan 8 : 796.3 MB/s (3, 0.3%) + C scan 16 : 1532.2 MB/s (2) + C scan 32 : 2806.4 MB/s (2) + C scan 64 : 4524.8 MB/s (3, 0.5%) + C fill : 3142.7 MB/s (3, 0.2%) + C fill (shuffle within 16 byte blocks) : 3142.3 MB/s (3, 2.3%) + C fill (shuffle within 32 byte blocks) : 3114.0 MB/s (3, 1.1%) + C fill (shuffle within 64 byte blocks) : 3138.0 MB/s (3, 5.9%) + --- + libc memcpy copy : 3600.7 MB/s (3, 0.6%) + libc memchr scan : 5940.9 MB/s (2) + libc memset fill : 3111.2 MB/s (3, 1.9%) + --- + MOVSB copy : 2204.6 MB/s (3, 1.0%) + MOVSD copy : 2194.0 MB/s (3, 0.9%) + STOSB fill : 3113.0 MB/s (3, 0.3%) + SSE2 copy : 2262.6 MB/s (3, 1.1%) + SSE2 nontemporal copy : 3483.8 MB/s (3, 1.2%) + SSE2 copy prefetched (32 bytes step) : 2104.1 MB/s (3, 1.6%) + SSE2 copy prefetched (64 bytes step) : 2106.4 MB/s (3, 0.3%) + SSE2 nontemporal copy prefetched (32 bytes step) : 2901.3 MB/s (3, 0.4%) + SSE2 nontemporal copy prefetched (64 bytes step) : 2893.9 MB/s (3, 0.3%) + SSE2 2-pass copy : 2182.9 MB/s (3, 10.4%) + SSE2 2-pass copy prefetched (32 bytes step) : 1732.6 MB/s (3, 0.5%) + SSE2 2-pass copy prefetched (64 bytes step) : 1732.3 MB/s (2) + SSE2 2-pass nontemporal copy : 1754.6 MB/s (3, 1.6%) + SSE2 fill : 3112.1 MB/s (3, 1.8%) + SSE2 nontemporal fill : 5221.6 MB/s (3, 0.4%) + +========================================================================== +== Framebuffer read tests. == +== == +== Many ARM devices use a part of the system memory as the framebuffer, == +== typically mapped as uncached but with write-combining enabled. == +== Writes to such framebuffers are quite fast, but reads are much == +== slower and very sensitive to the alignment and the selection of == +== CPU instructions which are used for accessing memory. == +== == +== Many x86 systems allocate the framebuffer in the GPU memory, == +== accessible for the CPU via a relatively slow PCI-E bus. Moreover, == +== PCI-E is asymmetric and handles reads a lot worse than writes. == +== == +== If uncached framebuffer reads are reasonably fast (at least 100 MB/s == +== or preferably >300 MB/s), then using the shadow framebuffer layer == +== is not necessary in Xorg DDX drivers, resulting in a nice overall == +== performance improvement. For example, the xf86-video-fbturbo DDX == +== uses this trick. == +========================================================================== + + MOVSD copy (from framebuffer) : 66.5 MB/s (3, 0.3%) + MOVSD 2-pass copy (from framebuffer) : 66.4 MB/s (3, 0.3%) + SSE2 copy (from framebuffer) : 66.6 MB/s (2) + SSE2 2-pass copy (from framebuffer) : 66.4 MB/s (2) + +========================================================================== +== Memory latency test == +== == +== Average time is measured for random memory accesses in the buffers == +== of different sizes. The larger is the buffer, the more significant == +== are relative contributions of TLB, L1/L2 cache misses and SDRAM == +== accesses. For extremely large buffer sizes we are expecting to see == +== page table walk with several requests to SDRAM for almost every == +== memory access (though 64MiB is not nearly large enough to experience == +== this effect to its fullest). == +== == +== Note 1: All the numbers are representing extra time, which needs to == +== be added to L1 cache latency. The cycle timings for L1 cache == +== latency can be usually found in the processor documentation. == +== Note 2: Dual random read means that we are simultaneously performing == +== two independent memory accesses at a time. In the case if == +== the memory subsystem can't handle multiple outstanding == +== requests, dual random read has the same timings as two == +== single reads performed one after another. == +========================================================================== + +block size : single random read / dual random read, [MADV_NOHUGEPAGE] + 1024 : 0.0 ns / 0.0 ns + 2048 : 0.0 ns / 0.0 ns + 4096 : 0.0 ns / 0.0 ns + 8192 : 0.0 ns / 0.0 ns + 16384 : 0.0 ns / 0.0 ns + 32768 : 1.3 ns / 2.3 ns + 65536 : 3.2 ns / 5.1 ns + 131072 : 4.2 ns / 6.1 ns + 262144 : 6.4 ns / 9.9 ns + 524288 : 7.6 ns / 11.7 ns + 1048576 : 17.0 ns / 27.8 ns + 2097152 : 61.0 ns / 92.1 ns + 4194304 : 85.4 ns / 114.9 ns + 8388608 : 98.9 ns / 125.0 ns + 16777216 : 106.1 ns / 130.1 ns + 33554432 : 110.7 ns / 134.0 ns + 67108864 : 124.3 ns / 156.0 ns + +block size : single random read / dual random read, [MADV_HUGEPAGE] + 1024 : 0.0 ns / 0.0 ns + 2048 : 0.0 ns / 0.0 ns + 4096 : 0.0 ns / 0.0 ns + 8192 : 0.0 ns / 0.0 ns + 16384 : 0.0 ns / 0.0 ns + 32768 : 1.3 ns / 2.3 ns + 65536 : 3.2 ns / 5.1 ns + 131072 : 4.2 ns / 6.1 ns + 262144 : 6.4 ns / 9.9 ns + 524288 : 7.6 ns / 11.7 ns + 1048576 : 9.6 ns / 14.1 ns + 2097152 : 54.4 ns / 82.7 ns + 4194304 : 76.9 ns / 102.3 ns + 8388608 : 88.1 ns / 108.2 ns + 16777216 : 93.8 ns / 110.2 ns + 33554432 : 96.6 ns / 111.0 ns + 67108864 : 105.8 ns / 124.6 ns + +########################################################################## + +Executing ramlat on cpu0, results in ns: + + size: 1x32 2x32 1x64 2x64 1xPTR 2xPTR 4xPTR 8xPTR + 4k: 1.412 1.392 1.820 2.327 1.387 1.387 1.849 3.874 + 8k: 1.419 1.387 1.820 2.327 1.388 1.387 1.849 3.886 + 16k: 1.389 1.388 1.820 2.326 1.387 1.389 1.886 3.872 + 32k: 6.853 7.770 3.902 8.099 6.848 8.352 10.12 17.61 + 64k: 6.478 7.821 6.905 7.689 6.472 8.620 10.81 18.44 + 128k: 6.472 7.808 6.907 7.689 6.472 8.841 11.47 18.77 + 256k: 9.715 9.708 10.14 10.59 9.709 9.710 12.39 19.67 + 512k: 9.709 9.716 10.38 10.58 9.825 9.735 12.44 19.66 + 1024k: 10.86 11.42 11.42 11.67 10.94 10.79 19.99 20.49 + 2048k: 100.4 100.2 100.3 103.4 100.3 100.2 103.0 148.8 + 4096k: 100.4 100.3 100.4 102.6 100.5 100.2 103.4 150.6 + 8192k: 101.6 100.4 100.4 104.3 103.3 100.3 103.6 150.4 + 16384k: 100.3 100.6 100.3 104.7 100.3 101.8 104.1 153.9 + 32768k: 102.5 100.5 100.3 104.6 100.3 100.4 104.1 151.5 + 65536k: 115.9 118.8 115.8 118.7 115.8 118.6 120.6 154.4 + 131072k: 116.0 119.2 115.8 119.7 115.9 118.6 120.8 157.4 + +########################################################################## + +Executing benchmark twice on cluster 0 + +OpenSSL 1.1.1n, built on 15 Mar 2022 +type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes +aes-128-cbc 36601.88k 41593.79k 43533.91k 43925.16k 44111.19k 44040.19k +aes-128-cbc 36808.90k 41800.58k 43460.27k 43964.07k 43906.39k 44067.50k +aes-192-cbc 31671.42k 35241.75k 36471.81k 36630.87k 36809.39k 36891.31k +aes-192-cbc 31541.62k 35244.84k 36183.47k 36697.09k 36885.85k 36831.23k +aes-256-cbc 27755.93k 30041.09k 30937.77k 31216.64k 31208.79k 31293.44k +aes-256-cbc 27500.37k 30031.72k 30918.57k 31142.23k 31279.79k 31200.60k + +########################################################################## + +Executing benchmark single-threaded on cpu0 + +7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 +p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,2 CPUs Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678),ASM) + + Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678) +CPU Freq: 64000000 - - - - - - - - + +RAM size: 1800 MB, # CPU hardware threads: 2 +RAM usage: 435 MB, # Benchmark threads: 1 + + Compressing | Decompressing +Dict Speed Usage R/U Rating | Speed Usage R/U Rating + KiB/s % MIPS MIPS | KiB/s % MIPS MIPS + +22: 1630 100 1589 1586 | 21825 100 1871 1863 +23: 1601 100 1635 1632 | 21547 100 1868 1865 +24: 1579 100 1701 1698 | 21150 100 1864 1857 +25: 1550 100 1773 1770 | 20900 100 1868 1860 +---------------------------------- | ------------------------------ +Avr: 100 1674 1671 | 100 1868 1861 +Tot: 100 1771 1766 + +########################################################################## + +Executing benchmark 3 times multi-threaded on CPUs 0-1 + +7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 +p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,2 CPUs Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678),ASM) + + Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678) +CPU Freq: - - - - - - - - - + +RAM size: 1800 MB, # CPU hardware threads: 2 +RAM usage: 441 MB, # Benchmark threads: 2 + + Compressing | Decompressing +Dict Speed Usage R/U Rating | Speed Usage R/U Rating + KiB/s % MIPS MIPS | KiB/s % MIPS MIPS + +22: 2370 156 1477 2306 | 42820 198 1847 3656 +23: 2392 161 1511 2437 | 41578 195 1843 3599 +24: 2373 162 1572 2552 | 41470 198 1841 3641 +25: 2339 163 1641 2671 | 40734 197 1842 3626 +---------------------------------- | ------------------------------ +Avr: 161 1550 2492 | 197 1843 3630 +Tot: 179 1697 3061 + +7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 +p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,2 CPUs Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678),ASM) + + Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678) +CPU Freq: 64000000 - - - - - - - - + +RAM size: 1800 MB, # CPU hardware threads: 2 +RAM usage: 441 MB, # Benchmark threads: 2 + + Compressing | Decompressing +Dict Speed Usage R/U Rating | Speed Usage R/U Rating + KiB/s % MIPS MIPS | KiB/s % MIPS MIPS + +22: 2385 157 1478 2321 | 42925 198 1848 3665 +23: 2360 160 1507 2406 | 41818 196 1842 3620 +24: 2382 163 1573 2562 | 41478 198 1842 3641 +25: 2324 162 1641 2654 | 41094 198 1844 3658 +---------------------------------- | ------------------------------ +Avr: 160 1550 2485 | 198 1844 3646 +Tot: 179 1697 3066 + +7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 +p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,2 CPUs Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678),ASM) + + Intel(R) Celeron(R) CPU N2807 @ 1.58GHz (30678) +CPU Freq: - - - - - - 512000000 - - + +RAM size: 1800 MB, # CPU hardware threads: 2 +RAM usage: 441 MB, # Benchmark threads: 2 + + Compressing | Decompressing +Dict Speed Usage R/U Rating | Speed Usage R/U Rating + KiB/s % MIPS MIPS | KiB/s % MIPS MIPS + +22: 2418 160 1475 2352 | 42489 197 1846 3628 +23: 2389 161 1508 2435 | 41934 197 1843 3630 +24: 2373 163 1570 2552 | 41495 197 1847 3643 +25: 2351 163 1644 2685 | 40953 198 1844 3645 +---------------------------------- | ------------------------------ +Avr: 162 1549 2506 | 197 1845 3636 +Tot: 179 1697 3071 + +Compression: 2492,2485,2506 +Decompression: 3630,3646,3636 +Total: 3061,3066,3071 + +########################################################################## + +** cpuminer-multi 1.3.7 by tpruvot@github ** +BTC donation address: 1FhDPLPpw18X4srecguG3MxJYe4a1JsZnd (tpruvot) + +[2023-06-25 13:12:17] 2 miner threads started, using 'scrypt' algorithm. +[2023-06-25 13:12:17] CPU #1: 2.66 kH/s +[2023-06-25 13:12:17] CPU #0: 2.30 kH/s +[2023-06-25 13:12:21] Total: 5.90 kH/s +[2023-06-25 13:12:22] Total: 6.12 kH/s +[2023-06-25 13:12:27] CPU #0: 2.98 kH/s +[2023-06-25 13:12:27] CPU #1: 2.97 kH/s +[2023-06-25 13:12:27] Total: 5.94 kH/s +[2023-06-25 13:12:32] Total: 6.07 kH/s +[2023-06-25 13:12:37] CPU #0: 3.02 kH/s +[2023-06-25 13:12:37] CPU #1: 3.04 kH/s +[2023-06-25 13:12:37] Total: 6.06 kH/s +[2023-06-25 13:12:42] Total: 6.08 kH/s +[2023-06-25 13:12:47] CPU #0: 3.03 kH/s +[2023-06-25 13:12:47] CPU #1: 3.04 kH/s +[2023-06-25 13:12:47] Total: 6.08 kH/s +[2023-06-25 13:12:52] Total: 6.08 kH/s +[2023-06-25 13:12:57] CPU #0: 2.95 kH/s +[2023-06-25 13:12:57] CPU #1: 2.97 kH/s +[2023-06-25 13:12:57] Total: 5.93 kH/s +[2023-06-25 13:13:02] Total: 6.03 kH/s +[2023-06-25 13:13:07] CPU #0: 3.02 kH/s +[2023-06-25 13:13:07] CPU #1: 3.04 kH/s +[2023-06-25 13:13:07] Total: 6.06 kH/s +[2023-06-25 13:13:12] Total: 6.08 kH/s +[2023-06-25 13:13:17] CPU #0: 3.03 kH/s +[2023-06-25 13:13:17] CPU #1: 3.04 kH/s +[2023-06-25 13:13:17] Total: 6.08 kH/s +[2023-06-25 13:13:22] Total: 6.08 kH/s +[2023-06-25 13:13:27] CPU #0: 2.97 kH/s +[2023-06-25 13:13:27] CPU #1: 2.97 kH/s +[2023-06-25 13:13:27] Total: 5.94 kH/s +[2023-06-25 13:13:32] Total: 6.07 kH/s +[2023-06-25 13:13:37] CPU #0: 3.03 kH/s +[2023-06-25 13:13:37] CPU #1: 3.04 kH/s +[2023-06-25 13:13:37] Total: 6.08 kH/s +[2023-06-25 13:13:42] Total: 6.08 kH/s +[2023-06-25 13:13:47] CPU #0: 3.02 kH/s +[2023-06-25 13:13:47] CPU #1: 3.03 kH/s +[2023-06-25 13:13:47] Total: 6.05 kH/s +[2023-06-25 13:13:52] Total: 6.06 kH/s +[2023-06-25 13:13:57] CPU #0: 2.97 kH/s +[2023-06-25 13:13:57] CPU #1: 2.97 kH/s +[2023-06-25 13:13:57] Total: 5.94 kH/s +[2023-06-25 13:14:02] Total: 6.05 kH/s +[2023-06-25 13:14:07] CPU #0: 3.03 kH/s +[2023-06-25 13:14:07] CPU #1: 3.03 kH/s +[2023-06-25 13:14:07] Total: 6.07 kH/s +[2023-06-25 13:14:12] Total: 6.07 kH/s +[2023-06-25 13:14:17] CPU #0: 3.04 kH/s +[2023-06-25 13:14:17] CPU #1: 3.04 kH/s +[2023-06-25 13:14:17] Total: 6.09 kH/s +[2023-06-25 13:14:22] Total: 6.08 kH/s +[2023-06-25 13:14:27] CPU #0: 2.99 kH/s +[2023-06-25 13:14:28] CPU #1: 2.93 kH/s +[2023-06-25 13:14:28] Total: 5.92 kH/s +[2023-06-25 13:14:31] Total: 6.02 kH/s +[2023-06-25 13:14:32] Total: 6.10 kH/s +[2023-06-25 13:14:37] CPU #0: 3.04 kH/s +[2023-06-25 13:14:37] CPU #1: 3.03 kH/s +[2023-06-25 13:14:37] Total: 6.06 kH/s +[2023-06-25 13:14:42] Total: 6.08 kH/s +[2023-06-25 13:14:47] CPU #0: 3.04 kH/s +[2023-06-25 13:14:47] CPU #1: 3.03 kH/s +[2023-06-25 13:14:47] Total: 6.08 kH/s +[2023-06-25 13:14:52] Total: 6.08 kH/s +[2023-06-25 13:14:57] CPU #0: 2.96 kH/s +[2023-06-25 13:14:58] CPU #1: 2.96 kH/s +[2023-06-25 13:14:58] Total: 5.92 kH/s +[2023-06-25 13:15:01] Total: 5.97 kH/s +[2023-06-25 13:15:02] Total: 6.08 kH/s +[2023-06-25 13:15:07] CPU #0: 3.04 kH/s +[2023-06-25 13:15:08] CPU #1: 3.03 kH/s +[2023-06-25 13:15:08] Total: 6.07 kH/s +[2023-06-25 13:15:12] Total: 6.05 kH/s +[2023-06-25 13:15:16] CPU #1: 3.05 kH/s +[2023-06-25 13:15:16] Total: 6.07 kH/s +[2023-06-25 13:15:17] CPU #0: 3.04 kH/s +[2023-06-25 13:15:17] Total: 6.06 kH/s +[2023-06-25 13:15:22] CPU #1: 3.04 kH/s +[2023-06-25 13:15:22] Total: 6.09 kH/s +[2023-06-25 13:15:27] CPU #0: 3.02 kH/s +[2023-06-25 13:15:28] CPU #1: 3.00 kH/s +[2023-06-25 13:15:28] Total: 6.02 kH/s +[2023-06-25 13:15:32] Total: 6.04 kH/s +[2023-06-25 13:15:36] CPU #1: 3.04 kH/s +[2023-06-25 13:15:36] Total: 6.04 kH/s +[2023-06-25 13:15:37] CPU #0: 3.04 kH/s +[2023-06-25 13:15:37] Total: 6.10 kH/s +[2023-06-25 13:15:43] CPU #1: 3.04 kH/s +[2023-06-25 13:15:43] Total: 6.08 kH/s +[2023-06-25 13:15:47] Total: 6.07 kH/s +[2023-06-25 13:15:47] CPU #0: 3.04 kH/s +[2023-06-25 13:15:52] CPU #1: 3.03 kH/s +[2023-06-25 13:15:52] Total: 6.07 kH/s +[2023-06-25 13:15:57] Total: 6.06 kH/s +[2023-06-25 13:15:57] CPU #0: 3.04 kH/s +[2023-06-25 13:16:02] CPU #1: 2.96 kH/s +[2023-06-25 13:16:02] Total: 6.00 kH/s +[2023-06-25 13:16:07] Total: 5.99 kH/s +[2023-06-25 13:16:07] CPU #0: 3.03 kH/s +[2023-06-25 13:16:12] CPU #1: 3.04 kH/s +[2023-06-25 13:16:12] Total: 6.07 kH/s +[2023-06-25 13:16:17] Total: 6.08 kH/s +[2023-06-25 13:16:17] CPU #0: 3.01 kH/s +[2023-06-25 13:16:22] CPU #1: 2.97 kH/s +[2023-06-25 13:16:22] Total: 5.98 kH/s +[2023-06-25 13:16:27] Total: 6.07 kH/s +[2023-06-25 13:16:27] CPU #0: 3.03 kH/s +[2023-06-25 13:16:32] CPU #1: 2.99 kH/s +[2023-06-25 13:16:32] Total: 6.02 kH/s +[2023-06-25 13:16:37] Total: 5.96 kH/s +[2023-06-25 13:16:37] CPU #0: 3.03 kH/s +[2023-06-25 13:16:42] CPU #1: 3.05 kH/s +[2023-06-25 13:16:42] Total: 6.07 kH/s +[2023-06-25 13:16:47] Total: 6.08 kH/s +[2023-06-25 13:16:47] CPU #0: 3.04 kH/s +[2023-06-25 13:16:52] CPU #1: 3.04 kH/s +[2023-06-25 13:16:52] Total: 6.08 kH/s +[2023-06-25 13:16:57] Total: 6.08 kH/s +[2023-06-25 13:16:57] CPU #0: 3.03 kH/s +[2023-06-25 13:17:02] CPU #1: 2.94 kH/s +[2023-06-25 13:17:02] Total: 5.98 kH/s +[2023-06-25 13:17:07] Total: 5.97 kH/s +[2023-06-25 13:17:07] CPU #0: 3.04 kH/s +[2023-06-25 13:17:12] CPU #1: 3.04 kH/s +[2023-06-25 13:17:12] Total: 6.08 kH/s + +Total Scores: 6.10,6.09,6.08,6.07,6.06,6.05,6.04,6.03,6.02,6.00,5.99,5.98,5.97,5.96,5.94,5.93,5.92 + +########################################################################## + +Testing maximum cpufreq again, still under full load. System health now: + +Time CPU load %cpu %sys %usr %nice %io %irq Temp +13:16:36: 2167MHz 2.08 100% 0% 99% 0% 0% 0% 44.0°C + +Checking cpufreq OPP: + +Cpufreq OPP: 2165 Measured: 2164 (2164.374/2164.293/2163.832) + +########################################################################## + +Hardware sensors: + +soc_dts0-virtual-0 +temp1: +42.0 C + +acpitz-acpi-0 +temp1: +39.0 C (crit = +95.0 C) + +soc_dts1-virtual-0 +temp1: +43.0 C + +coretemp-isa-0000 +Core 0: +43.0 C (high = +105.0 C, crit = +105.0 C) +Core 1: +43.0 C (high = +105.0 C, crit = +105.0 C) + +/dev/sda: 30°C + +########################################################################## + +System health while running tinymembench: + +Time CPU load %cpu %sys %usr %nice %io %irq Temp +13:03:47: 2167MHz 1.06 8% 2% 6% 0% 0% 0% 37.0°C +13:03:57: 2167MHz 1.05 53% 1% 51% 0% 0% 0% 39.0°C +13:04:07: 2167MHz 1.04 51% 0% 50% 0% 0% 0% 39.0°C +13:04:17: 2167MHz 1.04 51% 0% 50% 0% 0% 0% 39.0°C +13:04:27: 2167MHz 1.03 54% 1% 52% 0% 0% 0% 39.0°C +13:04:37: 2167MHz 1.02 51% 0% 50% 0% 0% 0% 39.0°C +13:04:47: 2167MHz 1.34 51% 0% 50% 0% 0% 0% 39.0°C +13:04:58: 2167MHz 2.12 52% 1% 51% 0% 0% 0% 40.0°C +13:05:08: 2167MHz 2.48 51% 0% 50% 0% 0% 0% 38.0°C +13:05:18: 2167MHz 2.64 51% 0% 49% 0% 0% 0% 38.0°C + +System health while running ramlat: + +Time CPU load %cpu %sys %usr %nice %io %irq Temp +13:05:21: 2167MHz 2.59 10% 2% 8% 0% 0% 0% 39.0°C +13:05:24: 2167MHz 2.59 50% 0% 50% 0% 0% 0% 39.0°C +13:05:27: 2167MHz 2.54 51% 1% 50% 0% 0% 0% 40.0°C +13:05:30: 2167MHz 2.54 50% 0% 50% 0% 0% 0% 39.0°C +13:05:33: 2167MHz 2.50 51% 0% 50% 0% 0% 0% 39.0°C +13:05:37: 2167MHz 2.46 52% 1% 50% 0% 0% 0% 39.0°C +13:05:40: 2167MHz 2.46 51% 0% 50% 0% 0% 0% 39.0°C +13:05:43: 2167MHz 2.50 51% 1% 50% 0% 0% 0% 39.0°C +13:05:46: 2167MHz 2.46 52% 1% 49% 0% 0% 0% 39.0°C +13:05:49: 2167MHz 2.46 50% 0% 49% 0% 0% 0% 39.0°C + +System health while running OpenSSL benchmark: + +Time CPU load %cpu %sys %usr %nice %io %irq Temp +13:05:50: 2167MHz 2.46 11% 2% 8% 0% 0% 0% 40.0°C +13:06:07: 2167MHz 2.34 51% 0% 50% 0% 0% 0% 39.0°C +13:06:23: 2167MHz 2.12 51% 0% 51% 0% 0% 0% 39.0°C +13:06:39: 2167MHz 1.87 50% 0% 50% 0% 0% 0% 39.0°C +13:06:55: 2167MHz 1.68 51% 0% 50% 0% 0% 0% 39.0°C +13:07:11: 2167MHz 1.48 51% 0% 50% 0% 0% 0% 39.0°C +13:07:27: 2167MHz 1.38 51% 0% 50% 0% 0% 0% 40.0°C + +System health while running 7-zip single core benchmark: + +Time CPU load %cpu %sys %usr %nice %io %irq Temp +13:07:39: 2167MHz 1.32 12% 2% 10% 0% 0% 0% 40.0°C +13:07:49: 2167MHz 1.27 51% 0% 50% 0% 0% 0% 40.0°C +13:07:59: 2167MHz 1.23 51% 0% 50% 0% 0% 0% 40.0°C +13:08:09: 2167MHz 1.19 51% 0% 50% 0% 0% 0% 40.0°C +13:08:19: 2167MHz 1.16 50% 1% 49% 0% 0% 0% 40.0°C +13:08:29: 2167MHz 1.14 51% 0% 50% 0% 0% 0% 40.0°C +13:08:39: 2167MHz 1.11 51% 1% 49% 0% 0% 0% 40.0°C +13:08:49: 2167MHz 1.10 51% 1% 50% 0% 0% 0% 40.0°C + +System health while running 7-zip multi core benchmark: + +Time CPU load %cpu %sys %usr %nice %io %irq Temp +13:08:59: 2167MHz 1.08 14% 2% 11% 0% 0% 0% 40.0°C +13:09:29: 2167MHz 1.44 92% 1% 90% 0% 0% 0% 41.0°C +13:10:01: 2167MHz 1.59 88% 1% 87% 0% 0% 0% 41.0°C +13:10:32: 2167MHz 1.81 94% 0% 93% 0% 0% 0% 42.0°C +13:11:02: 2167MHz 1.76 86% 2% 84% 0% 0% 0% 42.0°C +13:11:34: 2167MHz 1.92 93% 1% 92% 0% 0% 0% 42.0°C +13:12:05: 2167MHz 1.88 88% 1% 87% 0% 0% 0% 42.0°C + +System health while running cpuminer: + +Time CPU load %cpu %sys %usr %nice %io %irq Temp +13:12:19: 2167MHz 1.91 19% 1% 17% 0% 0% 0% 42.0°C +13:13:02: 2167MHz 1.95 100% 0% 99% 0% 0% 0% 43.0°C +13:13:45: 2167MHz 2.02 100% 0% 99% 0% 0% 0% 43.0°C +13:14:28: 2167MHz 2.01 100% 0% 99% 0% 0% 0% 44.0°C +13:15:10: 2167MHz 2.17 100% 0% 99% 0% 0% 0% 44.0°C +13:15:53: 2167MHz 2.08 100% 0% 99% 0% 0% 0% 44.0°C +13:16:36: 2167MHz 2.08 100% 0% 99% 0% 0% 0% 44.0°C + +########################################################################## + +Linux 5.10.0-23-amd64 (casa) 06/25/23 _x86_64_ (2 CPU) + +avg-cpu: %user %nice %system %iowait %steal %idle + 25.31 0.01 1.94 0.27 0.00 72.48 + +Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd +sda 12.82 201.58 274.87 0.00 619405 844605 0 + + total used free shared buff/cache available +Mem: 1.8Gi 653Mi 860Mi 6.0Mi 286Mi 1.0Gi +Swap: 976Mi 0.0Ki 976Mi + +Filename Type Size Used Priority +/dev/sda3 partition 1000444 512 -2 + +CPU sysfs topology (clusters, cpufreq members, clockspeeds) + cpufreq min max + CPU cluster policy speed speed core type + 0 0 0 500 2166 Celeron N2807 @ 1.58GHz + 1 0 1 500 2166 Celeron N2807 @ 1.58GHz + +Architecture: x86_64 +CPU op-mode(s): 32-bit, 64-bit +Byte Order: Little Endian +Address sizes: 36 bits physical, 48 bits virtual +CPU(s): 2 +On-line CPU(s) list: 0,1 +Thread(s) per core: 1 +Core(s) per socket: 2 +Socket(s): 1 +NUMA node(s): 1 +Vendor ID: GenuineIntel +CPU family: 6 +Model: 55 +Model name: Intel(R) Celeron(R) CPU N2807 @ 1.58GHz +Stepping: 8 +CPU MHz: 1977.647 +CPU max MHz: 2165.8000 +CPU min MHz: 499.8000 +BogoMIPS: 3166.66 +Virtualization: VT-x +L1d cache: 48 KiB +L1i cache: 64 KiB +L2 cache: 1 MiB +NUMA node0 CPU(s): 0,1 +Vulnerability Itlb multihit: Not affected +Vulnerability L1tf: Not affected +Vulnerability Mds: Vulnerable: Clear CPU buffers attempted, no microcode; SMT disabled +Vulnerability Meltdown: Mitigation; PTI +Vulnerability Mmio stale data: Unknown: No mitigations +Vulnerability Retbleed: Not affected +Vulnerability Spec store bypass: Not affected +Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization +Vulnerability Spectre v2: Mitigation; Retpolines, STIBP disabled, RSB filling, PBRSB-eIBRS Not affected +Vulnerability Srbds: Not affected +Vulnerability Tsx async abort: Not affected +Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer rdrand lahf_lm 3dnowprefetch epb pti tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat + +Processor Information + Socket Designation: CPU 1 + Type: Central Processor + Family: Atom + Manufacturer: Intel(R) Corporation + ID: 78 06 03 00 FF FB EB BF + Signature: Type 0, Family 6, Model 55, Stepping 8 + Flags: + FPU (Floating-point unit on-chip) + VME (Virtual mode extension) + DE (Debugging extension) + PSE (Page size extension) + TSC (Time stamp counter) + MSR (Model specific registers) + PAE (Physical address extension) + MCE (Machine check exception) + CX8 (CMPXCHG8 instruction supported) + APIC (On-chip APIC hardware supported) + SEP (Fast system call) + MTRR (Memory type range registers) + PGE (Page global enable) + MCA (Machine check architecture) + CMOV (Conditional move instruction supported) + PAT (Page attribute table) + PSE-36 (36-bit page size extension) + CLFSH (CLFLUSH instruction supported) + DS (Debug store) + ACPI (ACPI supported) + MMX (MMX technology supported) + FXSR (FXSAVE and FXSTOR instructions supported) + SSE (Streaming SIMD extensions) + SSE2 (Streaming SIMD extensions 2) + SS (Self-snoop) + HTT (Multi-threading) + TM (Thermal monitor supported) + PBE (Pending break enabled) + Version: Intel(R) Celeron(R) CPU N2807 @ 1.58GHz + Voltage: 0.7 V + External Clock: 83 MHz + Max Speed: 2158 MHz + Current Speed: 1589 MHz + Status: Populated, Enabled + L1 Cache Handle: 0x0008 + L2 Cache Handle: 0x0009 + Core Count: 2 + Core Enabled: 2 + Thread Count: 1 + Characteristics: + 64-bit capable + Multi-Core + Execute Protection + Enhanced Virtualization + Power/Performance Control + + Compiler: /usr/bin/gcc (Debian 10.2.1-6) 10.2.1 20210110 / x86_64-linux-gnu + Userland: amd64 + Kernel: 5.10.0-23-amd64/x86_64 + CONFIG_HZ=250 + CONFIG_HZ_250=y + CONFIG_PREEMPT_NOTIFIERS=y + CONFIG_PREEMPT_VOLUNTARY=y + +########################################################################## + +DIMM configuration: + *-bank:0 + description: SODIMM DDR3 Synchronous 1333 MHz (0.8 ns) + product: CT25664BF160BJ.C4F + vendor: NXP (Philips Semi, Signetics) + physical id: 0 + configured speed: 1333MT/s + size: 2GiB + width: 64 bits + clock: 1333MHz (0.8ns) + *-bank:1 + description: SODIMM [empty] + physical id: 1 + slot: DIMM1 + +########################################################################## + +Results validation: + + * Measured clockspeed not lower than advertised max CPU clockspeed + * No swapping + * Background activity (%system) OK + * Powercap detected. Details: "sudo powercap-info -p intel-rapl" + * Throttling occured + +| clientron TC120 Type1 - TBD by OEM / Celeron N2807 @ 1.58GHz | 2165 MHz | 5.10 | Debian GNU/Linux 11 (bullseye) x86_64/amd64 | 3070 | 1766 | 31250 | 3600 | 3110 | 6.09 | \ No newline at end of file diff --git a/results/4zcm.txt b/results/4zcm.txt new file mode 100644 index 0000000..d0ee5c7 --- /dev/null +++ b/results/4zcm.txt @@ -0,0 +1,687 @@ +sbc-bench v0.9.42 Marvell 8040 MACCHIATOBin Double-shot (Tue, 27 Jun 2023 11:38:06 +0800) + +Distributor ID: Debian +Description: Debian GNU/Linux 10 (buster) +Release: 10 +Codename: buster + +/usr/bin/gcc (Debian 12.2.0-14) 12.2.0 + +Uptime: 11:38:06 up 34 days, 13:49, 5 users, load average: 1.05, 0.47, 0.18, 43.8°C, 194831419 + +Linux 5.10.0-0.bpo.7-arm64 (sr-8040) 06/27/23 _aarch64_ (4 CPU) + +avg-cpu: %user %nice %system %iowait %steal %idle + 0.08 0.37 0.05 0.00 0.00 99.50 + +Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd +mmcblk0 0.00 0.00 0.00 0.00 3190 0 0 +mmcblk1 0.00 0.00 0.00 0.00 6376 0 0 +sda 0.00 0.00 0.00 0.00 14109 0 0 +sdb 0.25 0.62 18.29 0.00 1864040 54631304 0 + + total used free shared buff/cache available +Mem: 3.8Gi 448Mi 3.2Gi 40Mi 236Mi 3.3Gi +Swap: 0B 0B 0B + +########################################################################## + +Checking cpufreq OPP (Cortex-A72): + +No cpufreq support available. Measured on cpu1: 1598 MHz (1598.567/1598.567/1598.527) + +########################################################################## + +Hardware sensors: + +f212a600mdiomii08-mdio-8 +temp1: +57.0 C + +f212a200mdiomii00-mdio-0 +temp1: +57.0 C (crit = +100.0 C) + +f212a600mdiomii00-mdio-0 +temp1: +52.0 C + +########################################################################## + +Executing benchmark on cpu0 (Cortex-A72): + +tinymembench v0.4.9-nuumio (simple benchmark for memory throughput and latency) + +CFLAGS: +bandwidth test min repeats (-b): 2 +bandwidth test max repeats (-B): 3 +bandwidth test mem realloc (-M): no (-m for realloc) + latency test repeats (-l): 3 + latency test count (-c): 1000000 + +========================================================================== +== Memory bandwidth tests == +== == +== Note 1: 1MB = 1000000 bytes == +== Note 2: Test result is the best of repeated runs. Number of repeats == +== is shown in brackets == +== Note 3: Results for 'copy' tests show how many bytes can be == +== copied per second (adding together read and writen == +== bytes would have provided twice higher numbers) == +== Note 4: 2-pass copy means that we are using a small temporary buffer == +== to first fetch data into it, and only then write it to the == +== destination (source -> L1 cache, L1 cache -> destination) == +== Note 5: If sample standard deviation exceeds 0.1%, it is shown in == +== brackets == +========================================================================== + + C copy backwards : 4369.3 MB/s (3, 7.4%) + C copy backwards (32 byte blocks) : 4385.4 MB/s (2) + C copy backwards (64 byte blocks) : 4387.2 MB/s (2) + C copy : 4546.8 MB/s (3, 0.3%) + C copy prefetched (32 bytes step) : 4635.1 MB/s (3, 0.7%) + C copy prefetched (64 bytes step) : 4603.5 MB/s (2) + C 2-pass copy : 4468.3 MB/s (3, 2.4%) + C 2-pass copy prefetched (32 bytes step) : 4445.2 MB/s (3, 0.4%) + C 2-pass copy prefetched (64 bytes step) : 4404.6 MB/s (3, 0.6%) + C scan 8 : 794.6 MB/s (2) + C scan 16 : 1583.1 MB/s (2) + C scan 32 : 3117.2 MB/s (2) + C scan 64 : 5991.8 MB/s (2) + C fill : 12274.8 MB/s (2) + C fill (shuffle within 16 byte blocks) : 12270.2 MB/s (2) + C fill (shuffle within 32 byte blocks) : 12269.2 MB/s (3, 0.4%) + C fill (shuffle within 64 byte blocks) : 12028.8 MB/s (2) + --- + libc memcpy copy : 4506.9 MB/s (2) + libc memchr scan : 5673.8 MB/s (2) + libc memset fill : 12272.9 MB/s (2) + --- + NEON LDP/STP copy : 4556.2 MB/s (3, 0.7%) + NEON LDP/STP copy pldl2strm (32 bytes step) : 4219.7 MB/s (2) + NEON LDP/STP copy pldl2strm (64 bytes step) : 4220.0 MB/s (2) + NEON LDP/STP copy pldl1keep (32 bytes step) : 4649.2 MB/s (3) + NEON LDP/STP copy pldl1keep (64 bytes step) : 4646.7 MB/s (2) + NEON LD1/ST1 copy : 4623.2 MB/s (2) + NEON LDP load : 8437.7 MB/s (3, 1.2%) + NEON LDNP load : 8447.3 MB/s (2) + NEON STP fill : 12273.5 MB/s (2) + NEON STNP fill : 12227.0 MB/s (2) + ARM LDP/STP copy : 4570.9 MB/s (2) + ARM LDP load : 8438.6 MB/s (2) + ARM LDNP load : 8447.6 MB/s (2) + ARM STP fill : 12274.7 MB/s (2) + ARM STNP fill : 12216.4 MB/s (3, 3.0%) + +========================================================================== +== Memory latency test == +== == +== Average time is measured for random memory accesses in the buffers == +== of different sizes. The larger is the buffer, the more significant == +== are relative contributions of TLB, L1/L2 cache misses and SDRAM == +== accesses. For extremely large buffer sizes we are expecting to see == +== page table walk with several requests to SDRAM for almost every == +== memory access (though 64MiB is not nearly large enough to experience == +== this effect to its fullest). == +== == +== Note 1: All the numbers are representing extra time, which needs to == +== be added to L1 cache latency. The cycle timings for L1 cache == +== latency can be usually found in the processor documentation. == +== Note 2: Dual random read means that we are simultaneously performing == +== two independent memory accesses at a time. In the case if == +== the memory subsystem can't handle multiple outstanding == +== requests, dual random read has the same timings as two == +== single reads performed one after another. == +========================================================================== + +block size : single random read / dual random read, [MADV_NOHUGEPAGE] + 1024 : 0.0 ns / 0.0 ns + 2048 : 0.0 ns / 0.0 ns + 4096 : 0.0 ns / 0.0 ns + 8192 : 0.0 ns / 0.0 ns + 16384 : 0.0 ns / 0.0 ns + 32768 : 0.0 ns / 0.0 ns + 65536 : 3.8 ns / 5.9 ns + 131072 : 5.9 ns / 8.1 ns + 262144 : 9.1 ns / 11.6 ns + 524288 : 14.8 ns / 20.4 ns + 1048576 : 31.7 ns / 43.7 ns + 2097152 : 74.1 ns / 108.0 ns + 4194304 : 114.2 ns / 155.1 ns + 8388608 : 141.9 ns / 181.9 ns + 16777216 : 155.8 ns / 191.4 ns + 33554432 : 163.7 ns / 198.8 ns + 67108864 : 176.6 ns / 217.1 ns + +block size : single random read / dual random read, [MADV_HUGEPAGE] + 1024 : 0.0 ns / 0.0 ns + 2048 : 0.0 ns / 0.0 ns + 4096 : 0.0 ns / 0.0 ns + 8192 : 0.0 ns / 0.0 ns + 16384 : 0.0 ns / 0.0 ns + 32768 : 0.0 ns / 0.0 ns + 65536 : 3.8 ns / 6.0 ns + 131072 : 5.8 ns / 8.0 ns + 262144 : 6.9 ns / 8.8 ns + 524288 : 9.5 ns / 12.6 ns + 1048576 : 26.9 ns / 36.5 ns + 2097152 : 69.5 ns / 101.8 ns + 4194304 : 109.9 ns / 149.4 ns + 8388608 : 130.2 ns / 164.2 ns + 16777216 : 141.0 ns / 171.9 ns + 33554432 : 146.6 ns / 177.5 ns + 67108864 : 151.0 ns / 179.3 ns + +########################################################################## + +Executing ramlat on cpu0 (Cortex-A72), results in ns: + + size: 1x32 2x32 1x64 2x64 1xPTR 2xPTR 4xPTR 8xPTR + 4k: 3.158 3.137 3.129 3.128 2.503 2.505 2.504 5.005 + 8k: 3.128 3.130 3.129 3.131 2.503 2.503 2.534 5.009 + 16k: 3.133 3.130 3.128 3.128 2.504 2.506 3.424 5.005 + 32k: 3.130 3.131 3.135 3.129 2.504 2.504 3.276 5.015 + 64k: 12.19 10.64 12.26 10.65 11.65 11.61 19.90 39.36 + 128k: 12.47 10.64 12.46 10.64 11.83 10.64 20.14 39.89 + 256k: 12.49 10.64 12.51 10.65 11.86 10.62 21.53 39.75 + 512k: 17.25 18.77 17.80 19.12 18.67 22.54 35.44 52.70 + 1024k: 49.93 47.02 45.97 45.79 44.14 46.21 63.84 84.26 + 2048k: 94.28 105.0 91.77 95.64 91.00 97.13 109.5 140.2 + 4096k: 151.4 152.0 149.5 152.0 151.7 148.4 165.6 189.4 + 8192k: 156.2 158.7 155.3 158.8 154.9 156.2 163.7 192.6 + 16384k: 156.3 161.1 156.2 161.3 155.6 157.3 164.7 193.3 + 32768k: 157.2 162.8 156.7 162.6 156.8 159.5 165.6 193.4 + 65536k: 153.1 163.1 153.0 162.7 153.0 156.6 162.0 190.5 + 131072k: 153.3 159.8 154.6 159.6 154.1 157.9 161.9 191.1 + +########################################################################## + +Executing benchmark twice on cluster 0 (Cortex-A72) + +OpenSSL 1.1.1n, built on 15 Mar 2022 +type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes +aes-128-cbc 290374.58k 680594.18k 1012742.31k 1133372.42k 1199371.61k 1203273.73k +aes-128-cbc 290527.27k 680490.97k 1012598.27k 1131798.53k 1198978.39k 1203377.49k +aes-192-cbc 274670.53k 619310.23k 859469.23k 1005258.75k 1057344.17k 1056778.92k +aes-192-cbc 274674.73k 619375.00k 858301.10k 1004608.85k 1052680.19k 1058613.93k +aes-256-cbc 263583.84k 568079.04k 792850.09k 868140.37k 906349.23k 909503.15k +aes-256-cbc 263583.84k 568241.05k 792656.04k 868137.64k 905718.44k 909344.77k + +########################################################################## + +Executing benchmark single-threaded on cpu0 (Cortex-A72) + +7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 +p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,4 CPUs LE) + +LE +CPU Freq: - 64000000 - - - - - - - + +RAM size: 3929 MB, # CPU hardware threads: 4 +RAM usage: 435 MB, # Benchmark threads: 1 + + Compressing | Decompressing +Dict Speed Usage R/U Rating | Speed Usage R/U Rating + KiB/s % MIPS MIPS | KiB/s % MIPS MIPS + +22: 1720 100 1674 1673 | 20395 100 1742 1741 +23: 1673 100 1706 1705 | 20112 100 1742 1741 +24: 1653 100 1778 1778 | 19803 100 1739 1739 +25: 1569 100 1793 1792 | 19552 100 1741 1740 +---------------------------------- | ------------------------------ +Avr: 100 1738 1737 | 100 1741 1740 +Tot: 100 1739 1739 + +########################################################################## + +Executing benchmark 3 times multi-threaded on CPUs 0-3 + +7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 +p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,4 CPUs LE) + +LE +CPU Freq: - - - - - - - 1024000000 - + +RAM size: 3929 MB, # CPU hardware threads: 4 +RAM usage: 882 MB, # Benchmark threads: 4 + + Compressing | Decompressing +Dict Speed Usage R/U Rating | Speed Usage R/U Rating + KiB/s % MIPS MIPS | KiB/s % MIPS MIPS + +22: 4603 319 1402 4478 | 78908 396 1700 6732 +23: 4410 320 1405 4494 | 77659 396 1696 6719 +24: 4434 332 1434 4768 | 76536 397 1693 6719 +25: 4197 350 1369 4792 | 75611 398 1693 6729 +---------------------------------- | ------------------------------ +Avr: 330 1403 4633 | 397 1695 6725 +Tot: 364 1549 5679 + +7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 +p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,4 CPUs LE) + +LE +CPU Freq: - - - - - - 512000000 - - + +RAM size: 3929 MB, # CPU hardware threads: 4 +RAM usage: 882 MB, # Benchmark threads: 4 + + Compressing | Decompressing +Dict Speed Usage R/U Rating | Speed Usage R/U Rating + KiB/s % MIPS MIPS | KiB/s % MIPS MIPS + +22: 4658 319 1420 4532 | 79777 399 1707 6806 +23: 4442 320 1413 4526 | 78476 399 1704 6790 +24: 4362 328 1432 4691 | 77203 399 1700 6777 +25: 4406 358 1406 5032 | 76137 399 1699 6776 +---------------------------------- | ------------------------------ +Avr: 331 1418 4695 | 399 1702 6787 +Tot: 365 1560 5741 + +7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21 +p7zip Version 16.02 (locale=C,Utf16=off,HugeFiles=on,64 bits,4 CPUs LE) + +LE +CPU Freq: - - - - - - - - - + +RAM size: 3929 MB, # CPU hardware threads: 4 +RAM usage: 882 MB, # Benchmark threads: 4 + + Compressing | Decompressing +Dict Speed Usage R/U Rating | Speed Usage R/U Rating + KiB/s % MIPS MIPS | KiB/s % MIPS MIPS + +22: 4769 324 1434 4640 | 78976 396 1703 6738 +23: 4622 327 1442 4710 | 77797 396 1699 6731 +24: 4386 329 1435 4716 | 76688 397 1696 6732 +25: 4372 356 1403 4992 | 75432 396 1694 6713 +---------------------------------- | ------------------------------ +Avr: 334 1428 4764 | 396 1698 6729 +Tot: 365 1563 5747 + +Compression: 4633,4695,4764 +Decompression: 6725,6787,6729 +Total: 5679,5741,5747 + +########################################################################## + +** cpuminer-multi 1.3.7 by tpruvot@github ** +BTC donation address: 1FhDPLPpw18X4srecguG3MxJYe4a1JsZnd (tpruvot) + +[2023-06-27 11:46:48] 4 miner threads started, using 'scrypt' algorithm. +[2023-06-27 11:46:49] CPU #3: 1.95 kH/s +[2023-06-27 11:46:49] CPU #2: 1.89 kH/s +[2023-06-27 11:46:49] CPU #1: 1.85 kH/s +[2023-06-27 11:46:49] CPU #0: 1.47 kH/s +[2023-06-27 11:46:53] Total: 7.69 kH/s +[2023-06-27 11:46:57] CPU #2: 1.98 kH/s +[2023-06-27 11:46:58] CPU #3: 1.98 kH/s +[2023-06-27 11:46:58] Total: 7.91 kH/s +[2023-06-27 11:46:58] CPU #0: 1.98 kH/s +[2023-06-27 11:46:58] CPU #1: 1.98 kH/s +[2023-06-27 11:47:03] Total: 7.92 kH/s +[2023-06-27 11:47:03] CPU #2: 1.98 kH/s +[2023-06-27 11:47:08] CPU #3: 1.98 kH/s +[2023-06-27 11:47:08] Total: 7.92 kH/s +[2023-06-27 11:47:08] CPU #0: 1.98 kH/s +[2023-06-27 11:47:08] CPU #1: 1.98 kH/s +[2023-06-27 11:47:13] Total: 7.92 kH/s +[2023-06-27 11:47:13] CPU #2: 1.98 kH/s +[2023-06-27 11:47:18] CPU #3: 1.98 kH/s +[2023-06-27 11:47:18] Total: 7.92 kH/s +[2023-06-27 11:47:18] CPU #0: 1.98 kH/s +[2023-06-27 11:47:18] CPU #1: 1.98 kH/s +[2023-06-27 11:47:23] Total: 7.92 kH/s +[2023-06-27 11:47:23] CPU #2: 1.98 kH/s +[2023-06-27 11:47:28] CPU #3: 1.98 kH/s +[2023-06-27 11:47:28] Total: 7.92 kH/s +[2023-06-27 11:47:28] CPU #0: 1.98 kH/s +[2023-06-27 11:47:28] CPU #1: 1.98 kH/s +[2023-06-27 11:47:33] Total: 7.92 kH/s +[2023-06-27 11:47:33] CPU #2: 1.98 kH/s +[2023-06-27 11:47:38] CPU #3: 1.97 kH/s +[2023-06-27 11:47:38] Total: 7.91 kH/s +[2023-06-27 11:47:38] CPU #0: 1.98 kH/s +[2023-06-27 11:47:38] CPU #1: 1.98 kH/s +[2023-06-27 11:47:43] Total: 7.90 kH/s +[2023-06-27 11:47:43] CPU #2: 1.98 kH/s +[2023-06-27 11:47:48] CPU #3: 1.98 kH/s +[2023-06-27 11:47:48] Total: 7.92 kH/s +[2023-06-27 11:47:48] CPU #0: 1.98 kH/s +[2023-06-27 11:47:48] CPU #1: 1.98 kH/s +[2023-06-27 11:47:53] Total: 7.92 kH/s +[2023-06-27 11:47:53] CPU #2: 1.98 kH/s +[2023-06-27 11:47:58] CPU #3: 1.98 kH/s +[2023-06-27 11:47:58] Total: 7.92 kH/s +[2023-06-27 11:47:58] CPU #0: 1.98 kH/s +[2023-06-27 11:47:58] CPU #1: 1.98 kH/s +[2023-06-27 11:48:03] Total: 7.92 kH/s +[2023-06-27 11:48:03] CPU #2: 1.98 kH/s +[2023-06-27 11:48:08] CPU #3: 1.98 kH/s +[2023-06-27 11:48:08] Total: 7.92 kH/s +[2023-06-27 11:48:08] CPU #0: 1.98 kH/s +[2023-06-27 11:48:08] CPU #1: 1.98 kH/s +[2023-06-27 11:48:13] Total: 7.91 kH/s +[2023-06-27 11:48:13] CPU #2: 1.98 kH/s +[2023-06-27 11:48:18] CPU #3: 1.98 kH/s +[2023-06-27 11:48:18] Total: 7.91 kH/s +[2023-06-27 11:48:18] CPU #0: 1.97 kH/s +[2023-06-27 11:48:18] CPU #1: 1.98 kH/s +[2023-06-27 11:48:23] Total: 7.91 kH/s +[2023-06-27 11:48:23] CPU #2: 1.98 kH/s +[2023-06-27 11:48:28] CPU #3: 1.98 kH/s +[2023-06-27 11:48:28] Total: 7.91 kH/s +[2023-06-27 11:48:28] CPU #0: 1.98 kH/s +[2023-06-27 11:48:28] CPU #1: 1.98 kH/s +[2023-06-27 11:48:33] Total: 7.92 kH/s +[2023-06-27 11:48:33] CPU #2: 1.98 kH/s +[2023-06-27 11:48:38] CPU #3: 1.98 kH/s +[2023-06-27 11:48:38] Total: 7.92 kH/s +[2023-06-27 11:48:38] CPU #0: 1.98 kH/s +[2023-06-27 11:48:38] CPU #1: 1.98 kH/s +[2023-06-27 11:48:43] Total: 7.92 kH/s +[2023-06-27 11:48:43] CPU #2: 1.98 kH/s +[2023-06-27 11:48:48] CPU #3: 1.98 kH/s +[2023-06-27 11:48:48] Total: 7.92 kH/s +[2023-06-27 11:48:48] CPU #0: 1.98 kH/s +[2023-06-27 11:48:48] CPU #1: 1.97 kH/s +[2023-06-27 11:48:53] Total: 7.91 kH/s +[2023-06-27 11:48:53] CPU #2: 1.98 kH/s +[2023-06-27 11:48:58] CPU #3: 1.98 kH/s +[2023-06-27 11:48:58] Total: 7.92 kH/s +[2023-06-27 11:48:58] CPU #0: 1.98 kH/s +[2023-06-27 11:48:58] CPU #1: 1.98 kH/s +[2023-06-27 11:49:03] Total: 7.92 kH/s +[2023-06-27 11:49:03] CPU #2: 1.97 kH/s +[2023-06-27 11:49:08] CPU #3: 1.98 kH/s +[2023-06-27 11:49:08] Total: 7.90 kH/s +[2023-06-27 11:49:08] CPU #0: 1.98 kH/s +[2023-06-27 11:49:08] CPU #1: 1.98 kH/s +[2023-06-27 11:49:13] Total: 7.92 kH/s +[2023-06-27 11:49:13] CPU #2: 1.98 kH/s +[2023-06-27 11:49:18] CPU #3: 1.98 kH/s +[2023-06-27 11:49:18] Total: 7.92 kH/s +[2023-06-27 11:49:18] CPU #0: 1.98 kH/s +[2023-06-27 11:49:18] CPU #1: 1.98 kH/s +[2023-06-27 11:49:23] Total: 7.92 kH/s +[2023-06-27 11:49:23] CPU #2: 1.98 kH/s +[2023-06-27 11:49:28] CPU #3: 1.98 kH/s +[2023-06-27 11:49:28] Total: 7.92 kH/s +[2023-06-27 11:49:28] CPU #0: 1.98 kH/s +[2023-06-27 11:49:28] CPU #1: 1.98 kH/s +[2023-06-27 11:49:33] Total: 7.92 kH/s +[2023-06-27 11:49:33] CPU #2: 1.98 kH/s +[2023-06-27 11:49:38] CPU #3: 1.98 kH/s +[2023-06-27 11:49:38] Total: 7.92 kH/s +[2023-06-27 11:49:38] CPU #0: 1.98 kH/s +[2023-06-27 11:49:38] CPU #1: 1.98 kH/s +[2023-06-27 11:49:43] Total: 7.92 kH/s +[2023-06-27 11:49:43] CPU #2: 1.98 kH/s +[2023-06-27 11:49:48] CPU #3: 1.97 kH/s +[2023-06-27 11:49:48] Total: 7.91 kH/s +[2023-06-27 11:49:48] CPU #0: 1.98 kH/s +[2023-06-27 11:49:48] CPU #1: 1.98 kH/s +[2023-06-27 11:49:53] Total: 7.91 kH/s +[2023-06-27 11:49:53] CPU #2: 1.98 kH/s +[2023-06-27 11:49:58] CPU #3: 1.98 kH/s +[2023-06-27 11:49:58] Total: 7.92 kH/s +[2023-06-27 11:49:58] CPU #0: 1.98 kH/s +[2023-06-27 11:49:58] CPU #1: 1.98 kH/s +[2023-06-27 11:50:03] Total: 7.92 kH/s +[2023-06-27 11:50:03] CPU #2: 1.98 kH/s +[2023-06-27 11:50:08] CPU #3: 1.98 kH/s +[2023-06-27 11:50:08] Total: 7.92 kH/s +[2023-06-27 11:50:08] CPU #0: 1.98 kH/s +[2023-06-27 11:50:08] CPU #1: 1.98 kH/s +[2023-06-27 11:50:13] Total: 7.92 kH/s +[2023-06-27 11:50:13] CPU #2: 1.98 kH/s +[2023-06-27 11:50:18] CPU #3: 1.98 kH/s +[2023-06-27 11:50:18] Total: 7.92 kH/s +[2023-06-27 11:50:18] CPU #0: 1.98 kH/s +[2023-06-27 11:50:18] CPU #1: 1.98 kH/s +[2023-06-27 11:50:23] Total: 7.92 kH/s +[2023-06-27 11:50:23] CPU #2: 1.98 kH/s +[2023-06-27 11:50:28] CPU #3: 1.97 kH/s +[2023-06-27 11:50:28] Total: 7.91 kH/s +[2023-06-27 11:50:28] CPU #0: 1.98 kH/s +[2023-06-27 11:50:28] CPU #1: 1.97 kH/s +[2023-06-27 11:50:33] Total: 7.91 kH/s +[2023-06-27 11:50:33] CPU #2: 1.98 kH/s +[2023-06-27 11:50:38] CPU #3: 1.98 kH/s +[2023-06-27 11:50:38] Total: 7.92 kH/s +[2023-06-27 11:50:38] CPU #0: 1.98 kH/s +[2023-06-27 11:50:38] CPU #1: 1.98 kH/s +[2023-06-27 11:50:43] Total: 7.92 kH/s +[2023-06-27 11:50:43] CPU #2: 1.98 kH/s +[2023-06-27 11:50:48] CPU #3: 1.98 kH/s +[2023-06-27 11:50:48] Total: 7.92 kH/s +[2023-06-27 11:50:48] CPU #0: 1.98 kH/s +[2023-06-27 11:50:48] CPU #1: 1.98 kH/s +[2023-06-27 11:50:53] Total: 7.92 kH/s +[2023-06-27 11:50:53] CPU #2: 1.98 kH/s +[2023-06-27 11:50:58] CPU #3: 1.98 kH/s +[2023-06-27 11:50:58] Total: 7.92 kH/s +[2023-06-27 11:50:58] CPU #0: 1.98 kH/s +[2023-06-27 11:50:58] CPU #1: 1.97 kH/s +[2023-06-27 11:51:03] Total: 7.91 kH/s +[2023-06-27 11:51:03] CPU #2: 1.98 kH/s +[2023-06-27 11:51:08] CPU #3: 1.98 kH/s +[2023-06-27 11:51:08] Total: 7.92 kH/s +[2023-06-27 11:51:08] CPU #0: 1.98 kH/s +[2023-06-27 11:51:08] CPU #1: 1.98 kH/s +[2023-06-27 11:51:13] Total: 7.91 kH/s +[2023-06-27 11:51:13] CPU #2: 1.97 kH/s +[2023-06-27 11:51:18] CPU #3: 1.98 kH/s +[2023-06-27 11:51:18] Total: 7.91 kH/s +[2023-06-27 11:51:18] CPU #0: 1.98 kH/s +[2023-06-27 11:51:18] CPU #1: 1.98 kH/s +[2023-06-27 11:51:23] Total: 7.92 kH/s +[2023-06-27 11:51:23] CPU #2: 1.98 kH/s +[2023-06-27 11:51:28] CPU #3: 1.98 kH/s +[2023-06-27 11:51:28] Total: 7.92 kH/s +[2023-06-27 11:51:28] CPU #0: 1.98 kH/s +[2023-06-27 11:51:28] CPU #1: 1.98 kH/s +[2023-06-27 11:51:33] Total: 7.92 kH/s +[2023-06-27 11:51:33] CPU #2: 1.98 kH/s +[2023-06-27 11:51:38] CPU #3: 1.98 kH/s +[2023-06-27 11:51:38] Total: 7.92 kH/s +[2023-06-27 11:51:38] CPU #0: 1.98 kH/s +[2023-06-27 11:51:38] CPU #1: 1.98 kH/s +[2023-06-27 11:51:43] Total: 7.92 kH/s +[2023-06-27 11:51:43] CPU #2: 1.98 kH/s +[2023-06-27 11:51:48] CPU #3: 1.98 kH/s +[2023-06-27 11:51:48] Total: 7.92 kH/s +[2023-06-27 11:51:48] CPU #0: 1.98 kH/s + +Total Scores: 7.92,7.91,7.90 + +########################################################################## + +Testing maximum cpufreq again, still under full load. System health now: + +Time CPU n/a load %cpu %sys %usr %nice %io %irq Temp +11:51:11: n/a MHz 4.05 100% 0% 99% 0% 0% 0% 59.1°C + +Checking cpufreq OPP (Cortex-A72): + +No cpufreq support available. Measured on cpu1: 1598 MHz (1598.605/1598.565/1598.565) + +########################################################################## + +Hardware sensors: + +f212a600mdiomii08-mdio-8 +temp1: +60.0 C + +f212a200mdiomii00-mdio-0 +temp1: +59.0 C (crit = +100.0 C) + +f212a600mdiomii00-mdio-0 +temp1: +55.0 C + +########################################################################## + +Thermal source: /sys/devices/virtual/thermal/thermal_zone4/ (ap-thermal-cpu3) + +System health while running tinymembench: + +Time CPU n/a load %cpu %sys %usr %nice %io %irq Temp +11:38:11: n/a MHz 1.21 0% 0% 0% 0% 0% 0% 48.1°C +11:38:22: n/a MHz 1.17 25% 0% 25% 0% 0% 0% 48.1°C +11:38:32: n/a MHz 1.15 25% 0% 25% 0% 0% 0% 48.5°C +11:38:42: n/a MHz 1.12 25% 0% 25% 0% 0% 0% 48.5°C +11:38:52: n/a MHz 1.10 25% 0% 25% 0% 0% 0% 48.9°C +11:39:02: n/a MHz 1.09 25% 0% 25% 0% 0% 0% 49.3°C +11:39:12: n/a MHz 1.07 25% 0% 25% 0% 0% 0% 48.9°C +11:39:22: n/a MHz 1.06 25% 0% 24% 0% 0% 0% 46.8°C + +System health while running ramlat: + +Time CPU n/a load %cpu %sys %usr %nice %io %irq Temp +11:39:29: n/a MHz 1.14 0% 0% 0% 0% 0% 0% 47.6°C +11:39:32: n/a MHz 1.13 25% 0% 25% 0% 0% 0% 46.4°C +11:39:35: n/a MHz 1.13 25% 0% 25% 0% 0% 0% 45.9°C +11:39:38: n/a MHz 1.12 25% 0% 25% 0% 0% 0% 46.8°C +11:39:41: n/a MHz 1.11 25% 0% 25% 0% 0% 0% 46.4°C +11:39:44: n/a MHz 1.11 25% 0% 25% 0% 0% 0% 46.8°C +11:39:47: n/a MHz 1.10 25% 0% 25% 0% 0% 0% 46.4°C +11:39:50: n/a MHz 1.10 25% 0% 24% 0% 0% 0% 46.4°C +11:39:53: n/a MHz 1.09 25% 0% 25% 0% 0% 0% 46.4°C +11:39:56: n/a MHz 1.08 25% 0% 24% 0% 0% 0% 46.8°C +11:39:59: n/a MHz 1.08 25% 0% 24% 0% 0% 0% 46.4°C +11:40:02: n/a MHz 1.08 25% 0% 24% 0% 0% 0% 45.9°C + +System health while running OpenSSL benchmark: + +Time CPU n/a load %cpu %sys %usr %nice %io %irq Temp +11:40:04: n/a MHz 1.08 0% 0% 0% 0% 0% 0% 47.6°C +11:40:20: n/a MHz 1.06 25% 0% 25% 0% 0% 0% 46.8°C +11:40:36: n/a MHz 1.04 25% 0% 25% 0% 0% 0% 46.8°C +11:40:52: n/a MHz 1.03 25% 0% 24% 0% 0% 0% 47.2°C +11:41:08: n/a MHz 1.02 25% 0% 25% 0% 0% 0% 47.2°C +11:41:24: n/a MHz 1.02 25% 0% 25% 0% 0% 0% 47.2°C +11:41:40: n/a MHz 1.01 25% 0% 24% 0% 0% 0% 47.2°C + +System health while running 7-zip single core benchmark: + +Time CPU n/a load %cpu %sys %usr %nice %io %irq Temp +11:41:52: n/a MHz 1.01 0% 0% 0% 0% 0% 0% 47.6°C +11:41:59: n/a MHz 1.01 25% 0% 24% 0% 0% 0% 46.8°C +11:42:06: n/a MHz 1.01 25% 0% 25% 0% 0% 0% 46.8°C +11:42:13: n/a MHz 1.01 25% 0% 24% 0% 0% 0% 47.2°C +11:42:20: n/a MHz 1.00 25% 0% 25% 0% 0% 0% 46.4°C +11:42:27: n/a MHz 1.00 25% 0% 24% 0% 0% 0% 46.8°C +11:42:34: n/a MHz 1.00 25% 0% 24% 0% 0% 0% 46.4°C +11:42:41: n/a MHz 1.00 25% 0% 25% 0% 0% 0% 46.4°C +11:42:48: n/a MHz 1.00 25% 0% 24% 0% 0% 0% 46.4°C +11:42:55: n/a MHz 1.00 25% 0% 24% 0% 0% 0% 46.4°C +11:43:02: n/a MHz 1.00 25% 0% 24% 0% 0% 0% 46.8°C +11:43:09: n/a MHz 1.00 25% 0% 24% 0% 0% 0% 46.4°C + +System health while running 7-zip multi core benchmark: + +Time CPU n/a load %cpu %sys %usr %nice %io %irq Temp +11:43:13: n/a MHz 1.00 0% 0% 0% 0% 0% 0% 46.8°C +11:43:29: n/a MHz 1.60 91% 0% 90% 0% 0% 0% 50.6°C +11:43:43: n/a MHz 2.06 93% 0% 92% 0% 0% 0% 52.3°C +11:44:00: n/a MHz 2.42 89% 1% 88% 0% 0% 0% 52.3°C +11:44:14: n/a MHz 2.85 84% 1% 82% 0% 0% 0% 52.3°C +11:44:28: n/a MHz 3.02 93% 1% 92% 0% 0% 0% 52.3°C +11:44:42: n/a MHz 2.99 93% 0% 92% 0% 0% 0% 53.1°C +11:44:56: n/a MHz 3.15 92% 0% 91% 0% 0% 0% 53.1°C +11:45:12: n/a MHz 3.05 92% 0% 91% 0% 0% 0% 53.1°C +11:45:28: n/a MHz 3.18 87% 2% 84% 0% 0% 0% 53.6°C +11:45:42: n/a MHz 3.20 92% 0% 91% 0% 0% 0% 53.6°C +11:45:59: n/a MHz 3.46 93% 0% 93% 0% 0% 0% 54.4°C +11:46:13: n/a MHz 3.36 90% 0% 89% 0% 0% 0% 54.0°C +11:46:27: n/a MHz 3.34 89% 0% 88% 0% 0% 0% 54.0°C +11:46:44: n/a MHz 3.49 93% 2% 91% 0% 0% 0% 54.0°C + +System health while running cpuminer: + +Time CPU n/a load %cpu %sys %usr %nice %io %irq Temp +11:46:53: n/a MHz 3.53 0% 0% 0% 0% 0% 0% 55.2°C +11:47:36: n/a MHz 3.82 100% 0% 99% 0% 0% 0% 56.9°C +11:48:19: n/a MHz 3.91 100% 0% 99% 0% 0% 0% 57.4°C +11:49:02: n/a MHz 4.00 100% 0% 99% 0% 0% 0% 58.2°C +11:49:44: n/a MHz 4.04 100% 0% 99% 0% 0% 0% 58.6°C +11:50:28: n/a MHz 4.02 100% 0% 99% 0% 0% 0% 59.1°C +11:51:11: n/a MHz 4.05 100% 0% 99% 0% 0% 0% 59.1°C + +########################################################################## + +Linux 5.10.0-0.bpo.7-arm64 (sr-8040) 06/27/23 _aarch64_ (4 CPU) + +avg-cpu: %user %nice %system %iowait %steal %idle + 0.10 0.37 0.05 0.00 0.00 99.48 + +Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd +mmcblk0 0.00 0.00 0.00 0.00 3190 0 0 +mmcblk1 0.00 0.00 0.00 0.00 6376 0 0 +sda 0.00 0.00 0.00 0.00 14109 0 0 +sdb 0.25 0.63 18.28 0.00 1877660 54635852 0 + + total used free shared buff/cache available +Mem: 3.8Gi 442Mi 3.2Gi 40Mi 251Mi 3.3Gi +Swap: 0B 0B 0B + +CPU sysfs topology (clusters, cpufreq members, clockspeeds) + cpufreq min max + CPU cluster policy speed speed core type + 0 0 0 - - Cortex-A72 / r0p1 + 1 0 0 - - Cortex-A72 / r0p1 + 2 0 0 - - Cortex-A72 / r0p1 + 3 0 0 - - Cortex-A72 / r0p1 + +Architecture: aarch64 +Byte Order: Little Endian +CPU(s): 4 +On-line CPU(s) list: 0-3 +Thread(s) per core: 1 +Core(s) per socket: 4 +Socket(s): 1 +NUMA node(s): 1 +Vendor ID: ARM +Model: 1 +Model name: Cortex-A72 +Stepping: r0p1 +BogoMIPS: 50.00 +L1d cache: 32K +L1i cache: 48K +L2 cache: 512K +NUMA node0 CPU(s): 0-3 +Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid + +Scanning /dev/mem for entry point. + +Signature: 00A72r0p100A72r0p100A72r0p100A72r0p1 +DT compat: marvell,armada8040-mcbin-doubleshot + marvell,armada8040-mcbin + marvell,armada8040 + marvell,armada-ap806-quad + marvell,armada-ap806 + Compiler: /usr/bin/gcc (Debian 12.2.0-14) 12.2.0 / aarch64-linux-gnu + Userland: arm64 + Kernel: 5.10.0-0.bpo.7-arm64/aarch64 + CONFIG_HZ=250 + CONFIG_HZ_250=y + CONFIG_PREEMPT_NOTIFIERS=y + CONFIG_PREEMPT_VOLUNTARY=y + +########################################################################## + +Kernel 5.10.0 is not latest 5.10.185 LTS that was released on 2023-06-21. + +See https://endoflife.date/linux for details. It is somewhat likely that +a lot of exploitable vulnerabilities exist for this kernel as well as many +unfixed bugs. + +########################################################################## + +Results validation: + + * Background activity (%system) OK + * Throttling occured + +Status of performance related policies found below /sys: + + * /sys/module/pcie_aspm/parameters/policy: [default] performance powersave powersupersave + +| Marvell 8040 MACCHIATOBin Double-shot | ~1600 MHz | 5.10 | Debian GNU/Linux 10 (buster) arm64 | 5720 | 1739 | 909420 | 4510 | 12270 | 7.91 | \ No newline at end of file diff --git a/results/ARMv8-Crypto-Extensions.md b/results/ARMv8-Crypto-Extensions.md index 2420c0a..739b98e 100644 --- a/results/ARMv8-Crypto-Extensions.md +++ b/results/ARMv8-Crypto-Extensions.md @@ -108,9 +108,11 @@ Crawling through [sbc-bench results collection](../Results.md) comparing +70 dif | [S905X3](http://ix.io/3Vdt) | 1908 | 890730 | 466 | | [RK3568](http://ix.io/3Ug9) | 1930 | 898610 | 465 | | [RK3568](http://ix.io/3UXa) | 1950 | 911730 | 467 | +| [UMS9620](http://ix.io/4yFl) | 2000 | 936310 | 468 | | [S905X3](http://ix.io/2kaS) | 2010 | 941590 | 468 | | [S905X3](http://ix.io/3TQ2) | 2100 | 981940 | 467 | | Cortex-A72 | | | | +| [Armada 8040](http://ix.io/4zcm) | 1600 | 909420 | 568 | | [RK3399](http://ix.io/1iWU) | 1800 | 1023600 | 568 | | [LX2160A](http://ix.io/1ET3) | 1900 | 1079480 | 568 | | [RK3399](http://ix.io/2yIx) | 2010 | 1144950 | 569 | @@ -124,20 +126,21 @@ Crawling through [sbc-bench results collection](../Results.md) comparing +70 dif | [A311D](http://ix.io/3VfL) | 2400 | 1365900 | 569 | | Cortex-A76 | | | | | [RK3588](http://ix.io/3XzI) | 985 | 560200 | 569 | +| [UMS9620](http://ix.io/4yFl) | 2210 | 1258230 | 569 | | [RK3588s](http://ix.io/3XYo) | 2330 | 1325370 | 569 | | [Snapdragon 7c](http://ix.io/4xEW) | 2550 | 1454480 | 570 | | Cortex-A77 | | | | | [QRB5165](http://ix.io/49kx) | 2410 | 1348440 | 560 | | [QRB5165](http://ix.io/49kx) | 2840 | 1598490 | 563 | | Cortex-A78C/A78AE | | | | -| [Snapdragon 8cx Gen 3](http://ix.io/4qG1) | 2430 | 1373790 | 565 | | [NVIDIA Orin](http://ix.io/4ax9) | 2200 | 1242940 | 565 | +| [Snapdragon 8cx Gen 3](http://ix.io/4xwT) | 2420 | 1365680 | 564 | | Cortex-X1C | | | | -| [Snapdragon 8cx Gen 3](http://ix.io/4qG1) | 3000 | 1694260 | 565 | +| [Snapdragon 8cx Gen 3](http://ix.io/4xwT) | 2990 | 1686160 | 564 | | Qualcomm Falkor V1 | | | | | [Snapdragon 835](http://ix.io/4fea) | 2360 | 1342240 | 569 | | Neoverse-N1 | | | | -| [Ampere Altra](http://ix.io/4kiu) | 3000 | 1710010 | 570 | | [Amazon m6g.8xlarge](http://ix.io/2FrG) | 2500 | 1424770 | 570 | +| [Ampere Altra](http://ix.io/4kiu) | 3000 | 1710010 | 570 | | Cortex-A510 | | | | | [Snapdragon 8 Gen1](http://ix.io/4pgq) | 1515 | 1405500 | 928 | diff --git a/results/Sorted-Results.md b/results/Sorted-Results.md index 91ce834..a9d6b8c 100644 --- a/results/Sorted-Results.md +++ b/results/Sorted-Results.md @@ -109,6 +109,7 @@ | [Raspberry Pi 4 B](http://ix.io/3F9C) | 1800 MHz | 5.10 | Raspberry Pi OS Buster arm64 | **5760** | 1741 | 36240 | 2240 | 3120 | 9.46 | | [Raspberry Pi 4 B](http://ix.io/3EgS) | 1500 MHz | 5.10 | Raspberry Pi OS Buster | **5750** | 1661 | 64930 | 2550 | 3430 | - | | [ODROID-HC4](http://ix.io/3Na5) | 2100 MHz | 5.10 | Buster arm64 | **5730** | 1672 | 980970 | 3540 | 5150 | - | +| [Macchiatobin](http://ix.io/4zcm) | 1600 MHz | 5.10 | Buster arm64 | **5720** | 1739 | 909420 | 4510 | 12270 | 7.91 | | [Raspberry Pi 4 B](http://ix.io/3InF) | 1800 MHz | 5.15 | Armbian Jammy arm64 | **5640** | 1752 | 36260 | 2580 | 3110 | - | | [TinkerBoard S](http://ix.io/4vfU) | 1800 MHz | 6.1 | Jammy armhf | **5560** | 1672 | 65800 | 1540 | 4150 | - | | [Raspberry Pi 4 B](http://ix.io/1MFf) | 1500 MHz | 4.19 | Raspbian Buster | **5500** | 1606 | 64860 | 2460 | 3170 | - | @@ -180,6 +181,7 @@ | [Marvell PXA1908](http://ix.io/46hs) | 1245 MHz | 3.14 | Bullseye arm64 | **3180** | 951 | 581840 | 740 | 2220 | - | | [Raspberry Pi 3 B+](http://ix.io/1iGz) | OC/normal | 4.14 | Raspbian Stretch | **3130** | 843 | 36620 | 1230 | 1780 | - | | [TRONFY MXQ S805](http://ix.io/3MiR) | 1536 MHz | 5.10 | Focal armhf | **3100** | 897 | 29080 | 980 | 2990 | - | +| [Celeron N2807](http://ix.io/4z3s) | 2165 MHz | 5.10 | Bullseye) amd64 | **3070** | 1766 | 31250 | 3600 | 3110 | 6.09 | | [Orange Pi PC Plus](http://ix.io/3MQV) | 1370 MHz | 5.10 | Focal armhf | **3060** | 879 | 26590 | 890 | 3450 | - | | [Akaso M8S](http://ix.io/3R3N) | 1200 MHz | 5.10 | Buster armhf | **3050** | 885 | 32120 | 1160 | 3330 | - | | [Raspberry Pi 3 B+](http://ix.io/1iGM) | normal | 4.14 | Raspbian Stretch | **3040** | 856 | 36600 | 1050 | 1500 | - | @@ -298,11 +300,13 @@ | [Celeron J1900](http://ix.io/4hKV) | 2415/1333 MHz | 5.4 | Focal amd64 | 6560 | **1806** | 34900 | 3780 | 3390 | - | | [x7-Z8700](http://ix.io/4iDX) | 2400 MHz | 5.15 | Bullseye amd64 | 6580 | **1784** | 296680 | 3510 | 3580 | - | | [Raspberry Pi 4 B](http://ix.io/3OBF) | 1800 MHz | 5.10 | Raspberry Pi OS Bullseye arm64 | 5790 | **1769** | 36260 | 2330 | 3120 | 8.74 | +| [Celeron N2807](http://ix.io/4z3s) | 2165 MHz | 5.10 | Bullseye) amd64 | 3070 | **1766** | 31250 | 3600 | 3110 | 6.09 | | [NanoPC T4](http://ix.io/1iWU) | 1800/1400 MHz | 4.17 | Stretch arm64 | 6230 | **1756** | 1023600 | 4100 | 9060 | 10.30 | | [RockPro64](http://ix.io/1iFp) | 1800/1400 MHz | 4.18 | Stretch arm64 | 6300 | **1755** | 1021500 | 3650 | 8450 | 8.20 | | [Raspberry Pi 4 B](http://ix.io/3InF) | 1800 MHz | 5.15 | Armbian Jammy arm64 | 5640 | **1752** | 36260 | 2580 | 3110 | - | | [Raspberry Pi 4 B](http://ix.io/3F9C) | 1800 MHz | 5.10 | Raspberry Pi OS Buster arm64 | 5760 | **1741** | 36240 | 2240 | 3120 | 9.46 | | [NanoPC T4](http://ix.io/1iZq) | 1800/1400 MHz | 4.17 | Stretch arm64 | 6380 | **1741** | 1022600 | 4160 | 9000 | 9.36 | +| [Macchiatobin](http://ix.io/4zcm) | 1600 MHz | 5.10 | Buster arm64 | 5720 | **1739** | 909420 | 4510 | 12270 | 7.91 | | [Raspberry Pi 4 B](http://ix.io/3N94) | 1800 MHz | 5.10 | Raspberry Pi OS Bullseye | 5940 | **1738** | 77670 | 2310 | 2690 | - | | [Khadas Edge](http://ix.io/1rYm) | 2000/1500 MHz | 4.4 | Bionic arm64 | 6550 | **1721** | 1130400 | 2810 | 4860 | 10.50 | | [Nintendo Switch](http://ix.io/1Rnj) | 1780 MHz | 4.9 | Fedora 30 arm-64 | 6170 | **1719** | 642670 | 2500 | 3570 | - | @@ -504,6 +508,7 @@ | [NanoPi M4v2](http://ix.io/3MAK) | 2015/1510 MHz | 5.10 | Bullseye arm64 | 6680 | 1855 | **921980** | 3110 | 7640 | - | | [NanoPi R5S](http://ix.io/4jfZ) | 1960 MHz | 6.1 | Bullseye arm64 | 5030 | 1482 | **914340** | 2990 | 5970 | 7.33 | | [RK3568-ROC-PC](http://ix.io/3Rsg) | 1960 MHz | 4.19 | Bullseye arm64 | 5040 | 1424 | **912800** | 3130 | 6240 | - | +| [Macchiatobin](http://ix.io/4zcm) | 1600 MHz | 5.10 | Buster arm64 | 5720 | 1739 | **909420** | 4510 | 12270 | 7.91 | | [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 | - | @@ -623,6 +628,7 @@ | [SBC2D70 (SSD202D)](http://ix.io/3N1U) | 1700 MHz | 5.16 | Sid armhf | 1960 | 1094 | **33120** | 770 | 3190 | - | | [Akaso M8S](http://ix.io/3R3N) | 1200 MHz | 5.10 | Buster armhf | 3050 | 885 | **32120** | 1160 | 3330 | - | | [Celeron N2830](http://ix.io/4pEc) | 2160 MHz | 5.19 | Jammy amd64 | 2760 | 1664 | **31270** | 3780 | 3520 | 6.10 | +| [Celeron N2807](http://ix.io/4z3s) | 2165 MHz | 5.10 | Bullseye) amd64 | 3070 | 1766 | **31250** | 3600 | 3110 | 6.09 | | [Raspberry Pi Zero 2](http://ix.io/3E85) | 1000 MHz | 5.10 | Raspberry Pi OS Buster | 3030 | 838 | **29860** | 1300 | 1570 | - | | [ODROID-C1](http://ix.io/4eg5) | 1500 MHz | 5.19 | Jammy armhf | 3010 | 878 | **29260** | 390 | 2910 | - | | [TRONFY MXQ S805](http://ix.io/3MiR) | 1536 MHz | 5.10 | Focal armhf | 3100 | 897 | **29080** | 980 | 2990 | - | @@ -699,6 +705,7 @@ | [Khadas VIM3](http://ix.io/3R2Z) | 2400/2015 MHz | 5.10 | Bullseye arm64 | 9650 | 2376 | 1366350 | **4850** | 7380 | - | | [Celeron N4100](http://ix.io/1uTS) | 2300/1100 MHz | 4.15 | Bionic amd64 | 8510 | 2222 | 669350 | **4750** | 5240 | 18.33 | | [Pentium N4200](http://ix.io/1ngq) | 2560/1100 MHz | 4.14 | Bionic amd64 | 7469 | 1976 | 468008 | **4682** | 4997 | 18.75 | +| [Macchiatobin](http://ix.io/4zcm) | 1600 MHz | 5.10 | Buster arm64 | 5720 | 1739 | 909420 | **4510** | 12270 | 7.91 | | [Clearfog CX](http://ix.io/4ju5) | 2000 MHz | 5.10 | Focal arm64 | 25260 | 2236 | 1136690 | **4460** | 12500 | - | | [Atom E3950](http://ix.io/4dd5) | 2000 MHz | 5.15 | Jammy amd64 | 6440 | 1636 | 374800 | **4400** | 4840 | - | | [Lichee Pi 4A](http://ix.io/4xYE) | 1990 MHz | 5.10 | Bookworm riscv64 | 5260 | 1592 | 43820 | **4350** | 14760 | - | @@ -728,6 +735,7 @@ | [Rock Pi 4](http://ix.io/21fX) | 2000/1500 MHz | 5.3 | Bionic arm64 | 6910 | 1817 | 1147370 | **3660** | 8310 | 10.71 | | [RockPro64](http://ix.io/1iFp) | 1800/1400 MHz | 4.18 | Stretch arm64 | 6300 | 1755 | 1021500 | **3650** | 8450 | 8.20 | | [Milk-V Pioneer](http://ix.io/4wYE) | 2000 MHz | 6.1 | Kinetic riscv64 | 59820 | 1622 | 43500 | **3620** | 4760 | - | +| [Celeron N2807](http://ix.io/4z3s) | 2165 MHz | 5.10 | Bullseye) amd64 | 3070 | 1766 | 31250 | **3600** | 3110 | 6.09 | | [ODROID-HC4](http://ix.io/3Na5) | 2100 MHz | 5.10 | Buster arm64 | 5730 | 1672 | 980970 | **3540** | 5150 | - | | [ODROID-C4](http://ix.io/3TQ2) | 2100 MHz | 5.10 | Buster arm64 | 5770 | 1679 | 981940 | **3540** | 5150 | - | | [x7-Z8700](http://ix.io/4iDX) | 2400 MHz | 5.15 | Bullseye amd64 | 6580 | 1784 | 296680 | **3510** | 3580 | - | @@ -901,6 +909,7 @@ | [Clearfog CX](http://ix.io/4ju5) | 2000 MHz | 5.10 | Focal arm64 | 25260 | 2236 | 1136690 | 4460 | **12500** | - | | [i.MX8MPlus EVK board](http://ix.io/4hx0) | 1800 MHz | 5.15 | Focal arm64 | 4990 | 1348 | 837680 | 2740 | **12420** | 7.02 | | [N100](http://ix.io/4vxM) | 3400 MHz | 6.1 | Lunar amd64 | 14150 | 4073 | 1232790 | 11600 | **12270** | 36.24 | +| [Macchiatobin](http://ix.io/4zcm) | 1600 MHz | 5.10 | Buster arm64 | 5720 | 1739 | 909420 | 4510 | **12270** | 7.91 | | [Jetson Nano](http://ix.io/3Ufc) | 2000 MHz | 4.9 | Bionic arm64 | 6260 | 1977 | 717500 | 4100 | **11760** | 8.72 | | [Khadas VIM4](http://ix.io/4cHh) | 2200/2010 MHz | 5.4 | Jammy arm64 | 12120 | 2067 | 1254540 | 8180 | **11680** | - | | [Khadas VIM4](http://ix.io/3Wvv) | 2200/1970 MHz | 5.4 | Focal arm64 | 12090 | 2081 | 1253200 | 7810 | **11600** | - | @@ -1032,6 +1041,7 @@ | [Raspberry Pi 400](http://ix.io/2Cyi) | 1800 MHz | 5.4 | Raspberry Pi OS Buster | 6550 | 1903 | 77890 | 2680 | **3110** | - | | [Raspberry Pi 4 B](http://ix.io/3VME) | 1800 MHz | 5.15 | Jammy armhf | 6300 | 1844 | 82750 | 1190 | **3110** | - | | [Raspberry Pi 4 B](http://ix.io/3InF) | 1800 MHz | 5.15 | Armbian Jammy arm64 | 5640 | 1752 | 36260 | 2580 | **3110** | - | +| [Celeron N2807](http://ix.io/4z3s) | 2165 MHz | 5.10 | Bullseye) amd64 | 3070 | 1766 | 31250 | 3600 | **3110** | 6.09 | | [ODROID-C2](http://ix.io/1ixI) | 1750 MHz | 3.14 | Xenial arm64 | 4070 | 1128 | 48500 | 1750 | **3100** | - | | [Raspberry Pi 4 B](http://ix.io/3Gia) | 1800 MHz | 5.10 | Raspberry Pi OS Buster | 6550 | 1897 | 77830 | 2780 | **3080** | - | | [BPi M2U](http://ix.io/4kmM) | 1200 MHz | 6.0 | Bullseye armhf | 2690 | 767 | 23320 | 780 | **3010** | - | @@ -1137,6 +1147,7 @@ | [Khadas VIM3](http://ix.io/1MFD) | **2200/1800** MHz| 4.9 | Bionic arm64 | 8600 | 2026 | 1256910 | 4980 | 9300 | 13.12 | | [Jetson AGX Orin](http://ix.io/4ax9) | **2200** MHz| 5.10 | Focal arm64 | 39450 | 3187 | 1242940 | 10600 | 30350 | 59.96 | | [Honeycomb LX2](http://ix.io/3Y4f) | **2200** MHz| 5.16 | Fedora 35 aarch64 | 30690 | 2288 | 1251710 | 5050 | 16220 | 46.09 | +| [Celeron N2807](http://ix.io/4z3s) | **2165** MHz| 5.10 | Bullseye) amd64 | 3070 | 1766 | 31250 | 3600 | 3110 | 6.09 | | [Celeron N2830](http://ix.io/4pEc) | **2160** MHz| 5.19 | Jammy amd64 | 2760 | 1664 | 31270 | 3780 | 3520 | 6.10 | | [ODROID-HC4](http://ix.io/3Na5) | **2100** MHz| 5.10 | Buster arm64 | 5730 | 1672 | 980970 | 3540 | 5150 | - | | [ODROID-C4](http://ix.io/3TQ2) | **2100** MHz| 5.10 | Buster arm64 | 5770 | 1679 | 981940 | 3540 | 5150 | - | @@ -1215,6 +1226,7 @@ | [SBC2D70 (SSD202D)](http://ix.io/3N1U) | **1700** MHz| 5.16 | Sid armhf | 1960 | 1094 | 33120 | 770 | 3190 | - | | [AMD E-450 APU](http://ix.io/4hwl) | **1650** MHz| 5.15 | Jammy amd64 | 2430 | 1258 | 27450 | 1710 | 1740 | - | | [Tronsmart S82](http://ix.io/41ML) | **1600** MHz| 5.14 | Focal armhf | 3640 | 1114 | 43150 | 500 | 3200 | - | +| [Macchiatobin](http://ix.io/4zcm) | **1600** MHz| 5.10 | Buster arm64 | 5720 | 1739 | 909420 | 4510 | 12270 | 7.91 | | [Helios4](http://ix.io/1jCy) | **1600** MHz| 4.14 | Stretch armhf | 2210 | 1215 | 42500 *98560 | 910 | 4840 | - | | [Clearfog A1](http://ix.io/4d1U) | **1600** MHz| 5.15 | Bullseye armhf | 2230 | 1239 | 44080 | 910 | 5060 | - | | [Atom N270](http://ix.io/461n) | **1600** MHz| 4.19 | Buster i386 | 1220 | 824 | 18760 | 1420 | 2840 | - | diff --git a/results/results.tar.xz b/results/results.tar.xz index 1a33293774e8c1e3d997d6550206b9a529d78573..bf17b68a723d21bc9ffc97caa5afdb956b2c554c 100644 GIT binary patch delta 74128 zcmV(xK?hEID1d|kgaU*Egam{Iga(8Mv7Jw?S|S<#B&kZ7Kwg5PCPn z+=#(Y4nuNS;XPfd2#e-Fe9P}!Ttx%?q8Q1|4M zN0R;FjmUCzl$3xp`9?dA?-U)518bv4}lJqbQCB5^} z^k9SsKr^-j&e;Ke-aqoK#x`>^9y+0BJ@2%RB7=pQLsO&0-R6~ECXV}yrE^BePr%D& zR`l4Y&ADSeGH|!Wh8viTP$HeWe(&5d2NhKU*dRC7@hK<%NZxLe-`DH4 zB%QHlf_EogF(tSIHw##e9rdR4)It2T2RNOfL76mC6&yia!q)zA^`2xVI6eSc?dw_V zc%;@~{5CR-f(?Jcb1SDq&h04XC0vs#uj?epLLm#6(+g~@YL3A^YSQ5PtK$WQSUlK! ze^!aD660lZoA5AWD!zWp9<9c z_9A7&V06g?pti;tL2Vo3w9loYWj`wy0{|SEagQBX7bAbzm*CleQb5!2_EuY9vVy`{ zr@gOB74)Z<9%fw7Z*QK6*p$V>E6_1#!m0{Uu{MmZH|{nHqy&(~_%Qq;*%sEV`_v(vu#c}<7^}OsV5L2?*9a9v}#^s?j?bxmT5k;L1CE1(kfvEv!AK1B{ z`=5R(&BK46@nM5!DP+IoBi1J_tE{*5ju(BuaerIE1-o?dHj@(JjeWv@I zR`-5>=}q>Q;{=a_#2gxv;atBH!Q79TN~)a)Tu@gN>+q|%A|8J%>ROdwhj{Tmwz1JaG$g1C!wHU= zyYJ|jl1=&I_mQ|k_kmp@qtz#ICUc|*Pc^U(sNHrUNWMV=J3*1sUuBXn4R=a#9iAIxk)9*0-2Jw2eZ%sAk=x@Ide z2gPuz@c1wNnQG>l=5&_H9J#cC6b5_d6ug{8FTl~GPdmfRR>}()f{Gz2+uk_CC+5O1 zE^f8mYtA}fJ+dt)Gu(hOx$Qq9`b378R*`=Nc{9 zOMqzQ9T{N_N2C(76<=v#-QaZZ@;ssmcVXpRxZ=={z{Y4bLtRM(%{pKzBg4*aX>d>meHk|AbznCtp**dmBXeqhcH50^2S z5H<3$fmmJKY4HFubO!N7A_9v{1Z#g`F7_0Nawg|1KU5hor!;&AXR5yk{2g7SkbGvM zHXUCFf06|bKaI{y<(=qU`W}?z#}XluFna0v6F2zDB;?Tpi!>)IwNHssac0tr53C(L zy(GqG{@lRiExAUGISmDXjvMS@2V`79`Tx}?M|I}t@BElJG>od8CM zBAVSUCX~%hm%p|hG%Pr$6Ms)5DUv#$Yc*fZZ)dClB<73O3FFW3drG$9V49GzwT%dq zrqW9$HKL1`%24(b+k9)Nj9hH5Ms-GK_-!DouT@Fpz!{4bUtXhXVN%-Kktl^Ymz2!Ov? zy}AyHU4hzgyPB&Ow2p1$5q%Jd9JO@Cx0J$NNPSfLt2X1iX}3ygVH>Z#Oe|E*LOOgD zUrSZ-dMD{2Ka}^pN7vhvel1c6xO)WtzN@`}I{^frL8JNhUrn75tN&{p#xSB|xFH7k_H}kuP`1L)F?mpOg4&EyOT9CKv)oG>*JLzXODJU;N7)6>i8X zh!~$b^meo*PF0AS#Z=LSA`m*VM3~)hZ27W1cjRigq5EG?|XM7u}f@* zx2B@$I3=1>Twus#0o?S}(9S=J{_E~_72m7_90}h!v&KW!xh8p@9H+{Hk;)Y<(O~o+ zDBt(0k=I+Zy&UU1X90MrH3%5|;;j&p1(IVN5Kvm(OZYCg<}&NmQ{X#X(p86RCty|6 zxpxBY9(aH2*EQozerFYyD8A1g~^hKF~srzaafO;M{@->zIM`!z-#kCpuorhF! zv*;$-pquM-G#cB@D$l+FLcCc5-F6cW<};2P;P$~taLzmEWH-PooS_SI?VmeujVpgY>t<#uw^HyC?b>~tf3mltKU{%+Qd-d2-)MBCVaLVmwk zOZMsoSOuLc{Iv!8%kJEwr zz=5yfH~ZV5_|1BJ(i#3`Ad2G_;EtA!aNvJ&F}>Q`_b#6N{Dnuge2E-Hq^KnOjR+Tka{N6R=u0Ozv*}J%M`Y>LOA8w_1ZEI5^h964(J9ajW zH8r%pyTxX@6eW!^3n+WHZh$)Bx@duCb*Bc@BwvYvl9 zAc~p2%$&%H)Q+nzn1iIi$7uHjcH0|QKWTounb)9(X!P`7YqpVo6)SrlNUBO`uHcm7 zzdb5(CnchXxE-;?+HCk%89I?SjM=9PNLr=bl)QVN9>SK`v=1H?zj+*7#WlvvXeqoo zFC5)c5*gla|A;AWc0rJ?24>~H?(5_16cn^QucNmhu-RP)xl$d zBS{Bf-UUe9AxU4r`LC2^(xp4&^Py1}Ukz0XXhs04v>HE*sIAUq8Z}T=o{FA0zs>N& z#%<%DnqB8#rf^C226pdBW<}1#?KhtBoOTC=Z!kDm5R}sFD#dUv6-*z4= z{`&k>0{5l$n3v}ezYfIzbG=9Pjxim9?-+`qqZRwKnHtI<&mQ?wDoqY-;q_$_qIM>T zsh?>dm*A4eJ{}Q!5{wlSc^@=YxQREsS;@g9aw<*Yf%1Zlivxei7m6O%Xnux#euPe= zR4VlCn_pZ<^&gE4sN;mkqTYX-vg0cRhR<|3@UNI}^}<^HaJ^)pdCC~i68^g}@GANB z;|=6-o{fnc2-~R3jBh&l*z257Zm%vAVxN=L9Rg`4i7JiH zF}e6gcnQ{ky+{2o?I9h4aAHGOVxC1gp(>6JO7Pg2Evn=7whCFJA{c*tTB_Gk6wD7# z@5J2QP#YicX1N^_cnDXZU7sW5}K(Zd;nRoSN3jukZxSB z9d}v$zxG)f#^P-)9PmM(rmly(m#zGMcGrbvE}HG$^~UcHn2fAl(2GNcKYGJqqaPP zio0>P+u3y5o{xWU{H{NAnU9+@Bw00=UxxyP?p&j*c5`on!Ks7D>Tntw$s!25w%8-*kFhzV`NrH)XQdlPw$!~Q^ZW8&H!~PU1ow*_mduA zXHR#Zl|8fF7<%u>z#YS=&=~kTZ_rBs5PfrG6r)ehqBnn!r}cpl;bk(-xSF)Xa$xki zlz|bPnSfJjVfh(gM>D@7DQgJsdQ zBH`Gs4t{bn(}?ZR+0XqdAQt{tc>4!C{P2Xy{@{~=n$ z`MCrJQapbxvzg8yIA}Rr zVpd`pkq(B!HkrCaWL>mU{>-N9`Xq`Oww6x@mv?_B9d}Yb)QL_okiZaVEeQZu7K8LlbV6+br^ZA7CRn%=IuhSGcKC8*4gQ_$z!m8;%CwGW zZi-GIpheKs%zx+Q9PLTP8sxPZT5WOPM=+;y51zi+S=zJD`eL6Jw)%(8al5#>J3*ZK zcMX4Xm3~m+WPyT#iDX)wFkAO11h2(9M5EC`yps6PeQw|E8`z^GlBG!x_N%USh_^-p z!s2&1^w^>YG!u-TjeWKfDhIFORS{9|WQ_>#+pYS=0bpssxtpma_U-R>Mz-R$5intOiBo) zxRUhAtsDcNpc~lD^qC$s@(^B|ob6SrH%Ou+nr-w*WTaajzu~_6qFpO`3Oss+iRSMr z>Yp_gJkT-BqdGi{67pC2C}etB&aE}h#iz5PoPtBF!X#FU^LEE%tw@C`B82P? z9m9dQ+=Q&0fV;I@@KJ^0b@<|7B0A zec62!Nse5iK>^(_@uB24Ot4SgQ9^&P9L>*Q4D;lvFA$`n?r;H16stdj9Es)=upF(S zV{GIHR2i94wMgq}2=|s~rUh!=IJ&@yTQI|i zn04^(x8#7Q4>N%V(%7UHz^wKd;L?Q1sl^^p*9?368v8sUwMWA_xykngAXtBNaKExf z)J&2yoj6D*lR|sDs9d7Jb?(llNPy@nHT@yTg!fI7A%0d2NV-AanTK0BG&ejJ1i{-Y z{RWeCbU|*4p(sQqG93|+tW$i7fYB_ylp z0Q)oSz%Rg;?UTEd&kv|^>2-gxF5euOMl{FX-Oy1}T?bl6yY z^AxRys1_Ot?I4c@FFzxR_ji<07yCTMkH@X$2smp zK0pH))Cc2h+>0BRKL>!yBd?bKn~YofdbsHJD)I^fIM)p zgh4e^BtxVtDIurX1cjS3F3=9Y2_|oM)kUo*SBzi-BKetgu^@lfxj*tTpGTgBlDYkp z=Lff79Y@>km3h>?nFLiIt<)}Tu&9#jCC^?oaZRepP0Cw@zu#laK?|@&;ZsPcLdjDR z_qSlFdKOFzHo`Dw(EM|OhM?v;QeNGGpaFOlBKW4bU8g z#sl=OS})5N8=HSDEpdpXyjjH=WeB|J+hjGWzU$#JvF6Hj(vK(07uQ1EMl5w39NDow z92%<=V^l$=Fx?pa&dIJ}%ycBYf#Rl>h$UjpDbRA@kmflwv#0*xex(E$a&fCDpGw#) z8tx1FbN@J+=y!D^b%F1gYWC!GE&BubOFY)qZ*-mCz4?EwMpitMKr{F8cyeVJE+EcH z5`zSRVy}oR+DvHe0!qC1W<>o!N0gTopQil$5Fr|joWzPK9WP`?^5gImPC?~L@ zg9A?mPiiYCBjd=Wm7uoT=4EPGfv7=#Rn~r07GMQ$CZXy2>m|8jBaH7=TTXa6v3%$t zMqRImkQ9H84~cnYlXDeA)|^&=%xD2wi8!O`{6OTh4qgPVzZoG3ti9LIa zt%xFzp`_1Apb*GwdOfLY;IGzE{5?8DtXFZ&;{izQlgV!$cf+^PcV-Vt8B*$Go2JOK z=+9f6(oXPJA5om{+XL00OMK#$rHP)DV5Ef=J5GPI5aAVJwEHgxz13}-b#zrOraJ$r zd|^_%Uo;ClWMZV(eB> z1v$7ldUIakhkD1fjU;8n&-ATddtkrja|2KuOvWOYXoJV~AFX$i=Q4@sp{A6Y6$)m( zVzPe^sMjSy9v*>L${yH<;xNjjUOj?T7=?tN7({oe_I-ZSwd~`_9ek={vk%od%q>W{ zsWQRR!#YMSt33~wqMzz2aVLPE@8EuFM_p!%WmaWPLwo>{BGNQ5(fMHzwVM>&DaUP4 zFOnuXkFy+_|gDd>N_G|A7L$%x^(LY#FasPs3`9zYc<{j&;R65&(NS|=PO?{99&3N` zD6QY=^%3jV<|gSyMEMBudeu9wT{HLWvjNFlbq}fo5yD|6@VbOUP(`bBoUHwzkKZ`m z0;Z8X&mILDygc)z?aa4Ac+|9<3ksNGj6{%UTH}9onD6;K$$A+k=q^Kbl)vB%ZGSuJ zmV$S$$@V+)BDJ&XVvSj0xmHPGR`P#v`NF#%$rR#ZN>yjd&{7>z#g<-i2)YX6R~EWB zatAk0+wb|9zqvy_lnvb)9Sbn5H6Mxjn#+A@x|_&y3$Q?5DRE59MLBYtS^mee+0Ko` zYq68}qIv#8Y~37gWz5_K=FNElvSSwF76N@iF*D5uuZD@fr2Rd#cyq32z|C90l^^ z1o2d7AUK|@p9?EL`A0mAhIN0&-!EP1v#|^OnLF6?UTNmUyG?HfGyH5_e<^VUJ+=cV zJ_IC8h-!OW2aHwnPgFF#K2+Lf&vt~N*&pGw&_2wU@p`907Mm%^qbfx0SA0p}48)FV z!tmz1;gtQ8Pc#{<=)sp%Zqn4=4=ul|(Vw)}j8lQGEzv0+9-SByA_#wL=1PT{-A|Sk zlavL0Tfj*B&L9o~stL={h@P4kWX5AHG zo6i^wYImKi?iUtyIiL7`zczh#7lQIRSq8}`NiD@H#YJdgVQT9jUP2~R6;p;tVH+|^6fmgmZ<5^F!w2=&D4wA>5Gu#+qLUL!8 zgf$Jg$=IZ^g;4l_G8{kaP}XkrY>fBx>|4lAAyBdkiWuW6s85d@l22;fk(Be+@2(xx zM_&W)U6P+tH-~?qoF9rW9;1h5Kh2}r%ettFArI=NY84OR&%;Srv1Uk^&mxdeBZb75 zyFqDL`9tvSulTZ0`gEoPCRmdCRqblQH|BkRGyY0ztoeJBV9mZ6#S~1wC;NYxetj0iC|QO4+{9y4;g;5~wDBa8d}x3qYH^x2Mk4=f{~!@>F{p^p}Dt)(KV z=T1I)8A^+`R_?03)<@6xY~Btu9YH-8p|Y>kXptfiET%loz&_PisMgm(2|24YGeuzG zOtPN=t*?KY>lRa9V_&NdWNC!-P@jSxto#0$-O2a?X*?+Wq3&IBmh=~kurTAC_v$4| zvvEiv;EE@q4c5#t0fhVwyoeQ-x6~bY zYFc!G^O&{~VT}i5Z|oLR_*3ZqjZY|%V52B$9OCbeRi_n$4?>DQ^CaKtmQluS3r(M3zl!T>cXgK10)Dz(DdL3_kXO$bjUx~$GPUjgs3l=kcpjsxtWt! zn%|-bJx5<&{XEcwtBT_1K@`KUt+d36VPA9HB?0bB(TljmpUs$+c?FvWk?1i%oUlL# zj59e5AF)!JEBR5<=zjwEt1gNU;=zA^k;A4??`k|D@_s;M7j$hGyy%(CO>GW2A}DK=`2O{>Z?KC7wuR&R#!j0hs#O=+H8AFm$D!t z15aGxhp`!)<`sF0m^y6)+=2z8gwikFKH|DQ_4erVLP5L4=dfdckw9V8=I4I|9rz9a zU5V&%5l*2qgSdo&VMhx_z^t35=F(;ZBw8^%rg$U^oiDJi({ZrSV!<(MmrBfGTdN;IxZ6Sl;ANM?bQcyAr_k_E$^b}0Xmv^&0g{7= z96ih>H>s>Ui)|3KUL57t{my@7`zdh?{AM&~S`I#we=sa)JEVPQ*7*(y1y3gx7&#<2 z?L8WF;4hGFzU^DJOYt=dY^F7-wmY`s5Wf0flPbvz&?>PbZ_3hFO3Xdzjg z;B=xR!d8w*%x6BZU1(L$9ig@2l%b*$i-(Y5*Q%1W*7{C#W%#sa(GM**D7<$HM?OmMV>qJ>69Gl9I%Xsl? z!!Bi58XM-4m)&>1z7~2_3sLHlz}%=%0_yc@@!X&kjwUZFB#wC^{s#Wjv0HSe7RZ?K?Gaf0kt_e7j&aI6i;y%YiPhm6KMToQ625n zH?!Prc}=XmTU3LIDGhVQQ&~m%q{&gYoP_H_E(3UM{)8(;ke9F~Y#coul(>TnUBm@- zlZ;0bSGO1wfv0wO^t!Sjh=dEv>UHJ=8vXEyGl(959_d0VRg8bSt;4z-X?XoaHzM&# z!Jt5_IB(?zd$(4&A=U`dr0|{yOYhIbYE3E?Y8_8{fUFUhSLlfg2A&DhG~I2BZIH`Dlxm^j_|u{{iEi7_=G1!nt)2rf!nBMtRSos~9OpvD3~ zL>ty<3xbePMr@zt90vo31U7A88gm{vN5ysu{I zEs(<j`D7Re9;6Ryloh_`=w1ILy7(Ez|%fHOiaTVFYLQ;-sW zUz(l`on0z^ST!Szs*07LZIk;FNJ*t;!FpeU@apGRoW2xNYk-2?`*2p(m)*I!cng(r zuLR`cRo5>4{R2;Fixk}l=`pP#)vU{_c%(?~<8b;1@7%X2p_+r8i`o5H>dByJZInQx zV?BSgkqG$d$22s20zB2^GHv-IBk@s@X{8BOX%wKTh%ba1=!2pdJ8xv`!M2Z?W#RynDIsTC|=egtW^POe3B$S0~iT5)WV4JV{w0* zvBK}-ZOvC-cmaKoUB)aIf)m#Eh`^&aX?LRVF}(?;g$JKD8o0ggmNib+ah9cIK|Xac zWCIv*^8~DpT#cH$jFqV+G`n!0>Dm~WjyFdQ{84$X)8sL6TezNbP(~0El6bNIaP&E+ zJ31BV{T=kO8}+B{^AdiO%Gyxk=OlmEhb{lN9o^f!nut{Mx7BLA=F5p_#ttN;rWSsk zZcuEpV_)C({E;7PIfnZx3Gj^gcHA~BG5RoC$Ehq$`MCmAsC{vizlk_%vg-35AovUhAFw{kx693NyQBxxmA2|7))suhZ`2D>D zfTt(Pi^8GtpelgY^JPacj`(P1V)M6Qvg!6NX87AKK|48cb7C8y4Prj{Z&0iYM!%gG z6xpy8ucaCuwts0&a^7idP3{zUMx@?IQ;0kr%^2_e=<+Y5dJ(j^u(;Yyo4TtF21c~P zuA}sfd^efyYOA;n-)^&0ggk$pGPG|#D?PFaAPqEnTtJ}6dP@eMFcBS__5BO7U_Oe? zTBnjB1AU>`Sx!2JQbq6QLy1WMD+IqnI)KJUF=3&#Uijeg7rP-Vkl%)yOYhs^^6rbS z$8{pO{TxY{r0Z1$arshrjC9nb9@2)OXTLPXT9J%Ni7jh=NyNC0l|0xjD-}4vRmWp#FHr6su-j=Y* zd|BuyzxagK6a+Hv+u(n>t!rs(^BW%!khFZkUyuE1L~2ipYQ91j7odwi8Y7*F;K)45 zeGJ}p-~TXDbZ$p!8mItvv1Cn&li+(`+%BmmY9N~OD-bx;EkleCgF|Kj?oOI!N8>rR zKXzSfdM$Q3AU0yH=r;^V307qhV^Q=QNz5*4A@ zVvwVJz$CnR7N~P{jr99(wjBDkFTVNJ+aP^kI8>ynBGF^pV6zczn%y5lm>hC2(%LwT#t!`iD zj^*0tUHbM(T?%3(g)x2)yKV1Q^7JWTfUwiG!{aAYaDU`QWk0o~@@lfSKqvqs3zf4) zKdlXHR(puUfoau;jt_WF@K&@A8df&A75Ju=hzDVqRy%((Bwnb4R*xQ_{V`kmazOif*5Xg{bd+4ye} z2cvUD73J7yg)3OqlCY|dw9Tx+`ML&1O>>8{!He#fXmXz4&F-7wEJb?hfj1Du-8C%q>;fk4Mk<)*RX$5ncZbt@Wx9_38;`CRqW7c*8 zRfZR}K5|56qs756*x%$QVDAA49?&_?>A8s-tgkY(kbh3ezuQN9`WgG9oGWrswp2&O zxo+M`L^~jPFB70x%OtC}Cy6r}S?`SCTnW#<5_#ZMNZ{H~&FSst9oiNk$nz6CHr%Y0 zA^Cqj?~oNv9_}R%d~<>-=Nry6#ASV8tIa_Y-kQ*Ciz<(v<8h6;Gb$FSS?04nYNtEG z2I{PG{PZ?+xdT~Om`NeXXjtBsKAmWf=X-|BZ$pC|1_YXFN{`FCVBvTISaaMB({Tbd z*}F7s-Z_w^s*Ty$PUY{}(VcCUS-qqqWi@~KS1MnHZ^B=iesaDa%I?(tVNV0r2?p5L z5igKvubG*b)f|Dl&R)5}qF2;S)D&JGUA;av>k}nL6m<+Mqcf3e#Ohi1fX9Zx*vec#yc_vqaH2InqsVkM^io z(v+WkhA|DRZP?v=3G((2auGAmw#u~x@V#o>DWrE@!RdTqO{l{F=IL9XUSebDuSSp0 zUh{=tt0DR&tF%Tf=Xf15N+CV#?lx^}tp3fJy5hx;d*LNCJ=E>y!KQs8OTowOB-H8u-O z+4a~R^N9barNh9E8Ve4}gjdXjL}6OP)=*GPL|Q|_DnhDZBmBchuV5u%v$TKMv5Z+) zC3`Es1OcQMIlnfUeaQ7f5m;+KWe%lYrS+tP0}bvMneXu92;^Og)Co;2MeOJOWd{d? z7P6JTT~}H8n6IqD&-?S!(In8weEro|13`&KqXiL0fMK?9^O851B+^8Azj~?G&ip^x zorSGH$6&~YCbO8jU>AHmB}#uv>SzmOxn|Y-`>+=y>f>8m!Qd?D82!bChQ3(5r|Kp- z!F2T%*^lUjRST61fbr_vQbgrJRdVLe@eEInLjoOj8r&)0RAQTd{ z@~(#B*$&bCCgqSVdFUK=BbEBSr5^?#9 zT3}=+l+O`pqKQ$lMVlq@p_Dk2cYY4N!B4KBwGXO>wfb^m!+i7fOknuE?c;K|0gdc> zP_MKExLOuoW88bu1aXCec}bIez@p(wX|SpfTzB0-+XR1EjsM3?e8BIP`XQk+s|iXn zr(24Hw(*c2tB61A3hZj_^E3B*KWvmEM*gPXe@02`>QTh=Y?k~N;%?G08%U?EjB$Uv zCoha@7{yR@*!Hm`Itr8iCi;EP=xZ~4_q8Fd5zc(aVi$=Od~K-F_Y3O7lG$4!b{|7_ z?`#{0VDEodnQ$V?wHW0`7g)38$_)9uA-v{c8{Gk@3J{rTl|9$%wAS5q<_V#y&M$|u zxWO04%vv*~ZG|ct9J>4`gpdFA!r}DH&4!V zyGEo&^a*Y7%SzPXM(9R|5IC9|i~iWEjJ0gu$_9VIb)1R$K}U1ZltIfn~XmHX*$0+qXghW=Kq79gMcZc;j62WtlspE$8`KTia50AqxQQ}40LySLX^+5nd0L&J~Mx;>rqq3!+n2Mmbb@by3QlX?Scnn#1Bu7#!@(kF5;I) zIf}gs+2nQ$oKy6+4QB5wR1{fB0{hwR<6nXPY{v*iv|e)L?I41!E!&1Su+KjGl9W!# z9GRR2)1C3VCOQMi%1x09eKAR7I2|Xrpi4H0WnQFvwr!KZxWA1$w0+HWVRx?EedB+| z6}i<)g)sGiKyjH?dr5*zr#GX0#J9O?YE->~C9hkfvWvKJ=KU5BIXJ!pbMF(DscHeh z8-EZ91c5#VP{#+k>ER7EyZPvK!jx@*oI*&H89|_+{kfa>x@mFb$n6oR>|tJ?)$KPN z!w7<-ahSyw`*J1h8yG$+#LQ@9LLz@IC4a~T5pT2GMw)?}IU|M@i__qB2`V(Pg@>TP z^@6~Wtf#iMNZ#$YpFWzpLyzS`5wQ+9ST}mu6i)c3O|}t41|aJJG!d*;T28Nin-xQn zq_~T_qGX2Y%D+ysC^r_Y&@YcHY&iO@A56>f6*Lm+Cr+R9^oPuA?$+X2a#nvD`&qql zUubty!KKh%Sau*+TB=ho15n+aB4I*nWTVN#JJ1*-*fDf^2Nx-k1!*J#qf;wd91fBf zOsk7RE@BbB(F47PB}L5>6OqQ0zk)fd^J1g7IS=g5o~6(hG62>`tx{z6VLqlT%wZ7e z_ezL1+cR_CN|KM8ZMfov`w)L?+HYre?L?qI)Tu*@yS^)h^D$V2YBdH1^x816y>`mb zcfOopH0Wj9p!%mKt3`p&ZH)J*1T)rHt2E!2IK@qpw>c4y8AtQ`69@y#u{hS!ThiSr zX{(75u!wuG5Rf6fW=wCRZqne{yJZ3W=OZ|;zZe3LD`{Z_rdos4e*J&=UtayyupY(K zSfloh1LxS#T=n)Z0pI7%(JAIIwYB--qC9UAi6L1k!!#QSsL49E5m#X;R<2A5gzOg+ zt|NqiW=eqAsY;PiZcxvh|Dl~udp#~}Yfy_ujF3CdyPULJ;#fF#0HU&9~Xgh;0HZYq7v1Q*r zzMqthj%q~@S8iFy`+A#LBPocXzrwv<2b?*PH*S!|K>huNh86!njspeqxJxP(#PsBl zU`K3YzhF?{p{Y`WhFLdGP~K};kOkJ)^IWMz-KqJa9%(J_SnYp88W0G`90|A+>T8LC zSl^n!i46diZ5j;QHy{r-FQc$tMUCmqR2)0O{FYIdCf)M}5pnewZg1*rj3ybbD3M7h z>=N;lr?||87Z{R1Z#mBXOnE~iG4}^%Q((A*ejRXqE2d8mX+c5EIA?0H>TH(S8d#hG zJ^dg@sd3k$no@r?aBsm$VV6g?7txoQ?aMjkw<9^3ijXmQPImto*dLRsYC2;Z_+<5KM_L7Z*)0~e7r4Pr{ zl4-mS!dGwL&^F*Li~EdKMOulPpXehb4H8Z!#Won-UZ;P*Bf2wn`{*I{OFeM_#RtE3qDTKxq=y0+)WN#>m2#9HTQQ&Pg8SM$rx_}&yH&h&q8r(@PiM}zt3 z_bVXYSoD7xCZTV=(X0<9L!5Wt1v!Y|rBp_ol>zDT-=R$Mlv(+WANEa)VCszh{>I{j zIrp%U-p=R0Wz$C?mT)Zi%&Hv}A2JUZ~hSP#Q4fcPJJ(^QTyU13Xq{aWpLp@m5W%dJq z=@*+1d#IP&wAkB!tH8ZBeP}XP{g~?6-P|NZQ9gG}fXGxuo-BBZGg`)p;y1A5M%$?J z3SG0Jo=tT{tO7~K_LmmC1F-*6+>jAzde+)r+K5%D0FV5(G3ozQh9ee!rK@IU(4~+o z<;Q;~k4#Zjo@E>#gZXK8@2bN+=yM?YnG3vc*yz;T72@e4M?J9z>@}5eE`nO*1$^IA zN|o;9aqXTfExyI{R=g;2189ZHG&cqL zbdTq^7EgNPnycmH^rB=)C1iHR{#b@-QqLWgml zQN$v~D=n@z=JPv&Vm$J}m?%}0O)zJp^v#wgfMXjyRNT>Nyc3icmVl&?{Imqo2F!o{ z$3g;pj-rH6!KXu^!eDISbO(qAe>MXTTAn8ISTJA zWvEJShkeD(_yzXpG5QZGn%B$OKs>mPD0?M(i_s)8<8$r0ZE+lIL+t~{_g%)=XA5g$req8bT>EFwANFX(>T?5xfIW6zG*R%a?cLqF@$~VrCv&T(Ws&B_lJhYlX8KyaUbHcYIx^4h1$Q=1}$OK#b4x5?P`9f%d^9 z`%uQw34B36AkxsS=ErWImsn^;{+&__Bc(s+$(S29Cc*}+FGEgK^CW)=M6kQ53UaJu zEA6WAR?>^oLg%+DV7qtN0`7&NvUhM4MMpcE;^PgyprO&ZP#G(372A=nFx%u9xhbnu zI=?ujmiRWkI%-JfOs0JD%|FI*H|x%8CXdJpo?AgZ4!Fs9*5T61&HQNlko1N-rI0lT z7@KJvPJBu{)Xf7xOWS|PR4x(v(M^np_iE)aNF}MrIV9tiwkPSZ7F!k$5JGirwCQa6 z_V8+BDe6v%SZd=|7|_9L=okZ1T~(~jA=S%EIm}M?+}P-r^M*b!e0RWB>D0sG!QP|E zdj+$v3?zZ(=HCf2!u1Hu`+hQGzAa{atMeu69QPt{d?Nlxl%!xQVX z{(qYLg2cMqnyBbrFe{cn=-?)4=)Jyu%5;X99X+IZQo2bgQwU4xQZZN(c>fc8-Tg{y z7|hvtorlu3i^qR~>5)rWb|AIJ(RZr9ctLeJnhYrkBQs!7(fDrBO&QEP%&gDYBf?Y* zgi^e_f#N)bOR86?qqlOBaaP)JG5k?JN2J?EjPeX0rWlfHGF|dmyW>uG36I0vtv5;! zZHmo_5jDMcn=&mP^Ycy@I6`wf-z3OW%6f>+hRYS3%;bOB*WrcnvN8@9jnjYXY(8W! zOjhFaJoJ?`hu7EoN9pD86wWU^E#h0e@}Ynmx7-trx2MS&6YXM3pG-fxx;0PipGqG( zxk`VQ!OQBFs z-DG!6&pch{8egZNM(K)b$0}LaYir-47keFvfq8m!)T=1jRZMGwb5VfK;8Uw?I7hb+ zzsB15ka4hnl#qv9e+M4{S@}mGf#-X^1yz*RmJWaY;1WmVoF#tR_yH0z)4JE+r2j0c%N5nf zoi#RpEh~newWXyBbpC6An_^aJWq?I*zliz8KdiHWVPRct!sIa5(qrJ~Z#8NmLIm3dw-PT)_f6zC$hLtI z=kxZXS?W9pFmH*xpCABqsDB4Xoj;5au0%E%vb(kLm%(R zDvt`~8~J>u3$ZQNjxV5U_DCBF9TD_?NFZ*opPOoOuT{+zB*%mR*OeItGb@4~O>tBlIp z?iNkPs&lpGz0MJrJ#`BvC&@66ExUK1#i=?EJIVI24RX-fKV+Mnx|YNnjWO7Nf@3eX zT}?2T;j^0*pwXU;R!Y8ym|3am^M|bXtYX#?%5-s0r3VZb{+V0GAsI0VN!t_2rF_h= zu2Ua%HjBwz43QXmi%JlD{|=${DZu|f)-0uXek=QetzIN(`#E&sk|oRlNk-`l8RnzxP@fGQ-LOwXExHSt5qbhqJk zM(csH5&er24J3b;S(rUW+M;h+y&lNFLK&YCz06NZ;S7p|_%10lX#h}vmK)g)|7fb< zyNx;T5WCxhQt|tI8ExdZovFY&sC7e&Z7~;OTITR#xhaI<(x&TwxWN~E&wPHq$H#G> zuZP_Gj%Acu0=&3}ju1_458RLl{3e93*OnS7H{OcvdrPvCs28^GW0aQ&)* z4_n!T={YAGdiU2mXOX;5WE@r~gN|dzSOfEUgSH3n^Ow(lVRy8f`&myjTn0{u0lek+ zBr1}Dv$!)X{YUzzdeA6*h1EjkFr3g>7%TqMAYr{no!K^m(d*WK!x|vpnd%p=Mo$U= za8U>s5A!izdk*e0A@lNQofD4ovtb9s4dNLX_hXdTN7EujgCpKQ?yP_{_4^EAz$m8G zjgW)}RZS3YQv;h$+HMAy)!?09$)VKFR`LT365J&yfr9S39(I~pd?F3_zSYgJEZ#Hn z50a*E9pdD@uOg{`p^#;Pr(O9a!dyMc!if&q2#?Lcx$RQ%7lOBH_Z^*bay^n1rbA<0 zBvd1#3}sD3j4Hec!NM}4m0WIwOg6RCifB?t`f>QkhEocknN)1N=lY`=GG4}Kj$o7P zYRjNzHDGDrQBq>M$Wiu(#7mJnN>yA8w_pDi^om-FO_5N4H6I=dzCy&(O1?0wrPiF! zWCSlDs(D|mWydhJl>H{>p;65X3!+r^D;E8HQ^oQi(?DH~G_ifaOvY#^xV~&GM|Ut3 z+_N>Q6p*DwXWhO?5FAorQNfx$NBf2Bw_G2kwpI#Iq#VD96~orEbqamA2Y@o#{w-Zy ze)mh+mA%S;lv?k%opr(Y0&V(*gfgJiz?SUoIwJx0SOWcavh8`xH%RNs;~nQ3mT(2Q zPMn0v*g`@6n-2XCl%e&}BbGBiUz|5Q$N95t$v<{palyJoD-PD?0^S&I)Y0iOw;4$I z<<6f;qC%}%)fg%IssJ(6-^n_~RU(?I>zTw`>RZ=;_8J^gQtZ9_yFLCrl;%P)dugts zRkAsVgSm0T|Je&^pN1qupR@bQ7-LjgHgXVHIY zuCi@$^}e7EBus&x!gkd8ePk)~qoW!Nkm{~~>+vm$>nv~#)5$AY4dWi8hHkLpf!pSA zl#@`5+`~{idYP-ps*nT@+nE-*S!!2iOey|Pa9(76co((jLp~^wHfjTXn@q2)+{v(L z?3mqiz9`9@Yk^1iaPzAOwU{P5GEQnstY^&lKO#n0&X7bH{ zjU)@)muT@WEBBUVm&!~VE0IiCX~nK@!+@I9E8KKeaSGE!ybmI`Apn*TZ@ z7ht^Bg9+=VGqfiNFNf^`Nw~nSD)vfD91Wxc!I_>$B~N*^Qf)J@NBrGZO`cT@%`kmU z%<3b;#x|w=&M?PC7H5ZJlAw$>wNh(;k_za-eLE2kU#~~yNTDA;2&$;W2eb?O?zM_M z?WEOF&c-jxWZ9$V%0LDh)@$HKuZa?h@fg+?TCrX(O6^iUNzg81!j;SuoQIbmZhdqzc?>+zwZot6!o}aHMk@W@yeIwXk+b1^}MRaU>K0h6Y<_xkAG6 z{vG3SWe-6P$N-)}bMv$(*!>A+YMWNI{<}j+;@!0sjYXQ}5jv9<4?PP=fOOL0xv8=J zf8)1>5y!p{%LGT!wSoUXW|c~Ri|6TS_F3lkP2nF#7N?Xt5}Ga6;fKmpnqOoPbRuDH zFc6qQIG3!S(`HTDk-JW?4OW$fd_Or(>x1><`w#Wr<_@K66rIWXs-ZvJ?(@ zIY9?1=0p5Gu8-0ubkb?nwjWYrtPWapsU+2jR1|Od?8(RxOCbxYH%o(2kcXwp$0S*FrRg$B zT{^4hLAKJuU@{~57k#JzRy1>W%us8I{4FpiDps58{r%TymhF9i;&n4(aB}b!Gd#1H zH4wFSxRai3Rnk1fTM933xd~(gzOo5lPv~j1?0~l+e}=tR9I#1jW!jDa=5*Bb=&#D% z;sIfvku5`%W_`%B>ote>Br#%mZobr3*4u_8Ia+h{kYFVzKIXKGWYs#TO>9^|9U&R_ zsa0?GAZlRy#=#DM4);_ulnYsPkR@6V3zsc+vD8F+kokpR=f4$lC&GJRw4#aDX6x|P?pueXVW{6KLfb<@MPDwL%UorSA^@7tHHpC{pk0bQFE)b z)h0vygS#rprjq?=-%zZlCx)VeG5!w-hEG!V0i)w+7;$Z>(seielh{=|=ZhkQ>4B#a z&5Ajk-Oz4-erNWV&HI&!yedbw87XP|3|$M)x{u^mp93T#`!BV;2C?b084q@!(q6;f z;$49y-7EqpCE48%3g(;~)V4qyH5eq%a zO*6unKV2cd$$`y--#Zri?K`L!Y)`D$(rk(Zhe)1{SGWn99(#xT+>JYG8^4S!37g*`x9lhPO~3=@Vwz_rn8^?NA92n_98CE$_ogMjzC|n(wwps}r9UK~gV}h?-2r{1W1P{%PMQFT28lqI zItlyG+|Y7e_Q+lfBQx^{q&-SQor4SLtoIB=3R-#uE4=kWv42JAJ_}KQdOsn}2HRL0 z_|5VS{7jG($x48{p(%A-?C%_TPB30(l5DWK2OmJ7s*%GNedQ2Bp1jmK=D7eVd`p>6 z+~MwLmVPkZHpxTiIF`}zyxFB8f4#Op?=6jT3=v%<%V+1wdTp;`S?X)xaK(prxtrG;}q1KdP`Lq|H3fuwG{|MM0GrWrqILH{dxB6E*}uKY6GyGTLA zH-ko!p^JWZ+WPhvnfP(&*lNwAX`fT{w2^d{>hA0X;A9a5qXtnSi}r(8W=FL5uGE^} z<$#5P{>F0H9=R9@Vc}X9ia$?%a;N2}3_!Z$K z4ekl(AZZQGH(sQCjZJZ&@G)x&Z*LpDJ7mO@!+d+yj2b{pwgslLvK#IPi<1 z{yd-kdU);QWA=}>bQKqd6;=6V>-#lUQBpZR6a_{yfBndRlv_-iVMG&$$ct@sFu{4N z6*7MgfGTZBi+J*DvomIj!N_T%$k#9ir0j)R96aR}wyXDA6 z9M=F}bT-es&=5UsFFem!!D6ZYZ5=v{@iVip_3);F8jTBGkKNK?GiwQs&JyHhBiLr= zB-tpZSl76J9-BF8@`12wfc&PZ^d*o*son@*dgeFd8}i@DH+VM6DFCDVR3~&5K_?og zA~l8El2^RdYtZP?Fj z!Ma%OK#cT17^2#?3*oV3AT!#X$mgpTJPNat{)PL0{6oy-{kGLJA??a9@QqLtiVW8J z(*g?1<_`^cp|3QIZaQ=OO-TB10L-A`fIia&V$`MAH&ST@eDZq^X=ICfOmEKs9h!q5 z_T&+&-#z3ZIyS|rY`jzNxP}t!1lM5EsDM`%QN`x^qkV`q&LV^DQ$oJ~T$(Y)3%XGu z?wDSGy719>w-E^Bj(uX+NNSXJ^*UcNM73>6^yWY5)Bb+YKSpnN4CCniianqcw)1c; z=s!+e_sm>bVp|vpPJKAtUEx>)d@fyxP*W_$%$~0@d$}?;Yq=ZGA#(}THVxdQqhty8 z;m*s^we9mUPpQuOe>sOnLtwQ81#4*7dlA5Y0^qE7DL6!~yd>+AxSZj*uQ%lHA46S& zNXbFnL5RrA2X6-!OfWM}U?u4kL;b9_QGBxfaEa-0o)*mf8Y9oUg^lNdIelZeyt3K| zy&$c~$(Nj>CG+dj)54whg#96L_vTqW~3DOo!)0uA3{b!ca8aLvVetBpoZ`u@Syd+pE4y@b*#A*Ff z*y&e{8}ICu(u_Ax2;}ResMzRo5Bwo3%6EUN+kb`1kk|>K%nn~ z#b)Lym(iUGaDANcMh0SUSQxtmpL3pn9t;0su1SvkX4O^tN~LCv25QX7T@{3g_nmYpUe{Yz;cqaBj-ET7|zUKc3HoF@Vd3m zjwRo#>H`!>;n)Q8XN(l~D!OZC$o_B$Lu>_3m|f*sjfMcl>hxXH&2#Y49q+8ZXO=6U zUu&}N8LTjvt7ZqFHUo=w%l{D{`iF>8Lle(!>&NSXP&6M_DskDFv(bIh4+Y4jt{MYs zWRkNeP{=7N3r$ZSx-s{t28)J&*IBU#NA-$I_N+mXx2r8vTP~=_Z6CP&fxr!y1kT)= za=g4Ke%n)jMK7 zrD1@}u$(Sf`5N&nXvbe8zhz3rM0}b0Vb0sD=ZYtg_~^_RiyP^MqecaP!NaMzk6o08 zpCc*5*H?^ta}4&^&!$-gztQgcW*0Agx`IkV)Lq-(5nP(&WHf=Y=ZBxG%KRwnR#{8v zwi%nZS?9$@wT*tSrB=)Hd~FmT!nK~V=|kx5x!miJ@*~1?DRSAPOQBpOZ_N2cpk6Nd z&kJE9jj1fbzoagalt7Gs?{3RE^Wz@D4xfx;*4Do8_L^$#DQqJ4q;^Xqi*c;;j4ksWwF8!X+iNhizh?YRuu8Zf z@ioDf#rULPTDk&l4lwT+G%>CB`md<|J9fm!iq#eO?DT*?2mL-KTF_NYWQ9A$L*-<8 zE;n)etsEn?-e>K9r6(isg)c!2R}ABg{CBLMSd5A5(DYn%+z=w<*@AJn7a`0t+(fDk_OUAsSYzN5yZy)o_I&12H@-EvlE&+)wL_tc*qW-4!dDyOBv0JwxjbyM0Q4wF}UO5a_08lt_cLu5;dPG%!V{Q;H3u?|@Tnn>dCCE@h zGu4bjF>EXhQ0Nmk$$XSUt;{0{K$6jKlChy^*6<0*5JRYI4iLH8Bt3LiS^%YBFRryh zQ+i6hpJW9*NT9qr*-li|jL+-_PD*6r&lc$GhJXyOFe-)Eq&2k{&9|)xLLIRAep~_a z>vhNGq&ggbJ4v57^PxzjqabAeimA5uCqzRu8B+>7I{JD%xh50>g1>A6;mh^0W|5DB zctS)-d3K5{h7r0$^bDPPl3-?`y5~JSHzGFLa{$()jAq6AOy1Y6vTHp2i{L_Q zcn6S1Fg*0;$M)j9lX){vv3Iw+pn+y|ha|1h;T=PIVwzRIsF%WUfg&6zr!jxC*BsW= zZ_bWc?0sK~0N#Ca6GaN#Y2RX6b$OU*dP2wsNObqBMETiP3|D4M=R%_;*PiYOuavF})*~y`@ckW}u z9!f2ZQm0xIh|7jLqyJNTRZW)zcmT6kK~v#<^fD!?yr_qljNff_?icc!G1QeK3s0T* z%dIVIaw|i^*7SPN?+~5vXa?SjM#=hb@xcLq(zJk3Y3R}l8rVYxYvW_2GU=+k}oR;>!KeBlCm$0z-g0BIfP z$Eh9K`AWMTx#B{A1gw?7-p2gjIGcf+DxO&4<8>67XF`m$RX9g_FK!iBtN-ugL?;<- zJNx;iWH1=c#o{)Neh5G28TMpmhE9dIv6$hLG%-)ODo{?v=cuq?tpi3RQVeTt*Qh+);xJg1W zp_fN(aHrUP6+-um8xX4U91=}`OKuDrROw3uFwt%zRbxdVpw~y{U z@}5>`n&q4}_@=n6b(NJ(l}57|L`&vm;>r;l69+7vzeRL%zurW+L99VeoouMx6lMkw z${yjYrMV$Xk+s3rD|CLbE_)j17xR0DSzJUJ{psuS=`Z_6=F@p~*=_!RgmCKrz7`Ip zQ5=r9W=t^D&nO+%b21zaAM?hs@3l{z=J@0RSVPG24aBFaSmFUTaqp#m>U!~qSyy3x^9&He6HIAU1kEjZN;AZiIR z-V{U#tzX@eZ{@((g1?|TD3L8SzoC#fLPdyp8{Eiw4WAi^v)uiZE-A<#Si0k<+iQ-Z zfA6sahS21i#oA$iSl`=l} z+145#3Vn*ZfZ198`&f(1h9F{~2?5+)7elaQXYkN)yd9Q*P1;#*t(3e2+G<{Wj}mx0 z4SMGNKM|A4;;N#T?Av!uZVGtlH*{P(SYJYNDs8h6ISAEGXaF|C0ym9%RH=ht|GMvSQN zK15Z@2DuDau?&5|Sg>FW@d0_#j1oI;1aaDth&aR@AQfTM{xCHGi*MM0#I`>N*RFUd zGH(7gs+YtBY;0HB47?V}+ z%OD}-NVZkn!2$d^>h0oW&b76JA>GlsOL9K{qlWN$IyC*YTJKNMbLi^BLa@h1eIpAK zB%x$~TA1EwoD3X}Eeiz6zDv`);Ok9QrF~x3XOgTKzJLOWrlqWr?%PZ$^5=frU~_h{ z-J}BEvv-2jP_gw8mr{e_Is4&rM%kSKkVOI_)cgSHMw@5+M|p_E))B zG7Cv3`5E7=xNOI{4KJt;knYBQqm6(i7k#aN7?z@)T&jTjSTEU5O{=w%uq_n3rz$&< z1XR$$AW^bPBS?r&Z0ln?muGGvrNY}p<~TZA1f&#jza8de(tm8A%@ms@+F{g&hO8(p z*WPQ89NTB}v!3%Lo{r$y-b;CE?1&BMgJsfgb~y>Stm~n~$XbYt%(~99>e~MFDQ)S0 z5<*?Vh9^IoTPz)HnC?fgYKNT}G|f+tZ`pwm&CQPHpGKcr!AfxEyt}67>X^qUYx3Ah z{eUE@#TA(TyC89j-ZLnwq&+%R(#P?xTy*B7zOBs(t2oN7{R*4fV{RBYKCbsu$eC~W zRg0q#2l0z-Zs|-&P!_^1TTgp*(E;Co;fFd(E60Yao4^k0NF}FKE!gJB1g|H*PIp5+ z-M6XL!-!KtK}+)jPl1vN6}p_!jW}ifYMiAOUEr*~ASD0wyjE*AnMa-Rru5H$P;#6Q zd2&4%?x^FXdSWSQ2AP!760sxwCzNs%)TyK1S|ug4DzK3URv&J#;)3IjW(&vj zAr2Ypsp7Qe?Tb=)vwoF`l(FT@c=^zn@}+%~5QB&dCB_!kiehNigg8IQV9BaMUP`Km zRLqEEXiR<AAii;uOiNzq;hE#Z#q)#XRe8H4YJ)lkny4R7M-?y}AbbHR zlT3{RYR>$LP16PmS%-Kr4tW6B}AIf6_V z*I7#%t?Uw;p7N;cDS*&5xBJkE|YG zDJ!0~!6du;wYUs#HTeffy9QBRz8hAuH>t1Et{nUqN+(vUF*zqRClBm-84p?)dvd0T06Rp^E`Dtta; zyp{@u?=-y$kA1&?hh^cwCkKoF))EhXUQ|Wp;CR*@2}MP@MX8G@^{#GNDk)tm4D}E; z^@XdW!Mx?hJ>EMZLa3(#xr*Kp(Lawl1JiLo3weRlkfHiTD}KeTg3ad5?)XPJ>4WyP zQ)=GQ+X~{?f!35n9?Fb1UYWLWi~)1{KREW~(FkdKBd>_qP*%pDI4+sAeQf*-j zpYs_mYVVlYYoC94*@EieD@J6o0;%(QnCs-QLKhQF`D+aQ0)@GuXF^3h?_W(K%F_t& zXEjJaL^m^knRCGcnK&&HivC;Z)|_PJA=1V7wwa_!_~qUs#ew=VK;EYOT!Ww`0{~4+ zJ=ndLUbc#%tCUF2(OY^&)81QVV4$BA^!xaQ0+k~~T|;YsnNrxONs}y|I&1cJ5(eMm8?p|C z3dFIxnYli33Y1_p=3didoiy3#gBd)C`B;Y+6*%v1x+-bl)DzBO)1EEbQ&;Pct}X&N zqk7%g^&VSMlPq^$zHNIl>LH3NYA0?ZIeleJJFF?N(zOT`VLiioPeqm3GFIVZC#NGZ zpe3Pyh@e@*UrDewW8%+58l0+CI4c{T9V!c)EAaKj2CkdU*Cml=&H0PwJWBXggQYC< znsen^SL+Gn|2Ua`0h~MN>OXak_y{ELx5`1>pjjgtG8C>FB?EViTRX1UHa31Q0VZQ} zrQ%pg$GHSakcwHaMi9F@o+kIjj%mOa=>nSiAt&}ru_U03NA+1hbDdk3hzEHf7I>F-P( z`&n56Po2r&uu9hnH0Ih`zLl4zNF17biOCNXNMsySo_Iw|~4ImIihX?s8p zOXPv1-*HMU758YlS8KrYqHi-SFDLbjzMkyI_r3t+Lp5suI@O&|d3C*iw;A z(TXwQ2}@(RPH9heNr_80Y!;S(Yr_w4=*}EbPE?B`6$WPT20}7j*qnH^0?1in74+7E93Jr1fZ)k?apvDHyH7)%YvW83tA-_0Cjgt1_*x29%E}(hs zl?(|rFl40wa4RoC??A2(b_mg{@R`=$(!+VVf!%o_MOv(l-vFQ;mBEXDG`}(TkQ9rR z)tQ<7N}wRux}UmK!Vb`lG7_z|LEl2-q|mn9|9`DUuB(Rw<9N{uy?KyExsv4Kn+G`V zlf_?Imu)Q-+pxpE+|~@5YJTH88SVGw%xW3nQlfX-p+qNx#K~ED4>BMl3HK0UM zz~zDs>Iu^MHaK)N<_92+x@|i_HVWDiE|&iN@Swch-&8U`eD8Ujkp%nCUS8o7qB8W( z9$LE1E2>5N-G~dD%~vdNTo_LlHPoFH0gJ_3#pad`$+z;&Z(yY*X7xt&Qf@b!*1eBF zU=Cc!KL==Zp$ij#RCc4{fIeh-ks)G1hG_8<2V1OR6C{{>KG6!Kemv6A#qQ|xx?K;V z{8tO7u{oYfMMeJp$itWuqjr6Y1R($8THK#q`daH_-I?RX-40(Rb7Y_UCCN89KijRm5B zq%z@)1Q-F{YZ0`33WLvwuvQ%^bwb0GQsNf7m4sitY@pvh@RoXN5S=dWI8d+wc&Gme zwVfHP6F`E05OwSmm$_3%EvOGBRQqRySHoWEIG+7jiD8XRSrAwhP0;)H;{Z=|ZFNTW zd z?#KvfxNhzTY=$+Q!fkz)sAx6I6XtYsN;|U*HHd3}dYkm```mc1j!EuZ0*dYJVo#1s1xOt@zG zzeUL8Pv7i6=Q&$3t%ng>K3NjtMK_=KwkU}<4iL8HyTk$iAhm~T%!r&3ZtaoM^5G=@ zIvp>65}TmV6SAVL>G&%9^I*kqHGL$j8M1&n#Ke!%WzGybLSi$H6bI>q02LC1e=GCN z1`sI8FEu#`hIhHmPM1s^?v_Ch03Lda*h38Cba?Ij{Tx1SMTpG6PFSxL#_fzRDFJO` zXluAVw%OgzgDXj6>=q+=n&Z;;O`502*qr=M(yOXwpkJtK`7I!&ZJ%Z`hje+nuuyh zrBNH$Q3dCgS|MbBAwuCwQa{jU7MYrELrlqeTqTWz7}zPUkHJ)cJbCw(Fk>!t-eb|3 z>f!*l(DB%XjDFs!!F$?7tN!OXtIjQd>?Nrc z3}HYx$j4dpjAcwZmN?~t^`Q_{f1M8jazPcMPIksP_YU`d;^Xref-@ltia&RG+=Yoj z{{PO6u<3U+Q~M1R@2=&@_~W<#PxL$l10FQ$zSnG{mL9uEiy^p}Hyx+Pb-bkSz?uJ{ zn|S+VApV8L&y0?(Gb_|{`AM38C<-{1bYs`TD9%R*o;EZIWAa^5ex0e8yZNwkdOa1x z#Z0@9*rqWQC~VT-4>LB*pFc*@6B`aqn(C+0L~&-ex-imnekcygNA@};;n)IK`6tC5 zbG4%3`vH5nO2vm4Remy#9yd-PIwH#$aF>KUB9erJdt%``Vqx;768wmNKmAo3tJNm= z0ta>n7318!5kz+1Y(xZwU7D@h5`VAO2oCA0S*=>8xqo?d%E-=2u#Ic zGgz$NAJ5=rM5ao$d3laA7^kCRchxW$kZjR?tmbA*Z3u0;_AV!LgugbOp38ETBeRKZ z5HB2NJ!LDoHe%m)aI-XjnTfcKGtK`Gd3ORA%{>A4==Z|xF{Vk$1CXwQq3D*-M6Rd;t{z0^Fx@?IduDpyT}X6lH3(8(0^b*pT5Hc= zA(IN1dUSaL+PT7DfT+6P`s=5txz9NpFccLhHy00X(&UVAbOpLb1o5a>VNj6DhNDWN zjVX|JHlZy+=CHSP{AAsUtNgzWU%*YfN%bCUnrFj9^DO#*(ICtW1_9L;Dc&?^ zP236)HN&aj=c_b%geW1{%r7wXcDYSu5${L2j)f=@`Z{ba(?l<48ckDw%Lq??M_oP1 zxQEehnN$XUvR)7+9V@!nG0lALxZ1kC_tq4=WeEEvx&t1L%^ScmCzrcM+4WMYlhA<8 zHVua{O5wH84*hL{8UP}klU2GUk=eh#W_sMjn~6sOD&@J;PD?X&6VRDkNRxcfqU

r^wP#ELKfmH47c?@)d`;8>9>-T7P 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 G1X)_EKz3CC delta 71310 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 diff --git a/results/validation.md b/results/validation.md index 322f600..c765228 100644 --- a/results/validation.md +++ b/results/validation.md @@ -250,7 +250,6 @@ | [4rWn](4rWn.txt) | v0.9.39 Hardkernel ODROID-N2Plus | 0%/0% | 3.7Gi/3.4Gi | X | X | X | X | 1% | 0% | [check log](4rWn.txt) | | [4sNe](4sNe.txt) | v0.9.40 Radxa ROCK Pi S | 0%/0% | 474Mi/330Mi | | | | | 5% | 2% | [check log](4sNe.txt) | | [4tjq](4tjq.txt) | v0.9.40 Pine64 Star64 | 0%/0% | 7.7Gi/7.1Gi | X | X | X | X | 2% | 1% | [check log](4tjq.txt) | -| [4uSM](4uSM.txt) | v0.9.41 WYSE Dell Wyse Thin Client Desk | 0%/0% | 3.7Gi/3.3Gi | X | X | X | X | 3% | 1% | [check log](4uSM.txt) | | [4vNB](4vNB.txt) | v0.9.41 ATOPNUC ATOPNUC AG40 / Celeron | 0%/0% | 3.7Gi/3.3Gi | X | X | X | X | 1% | 0% | [check log](4vNB.txt) | | [4vVG](4vVG.txt) | v0.9.41 Raspberry Pi Model B Rev 2 | 0%/0% | 476Mi/397Mi | X | X | X | X | 4% | 1% | [check log](4vVG.txt) | | [4vfU](4vfU.txt) | v0.9.41 Rockchip RK3288 Asus Tinker Boa | 0%/0% | 2.0Gi/1.8Gi | X | X | X | X | 2% | 2% | [check log](4vfU.txt) | @@ -264,3 +263,5 @@ | [4xwT](4xwT.txt) | v0.9.41 Microsoft Dev Kit 2023 | 0%/0% | 30Gi/29Gi | X | X | X | X | 0% | 0% | [check log](4xwT.txt) | | [4xwq](4xwq.txt) | v0.9.41 / N95 | 0%/0% | 15Gi/14Gi | X | X | X | X | 1% | 0% | [check log](4xwq.txt) | | [4yNC](4yNC.txt) | v0.9.42 Google Homestar | 0%/0% | 3.8Gi/2.7Gi | X | X | X | X | 2% | 0% | [check log](4yNC.txt) | +| [4z3s](4z3s.txt) | v0.9.42 clientron TC120 Type1 - TBD by | 0%/0% | 1.8Gi/1.0Gi | X | X | X | X | 2% | 0% | [check log](4z3s.txt) | +| [4zcm](4zcm.txt) | v0.9.42 Marvell 8040 MACCHIATOBin Doubl | 0%/0% | 3.8Gi/3.3Gi | X | X | X | X | 2% | 0% | [check log](4zcm.txt) | diff --git a/sbc-bench.sh b/sbc-bench.sh index efbf26f..2e66db8 100755 --- a/sbc-bench.sh +++ b/sbc-bench.sh @@ -4852,7 +4852,7 @@ GuessARMSoC() { # Rockemd R68K 2.5G, Hinlink H68K, Magewell Pro Convert NDI to AIO 4K Gen2, AIO-3568J # rockchip-cpuinfo cpuinfo: SoC : 35880000 --> 9Tripod X3588S Board, Firefly ITX-3588J/ROC-RK3588S-PC, NanoPi R6S, HINLINK OWL H88K, Khadas Edge2, # Orange Pi 5, ROCK 5A/5B, EDGE LP4x V1.0 BlueBerry, CoolPi 4B, Shaggy013 LP4x V1.2 H96_Max_v58 Board, - # EVB4 LP4 V10 Board, OWL H88K, RK3588 MINI PC V11 Board + # EVB4 LP4 V10 Board, OWL H88K, RK3588 MINI PC V11 Board, TOYBRICK X10, Mixtile Blade 3 v1.0.1 # rockchip-cpuinfo cpuinfo: SoC : 35881000 --> http://ix.io/4nwf (RK3588S, majority of Orange Pi 5 has this silicon revision) # # RK 'open source' SoCs according to https://github.com/rockchip-linux/kernel/blob/develop-5.10/drivers/soc/rockchip/rockchip-cpuinfo.c (at least RV1108 and RK3588/RK3588s missing) @@ -4879,7 +4879,7 @@ GuessARMSoC() { # soc soc0: Amlogic Meson GXL (Unknown) Revision 21:c (84:2) Detected <-- Khadas VIM # soc soc0: Amlogic Meson GXL (S905L) Revision 21:c (c2:2) Detected <-- PiBox by wdmomo, Amlogic Meson GXL (S905X) P212 Development Board # soc soc0: Amlogic Meson GXL (Unknown) Revision 21:c (c2:2) Detected <-- S905L on "PiBox by wdmomo" - # soc soc0: Amlogic Meson GXL (S905L) Revision 21:c (c4:2) Detected <-- Amlogic Meson GXL (S905X) P212 Development Board + # soc soc0: Amlogic Meson GXL (S905L) Revision 21:c (c4:2) Detected <-- Nexbox A95X, Amlogic Meson GXL (S905X) P212 Development Board # soc soc0: Amlogic Meson GXL (S905M2) Revision 21:c (e2:2) Detected <-- Amlogic Meson GXL (S905X) P212 Development Board # soc soc0: Amlogic Meson GXL (Unknown) Revision 21:c (e2:2) Detected <-- Khadas VIM # soc soc0: Amlogic Meson GXL (S905D) Revision 21:d (0:2) Detected <-- Tanix TX3 Mini / Amlogic Meson GXL (S905W) P281 Development Board @@ -6096,11 +6096,11 @@ GuessSoCbySignature() { # HiSilicon Hi3520D-V300: 1 x Cortex-A9 / r4p1 / swp half fastmult edsp echo "HiSilicon Hi3520D-V300" ;; - 00A72r0p100A72r0p102A72r0p102A72r0p1) + 0?A72r0p10?A72r0p10?A72r0p10?A72r0p1) # Armada 8040, 4 x Cortex-A72 / r0p1 / fp asimd evtstrm aes pmull sha1 sha2 crc32 echo "Marvell Armada 8040" ;; - 00A72r0p100A72r0p1) + 0?A72r0p10?A72r0p1) # Armada 8020, 2 x Cortex-A72 / r0p1 / fp asimd evtstrm aes pmull sha1 sha2 crc32 echo "Marvell Armada 8020" ;; @@ -6784,7 +6784,7 @@ GuessSoCbySignature() { # StarFive JH7110: 4 x U74-MC https://doc-en.rvspace.org/Doc_Center/datasheet_7110.html echo "StarFive JH7110" ;; - *sifive,u74-mc*sifive,u74-mc) + *sifive,u74mc*sifive,u74mc) # StarFive JH7100: 2 x U74-MC https://doc-en.rvspace.org/Doc_Center/datasheet_7100.html echo "StarFive JH7100" ;;