VisionFive 2 - RISC-V - Benchmark
Linux starfive 5.15.0-starfive #1 SMP Sun Jun 11 07:48:39 UTC 2023 riscv64 GNU/Linux
08.07.2023
sbc-bench v0.9.42
Results validation:
* Measured clockspeed not lower than advertised max CPU clockspeed
* Background activity (%system) OK
* No throttling
Memory performance
memcpy: 945.1 MB/s
memset: 832.6 MB/s
7-zip total scores (3 consecutive runs): 4007,4217,4022, single-threaded: 1191
OpenSSL results:
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128-cbc 22293.69k 29071.47k 31447.04k 32093.87k 32325.63k 32303.79k
aes-128-cbc 21209.34k 28618.43k 31332.78k 31983.96k 32309.25k 32303.79k
aes-192-cbc 21836.25k 26283.50k 27756.80k 28075.69k 28248.75k 28235.09k
aes-192-cbc 20190.68k 25560.19k 27555.93k 27999.91k 28246.02k 28124.96k
aes-256-cbc 18588.79k 23131.75k 24552.96k 24983.89k 25092.10k 25078.44k
aes-256-cbc 19878.79k 23515.82k 24686.76k 25000.28k 25094.83k 25078.44k
Full results
sbc-bench v0.9.42 StarFive VisionFive V2 (Sat, 08 Jul 2023 10:30:27 +0000) Distributor ID: Debian Description: Debian GNU/Linux bookworm/sid Codename: bookworm /usr/bin/gcc (Debian 12.3.0-4) 12.3.0 Uptime: 10:30:28 up 45 min, 3 users, load average: 0.16, 0.39, 0.67, 58.9°C, 324463800 Linux 5.15.0-starfive (starfive) 07/08/23 _riscv64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 13.13 0.00 0.49 2.08 0.00 84.30 Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd mmcblk1 7.54 145.69 269.50 4721.64 396117 732721 12837420 total used free shared buff/cache available Mem: 3.8Gi 325Mi 3.3Gi 3.3Mi 183Mi 3.5Gi Swap: 0B 0B 0B ########################################################################## Checking cpufreq OPP (sifive,u74-mc): Cpufreq OPP: 1500 Measured: 1501 (1506.695/1498.953/1498.724) Cpufreq OPP: 750 Measured: 748 (748.943/748.580/748.571) Cpufreq OPP: 500 Measured: 498 (498.919/498.875/498.875) Cpufreq OPP: 375 Measured: 373 (373.783/373.764/373.664) ########################################################################## Hardware sensors: 120e0000.tmon-isa-0000 temp1: +55.7 C ########################################################################## Executing benchmark on cpu0 (sifive,u74-mc): 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 : 933.5 MB/s (3, 3.3%) C copy backwards (32 byte blocks) : 937.1 MB/s (2) C copy backwards (64 byte blocks) : 937.0 MB/s (3) C copy : 945.7 MB/s (3, 2.2%) C copy prefetched (32 bytes step) : 946.5 MB/s (2) C copy prefetched (64 bytes step) : 946.5 MB/s (2) C 2-pass copy : 741.4 MB/s (2) C 2-pass copy prefetched (32 bytes step) : 745.0 MB/s (2) C 2-pass copy prefetched (64 bytes step) : 744.3 MB/s (2) C scan 8 : 578.0 MB/s (3, 0.2%) C scan 16 : 552.1 MB/s (3) C scan 32 : 1017.2 MB/s (2) C scan 64 : 1294.3 MB/s (3, 1.7%) C fill : 853.8 MB/s (3, 1.4%) C fill (shuffle within 16 byte blocks) : 832.4 MB/s (2) C fill (shuffle within 32 byte blocks) : 831.4 MB/s (2) C fill (shuffle within 64 byte blocks) : 832.0 MB/s (2) --- libc memcpy copy : 945.1 MB/s (2) libc memchr scan : 1200.9 MB/s (2) libc memset fill : 832.6 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 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.1 ns / 0.0 ns 65536 : 5.5 ns / 10.5 ns 131072 : 8.3 ns / 15.8 ns 262144 : 10.0 ns / 18.6 ns 524288 : 16.0 ns / 28.6 ns 1048576 : 19.4 ns / 30.7 ns 2097152 : 35.6 ns / 52.0 ns 4194304 : 84.4 ns / 165.9 ns 8388608 : 123.4 ns / 241.8 ns 16777216 : 144.1 ns / 284.8 ns 33554432 : 157.4 ns / 312.4 ns 67108864 : 167.3 ns / 333.8 ns ########################################################################## Executing ramlat on cpu0 (sifive,u74-mc), results in ns: size: 1x32 2x32 1x64 2x64 1xPTR 2xPTR 4xPTR 8xPTR 4k: 2.788 2.859 2.670 2.753 2.002 2.002 2.755 5.589 8k: 2.752 2.836 2.670 2.752 2.004 2.007 2.753 5.592 16k: 2.757 2.836 2.672 2.753 2.004 2.002 2.755 5.590 32k: 2.754 2.839 2.671 2.761 2.003 2.004 2.761 5.594 64k: 13.47 24.11 13.36 24.11 13.36 24.03 48.13 96.54 128k: 13.47 24.12 13.35 24.11 13.46 24.03 48.19 96.45 256k: 13.44 24.11 13.35 24.10 13.36 24.03 48.14 96.42 512k: 20.09 31.09 20.02 29.57 18.69 29.37 53.48 101.8 1024k: 20.14 29.65 20.02 29.58 18.70 29.46 53.57 113.3 2048k: 47.63 80.62 47.47 81.31 45.54 80.30 150.0 281.8 4096k: 126.6 220.1 128.1 225.8 125.0 219.9 403.2 768.0 8192k: 155.4 262.9 154.8 266.7 153.8 262.8 483.3 925.1 16384k: 159.3 269.8 160.0 269.9 157.1 268.8 494.6 947.0 32768k: 171.5 283.4 170.6 283.1 170.6 282.2 508.9 965.3 65536k: 170.7 284.4 170.7 286.0 170.6 286.8 510.5 966.2 131072k: 173.0 287.8 174.1 287.7 172.6 287.0 517.6 982.3 ########################################################################## Executing benchmark twice on cluster 0 (sifive,u74-mc) OpenSSL 3.0.7, built on 1 Nov 2022 (Library: OpenSSL 3.0.7 1 Nov 2022) type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 22293.69k 29071.47k 31447.04k 32093.87k 32325.63k 32303.79k aes-128-cbc 21209.34k 28618.43k 31332.78k 31983.96k 32309.25k 32303.79k aes-192-cbc 21836.25k 26283.50k 27756.80k 28075.69k 28248.75k 28235.09k aes-192-cbc 20190.68k 25560.19k 27555.93k 27999.91k 28246.02k 28124.96k aes-256-cbc 18588.79k 23131.75k 24552.96k 24983.89k 25092.10k 25078.44k aes-256-cbc 19878.79k 23515.82k 24686.76k 25000.28k 25094.83k 25078.44k ########################################################################## Executing benchmark single-threaded on cpu0 (sifive,u74-mc) 7-Zip (a) 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 64000000 64000000 - 128000000 256000000 512000000 1024000000 - RAM size: 3891 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: 916 100 892 892 | 17473 100 1493 1492 23: 874 100 891 891 | 17163 100 1486 1486 24: 840 100 904 903 | 16803 100 1476 1475 25: 813 100 929 929 | 16402 100 1460 1460 ---------------------------------- | ------------------------------ Avr: 100 904 904 | 100 1479 1478 Tot: 100 1191 1191 ########################################################################## Executing benchmark 3 times multi-threaded on CPUs 0-3 7-Zip (a) 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: - - - - - 256000000 512000000 1024000000 2048000000 RAM size: 3891 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: 2599 324 781 2528 | 67956 399 1453 5798 23: 2276 295 787 2320 | 66696 400 1444 5771 24: 2567 350 789 2761 | 64745 398 1428 5684 25: 1368 186 840 1563 | 63280 399 1413 5632 ---------------------------------- | ------------------------------ Avr: 289 799 2293 | 399 1435 5721 Tot: 344 1117 4007 7-Zip (a) 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 - - 64000000 - 256000000 512000000 - - RAM size: 3891 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: 2646 330 781 2574 | 68021 399 1454 5803 23: 2585 337 782 2635 | 66690 400 1444 5770 24: 2539 345 791 2730 | 64869 399 1428 5695 25: 2525 359 802 2884 | 63398 399 1414 5642 ---------------------------------- | ------------------------------ Avr: 343 789 2706 | 399 1435 5728 Tot: 371 1112 4217 7-Zip (a) 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: - - - - - 256000000 - - - RAM size: 3891 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: 2484 308 785 2417 | 67836 399 1451 5788 23: 2592 338 781 2642 | 66305 398 1441 5737 24: 2555 347 791 2747 | 64819 399 1428 5690 25: 1334 182 839 1524 | 63279 399 1412 5632 ---------------------------------- | ------------------------------ Avr: 294 799 2332 | 399 1433 5712 Tot: 346 1116 4022 Compression: 2293,2706,2332 Decompression: 5721,5728,5712 Total: 4007,4217,4022 ########################################################################## Testing maximum cpufreq again, still under full load. System health now: Time CPU load %cpu %sys %usr %nice %io %irq Temp 10:42:03: 1500MHz 3.30 66% 0% 65% 0% 0% 0% 66.2°C Checking cpufreq OPP (sifive,u74-mc): Cpufreq OPP: 1500 Measured: 1498 (1498.914/1498.799/1498.799) ########################################################################## Hardware sensors: 120e0000.tmon-isa-0000 temp1: +64.7 C ########################################################################## Thermal source: /sys/devices/virtual/thermal/thermal_zone0/ (cpu-thermal) System health while running tinymembench: Time CPU load %cpu %sys %usr %nice %io %irq Temp 10:30:47: 1500MHz 0.40 15% 0% 13% 0% 2% 0% 57.1°C 10:30:57: 1500MHz 0.49 25% 0% 25% 0% 0% 0% 59.5°C 10:31:07: 1500MHz 0.57 25% 0% 25% 0% 0% 0% 59.8°C 10:31:17: 1500MHz 0.64 25% 0% 25% 0% 0% 0% 60.2°C 10:31:27: 1500MHz 0.69 25% 0% 24% 0% 0% 0% 59.7°C System health while running ramlat: Time CPU load %cpu %sys %usr %nice %io %irq Temp 10:31:30: 1500MHz 0.80 15% 0% 13% 0% 2% 0% 59.9°C 10:31:33: 1500MHz 0.80 25% 0% 25% 0% 0% 0% 59.7°C 10:31:36: 1500MHz 0.81 25% 0% 24% 0% 0% 0% 59.7°C 10:31:39: 1500MHz 0.81 25% 0% 25% 0% 0% 0% 59.8°C 10:31:42: 1500MHz 0.83 25% 0% 24% 0% 0% 0% 59.8°C 10:31:45: 1500MHz 0.84 25% 0% 25% 0% 0% 0% 59.9°C 10:31:48: 1500MHz 0.84 25% 0% 25% 0% 0% 0% 59.7°C 10:31:51: 1500MHz 0.86 25% 0% 24% 0% 0% 0% 59.6°C 10:31:54: 1500MHz 0.86 25% 0% 25% 0% 0% 0% 59.5°C 10:31:57: 1500MHz 0.87 25% 0% 24% 0% 0% 0% 59.5°C 10:32:00: 1500MHz 0.88 25% 0% 25% 0% 0% 0% 59.5°C 10:32:03: 1500MHz 0.88 25% 0% 24% 0% 0% 0% 59.5°C 10:32:06: 1500MHz 0.89 25% 1% 24% 0% 0% 0% 59.7°C 10:32:09: 1500MHz 0.89 25% 0% 24% 0% 0% 0% 59.6°C System health while running OpenSSL benchmark: Time CPU load %cpu %sys %usr %nice %io %irq Temp 10:32:11: 1500MHz 0.90 16% 0% 13% 0% 2% 0% 59.9°C 10:32:27: 1500MHz 0.92 25% 0% 24% 0% 0% 0% 60.0°C 10:32:43: 1500MHz 0.94 25% 0% 24% 0% 0% 0% 60.3°C 10:32:59: 1500MHz 0.95 25% 0% 25% 0% 0% 0% 60.3°C 10:33:15: 1500MHz 0.97 25% 0% 25% 0% 0% 0% 60.4°C 10:33:31: 1500MHz 0.97 25% 0% 25% 0% 0% 0% 60.4°C 10:33:47: 1500MHz 0.98 25% 0% 25% 0% 0% 0% 60.4°C System health while running 7-zip single core benchmark: Time CPU load %cpu %sys %usr %nice %io %irq Temp 10:33:59: 1500MHz 0.98 16% 0% 13% 0% 1% 0% 60.7°C 10:34:09: 1500MHz 0.99 25% 0% 24% 0% 0% 0% 60.4°C 10:34:19: 1500MHz 0.99 25% 0% 24% 0% 0% 0% 60.4°C 10:34:29: 1500MHz 0.99 25% 0% 24% 0% 0% 0% 60.4°C 10:34:39: 1500MHz 0.99 25% 0% 24% 0% 0% 0% 60.4°C 10:34:49: 1500MHz 1.00 25% 0% 24% 0% 0% 0% 60.5°C 10:34:59: 1500MHz 1.00 25% 0% 24% 0% 0% 0% 60.5°C 10:35:09: 1500MHz 1.00 25% 0% 24% 0% 0% 0% 60.5°C 10:35:19: 1500MHz 1.00 25% 0% 24% 0% 0% 0% 60.6°C 10:35:30: 1500MHz 1.00 25% 0% 24% 0% 0% 0% 60.5°C 10:35:40: 1500MHz 1.00 25% 0% 24% 0% 0% 0% 60.6°C 10:35:50: 1500MHz 1.00 25% 0% 24% 0% 0% 0% 60.5°C 10:36:00: 1500MHz 1.00 25% 0% 24% 0% 0% 0% 60.6°C System health while running 7-zip multi core benchmark: Time CPU load %cpu %sys %usr %nice %io %irq Temp 10:36:08: 1500MHz 1.08 16% 0% 14% 0% 1% 0% 60.7°C 10:36:32: 1500MHz 1.50 83% 0% 83% 0% 0% 0% 63.8°C 10:36:53: 1500MHz 2.29 87% 0% 87% 0% 0% 0% 64.5°C 10:37:16: 1500MHz 2.78 93% 1% 92% 0% 0% 0% 65.3°C 10:37:37: 1500MHz 2.99 46% 1% 45% 0% 0% 0% 63.2°C 10:37:58: 1500MHz 3.28 47% 0% 47% 0% 0% 0% 63.1°C 10:38:19: 1500MHz 3.42 78% 1% 77% 0% 0% 0% 64.6°C 10:38:41: 1500MHz 3.48 91% 0% 90% 0% 0% 0% 65.6°C 10:39:02: 1500MHz 3.46 91% 0% 90% 0% 0% 0% 65.8°C 10:39:23: 1500MHz 3.74 91% 1% 90% 0% 0% 0% 66.0°C 10:39:46: 1500MHz 3.98 90% 1% 89% 0% 0% 0% 66.3°C 10:40:07: 1500MHz 3.96 89% 0% 88% 0% 0% 0% 66.4°C 10:40:32: 1500MHz 3.83 92% 0% 91% 0% 0% 0% 66.9°C 10:40:56: 1500MHz 3.87 91% 0% 90% 0% 0% 0% 67.0°C 10:41:18: 1500MHz 3.76 64% 0% 63% 0% 0% 0% 65.1°C 10:41:39: 1500MHz 3.41 46% 0% 45% 0% 0% 0% 64.7°C 10:42:03: 1500MHz 3.30 66% 0% 65% 0% 0% 0% 66.2°C ########################################################################## Linux 5.15.0-starfive (starfive) 07/08/23 _riscv64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 21.06 0.00 0.53 1.66 0.00 76.75 Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd mmcblk1 6.18 117.73 215.42 3753.30 402681 736805 12837420 total used free shared buff/cache available Mem: 3.8Gi 321Mi 3.3Gi 3.3Mi 191Mi 3.5Gi Swap: 0B 0B 0B CPU sysfs topology (clusters, cpufreq members, clockspeeds) cpufreq min max CPU cluster policy speed speed core type 0 0 0 375 1500 sifive,u74-mc 1 0 0 375 1500 sifive,u74-mc 2 0 0 375 1500 sifive,u74-mc 3 0 0 375 1500 sifive,u74-mc Architecture: riscv64 Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 SoC guess: StarFive JH7110 DT compat: starfive,visionfive-v2 starfive,jh7110 Compiler: /usr/bin/gcc (Debian 12.3.0-4) 12.3.0 / riscv64-linux-gnu Userland: riscv64 Kernel: 5.15.0-starfive/riscv64 CONFIG_HZ=100 CONFIG_HZ_100=y CONFIG_PREEMPT_COUNT=y CONFIG_PREEMPT_NONE=y ########################################################################## Kernel 5.15.0 is not latest 5.15.120 LTS that was released on 2023-07-05. 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. But this version string doesn't matter since this is not an official LTS Linux from kernel.org. This device runs a StarFive vendor/BSP kernel. ########################################################################## cpu0/index0: 32K, level: 1, type: Instruction cpu0/index1: 32K, level: 1, type: Data cpu0/index2: 2048K, level: 2, type: Unified cpu1/index0: 32K, level: 1, type: Instruction cpu1/index1: 32K, level: 1, type: Data cpu1/index2: 2048K, level: 2, type: Unified cpu2/index0: 32K, level: 1, type: Instruction cpu2/index1: 32K, level: 1, type: Data cpu2/index2: 2048K, level: 2, type: Unified cpu3/index0: 32K, level: 1, type: Instruction cpu3/index1: 32K, level: 1, type: Data cpu3/index2: 2048K, level: 2, type: Unified ########################################################################## cpu_vdd: 1040 mV (1540 mV max) opp-table-0: 375 MHz 800.0 mV 500 MHz 800.0 mV 750 MHz 800.0 mV 1500 MHz 1040.0 mV ########################################################################## Results validation: * Measured clockspeed not lower than advertised max CPU clockspeed * Background activity (%system) OK * No throttling | StarFive VisionFive V2 | 1500 MHz | 5.15 | Debian GNU/Linux bookworm/sid riscv64 | 4080 | 1191 | 25080 | 950 | 830 | - |