Skip to main content

VisionFive 2 - RISC-V - JH7110

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

Installing needed tools: Done.
Checking cpufreq OPP. Done (results will be available in 10-16 minutes).
Executing tinymembench. Done.
Executing RAM latency tester. Done.
Executing OpenSSL benchmark. Done.
Executing 7-zip benchmark. Done.
Checking cpufreq OPP again. Done (12 minutes elapsed).

Results validation:

  * Measured clockspeed not lower than advertised max CPU clockspeed
  * Background activity (%system) OK
  * No throttling

Memory performance
memcpy: 951.9 MB/s
memset: 897.0 MB/s

7-zip total scores (3 consecutive runs): 4043,4196,4194, single-threaded: 1194

OpenSSL results:
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-cbc      24254.94k    29816.04k    31697.75k    32206.51k    32347.48k    32314.71k
aes-128-cbc      22069.55k    29024.41k    31473.58k    32077.14k    32306.52k    32314.71k
aes-192-cbc      21428.23k    26155.80k    27729.24k    28092.42k    28254.21k    28246.02k
aes-192-cbc      21349.81k    26126.76k    27704.75k    28090.03k    28256.94k    28240.55k
aes-256-cbc      20020.66k    23400.26k    24707.93k    24986.97k    25100.29k    25094.83k
aes-256-cbc      19955.96k    23521.81k    24706.39k    25014.61k    25100.29k    24995.13k
Full results
sbc-bench v0.9.42 StarFive VisionFive V2 (Sat, 08 Jul 2023 13:26:34 +0000)

Distributor ID:	Debian
Description:	Debian GNU/Linux trixie/sid
Codename:	trixie

/usr/bin/gcc (Debian 12.3.0-4) 12.3.0

Uptime: 13:26:35 up 4 min,  2 users,  load average: 0.17, 0.36, 0.18,  51.0°C,  348672736

Linux 5.15.0-starfive (starfive) 	07/08/23 	_riscv64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           3.47    0.00    2.83    3.16    0.00   90.53

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
mmcblk1          35.67      1319.56       107.46         0.00     338349      27553          0

               total        used        free      shared  buff/cache   available
Mem:           3.8Gi       127Mi       3.7Gi       3.0Mi        64Mi       3.7Gi
Swap:             0B          0B          0B

##########################################################################

Checking cpufreq OPP (sifive,u74-mc):

Cpufreq OPP: 1500    Measured: 1498 (1498.934/1498.915/1498.877)
Cpufreq OPP:  750    Measured:  748    (748.969/748.825/748.806)
Cpufreq OPP:  500    Measured:  498    (498.938/498.786/498.722)
Cpufreq OPP:  375    Measured:  373    (373.815/373.777/373.529)

##########################################################################

Hardware sensors:

120e0000.tmon-isa-0000
temp1:        +50.8 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                                 :    946.2 MB/s (3, 3.6%)
 C copy backwards (32 byte blocks)                :    946.2 MB/s (2)
 C copy backwards (64 byte blocks)                :    945.7 MB/s (2)
 C copy                                           :    954.5 MB/s (2)
 C copy prefetched (32 bytes step)                :    953.4 MB/s (3, 0.6%)
 C copy prefetched (64 bytes step)                :    954.0 MB/s (2)
 C 2-pass copy                                    :    758.4 MB/s (2)
 C 2-pass copy prefetched (32 bytes step)         :    764.6 MB/s (3, 0.2%)
 C 2-pass copy prefetched (64 bytes step)         :    761.9 MB/s (2)
 C scan 8                                         :    586.2 MB/s (3, 0.6%)
 C scan 16                                        :    555.1 MB/s (2)
 C scan 32                                        :   1029.0 MB/s (2)
 C scan 64                                        :   1276.8 MB/s (2)
 C fill                                           :    837.3 MB/s (2)
 C fill (shuffle within 16 byte blocks)           :    837.2 MB/s (2)
 C fill (shuffle within 32 byte blocks)           :    837.3 MB/s (2)
 C fill (shuffle within 64 byte blocks)           :    837.7 MB/s (2)
 ---
 libc memcpy copy                                 :    951.9 MB/s (2)
 libc memchr scan                                 :   1219.1 MB/s (2)
 libc memset fill                                 :    897.0 MB/s (3, 3.8%)

==========================================================================
== 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.5 ns          /    30.6 ns 
   2097152 :   35.7 ns          /    53.6 ns 
   4194304 :   84.8 ns          /   165.1 ns 
   8388608 :  123.1 ns          /   241.7 ns 
  16777216 :  144.1 ns          /   285.3 ns 
  33554432 :  157.3 ns          /   312.6 ns 
  67108864 :  167.6 ns          /   334.5 ns 

##########################################################################

Executing ramlat on cpu0 (sifive,u74-mc), results in ns:

       size:  1x32  2x32  1x64  2x64 1xPTR 2xPTR 4xPTR 8xPTR
         4k: 2.778 2.847 2.674 2.756 2.003 2.002 2.753 5.588 
         8k: 2.753 2.837 2.669 2.753 2.002 2.002 2.753 5.588 
        16k: 2.757 2.837 2.670 2.754 2.002 2.003 2.753 5.593 
        32k: 2.762 2.838 2.671 2.754 2.003 2.004 2.762 5.593 
        64k: 13.48 24.12 13.35 24.10 13.35 24.03 48.15 96.37 
       128k: 13.47 24.11 13.35 24.11 13.45 24.03 48.14 96.50 
       256k: 13.44 24.14 13.35 24.11 13.35 24.03 48.15 96.60 
       512k: 20.12 30.90 20.04 29.58 18.69 29.37 53.48 101.9 
      1024k: 20.17 29.65 19.99 29.59 18.72 29.39 53.54 112.8 
      2048k: 53.46 90.24 52.58 89.95 50.72 90.25 166.9 312.1 
      4096k: 126.6 220.9 127.0 230.7 125.5 221.2 404.0 768.0 
      8192k: 156.3 266.5 156.6 270.4 156.1 265.3 486.6 930.2 
     16384k: 167.6 278.6 167.4 278.3 166.7 276.9 503.8 956.0 
     32768k: 172.4 286.2 171.3 284.7 171.4 283.4 511.0 968.1 
     65536k: 171.1 285.1 171.1 286.5 171.0 287.4 512.0 968.1 
    131072k: 173.6 293.0 172.7 288.4 172.7 287.5 517.9 981.4 

##########################################################################

Executing benchmark twice on cluster 0 (sifive,u74-mc)

OpenSSL 3.0.9, built on 30 May 2023 (Library: OpenSSL 3.0.9 30 May 2023)
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-cbc      24254.94k    29816.04k    31697.75k    32206.51k    32347.48k    32314.71k
aes-128-cbc      22069.55k    29024.41k    31473.58k    32077.14k    32306.52k    32314.71k
aes-192-cbc      21428.23k    26155.80k    27729.24k    28092.42k    28254.21k    28246.02k
aes-192-cbc      21349.81k    26126.76k    27704.75k    28090.03k    28256.94k    28240.55k
aes-256-cbc      20020.66k    23400.26k    24707.93k    24986.97k    25100.29k    25094.83k
aes-256-cbc      19955.96k    23521.81k    24706.39k    25014.61k    25100.29k    24995.13k

##########################################################################

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: 32000000 64000000 - - - - 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:        917   100    892    892  |      17497   100   1494   1494
23:        875   100    892    892  |      17175   100   1487   1487
24:        848   100    912    912  |      16820   100   1477   1477
25:        820   100    936    936  |      16412   100   1461   1461
----------------------------------  | ------------------------------
Avr:             100    908    908  |              100   1480   1480
Tot:             100   1194   1194

##########################################################################

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: 64000000 64000000 - - 128000000 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:       1753   214    799   1706  |      67832   398   1452   5787
23:       2599   339    782   2649  |      66677   400   1444   5769
24:       2572   351    789   2766  |      64957   399   1429   5702
25:       2028   284    816   2317  |      63431   399   1414   5645
----------------------------------  | ------------------------------
Avr:             297    796   2359  |              399   1435   5726
Tot:             348   1116   4043

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:       2651   331    779   2579  |      68173   400   1455   5816
23:       2584   337    782   2633  |      66586   399   1442   5761
24:       2563   348    792   2756  |      65197   400   1432   5723
25:       2319   327    811   2648  |      63439   399   1414   5646
----------------------------------  | ------------------------------
Avr:             336    791   2654  |              400   1436   5737
Tot:             368   1113   4196

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 - 1024000000 -

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:       2453   303    788   2387  |      68047   399   1454   5806
23:       2612   340    783   2662  |      66455   399   1441   5750
24:       2527   344    791   2718  |      64923   399   1428   5699
25:       2526   360    802   2884  |      63395   399   1413   5642
----------------------------------  | ------------------------------
Avr:             337    791   2663  |              399   1434   5724
Tot:             368   1113   4194

Compression: 2359,2654,2663
Decompression: 5726,5737,5724
Total: 4043,4196,4194

##########################################################################

Testing maximum cpufreq again, still under full load. System health now:

Time        CPU    load %cpu %sys %usr %nice %io %irq   Temp
13:37:36: 1500MHz  4.14  97%   1%  96%   0%   0%   0%  66.5°C

Checking cpufreq OPP (sifive,u74-mc):

Cpufreq OPP: 1500    Measured: 1498 (1498.896/1498.800/1498.762)

##########################################################################

Hardware sensors:

120e0000.tmon-isa-0000
temp1:        +64.5 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
13:26:54: 1500MHz  0.35  10%   2%   4%   0%   2%   0%  52.2°C
13:27:04: 1500MHz  0.45  25%   0%  25%   0%   0%   0%  54.8°C
13:27:14: 1500MHz  0.61  25%   0%  25%   0%   0%   0%  55.5°C
13:27:24: 1500MHz  0.70  25%   0%  25%   0%   0%   0%  56.1°C

System health while running ramlat:

Time        CPU    load %cpu %sys %usr %nice %io %irq   Temp
13:27:35: 1500MHz  0.74  12%   2%   7%   0%   2%   0%  55.9°C
13:27:38: 1500MHz  0.74  25%   0%  25%   0%   0%   0%  55.8°C
13:27:41: 1500MHz  0.76  25%   0%  24%   0%   0%   0%  55.9°C
13:27:44: 1500MHz  0.76  25%   0%  25%   0%   0%   0%  56.0°C
13:27:47: 1500MHz  0.78  25%   0%  25%   0%   0%   0%  56.1°C
13:27:50: 1500MHz  0.80  25%   0%  25%   0%   0%   0%  56.2°C
13:27:53: 1500MHz  0.80  25%   0%  24%   0%   0%   0%  56.1°C
13:27:56: 1500MHz  0.82  25%   0%  24%   0%   0%   0%  56.0°C
13:27:59: 1500MHz  0.83  25%   0%  24%   0%   0%   0%  56.0°C
13:28:02: 1500MHz  0.83  25%   0%  24%   0%   0%   0%  56.0°C
13:28:05: 1500MHz  0.85  25%   0%  25%   0%   0%   0%  56.0°C
13:28:08: 1500MHz  0.85  25%   0%  24%   0%   0%   0%  56.1°C
13:28:11: 1500MHz  0.86  25%   1%  24%   0%   0%   0%  56.2°C
13:28:14: 1500MHz  0.87  25%   0%  25%   0%   0%   0%  56.2°C

System health while running OpenSSL benchmark:

Time        CPU    load %cpu %sys %usr %nice %io %irq   Temp
13:28:15: 1500MHz  0.87  14%   2%   9%   0%   2%   0%  56.6°C
13:28:32: 1500MHz  0.90  25%   0%  25%   0%   0%   0%  57.0°C
13:28:48: 1500MHz  0.92  25%   0%  25%   0%   0%   0%  57.1°C
13:29:04: 1500MHz  0.94  25%   0%  25%   0%   0%   0%  57.5°C
13:29:20: 1500MHz  0.96  25%   0%  25%   0%   0%   0%  57.5°C
13:29:36: 1500MHz  0.97  25%   0%  25%   0%   0%   0%  57.8°C
13:29:52: 1500MHz  0.98  25%   0%  25%   0%   0%   0%  57.9°C

System health while running 7-zip single core benchmark:

Time        CPU    load %cpu %sys %usr %nice %io %irq   Temp
13:30:04: 1500MHz  0.98  16%   1%  13%   0%   1%   0%  58.2°C
13:30:15: 1500MHz  0.98  25%   0%  24%   0%   0%   0%  58.0°C
13:30:26: 1500MHz  0.99  25%   0%  24%   0%   0%   0%  58.1°C
13:30:37: 1500MHz  1.07  25%   0%  24%   0%   0%   0%  58.2°C
13:30:48: 1500MHz  1.06  25%   0%  24%   0%   0%   0%  58.3°C
13:30:59: 1500MHz  1.05  25%   0%  24%   0%   0%   0%  58.4°C
13:31:10: 1500MHz  1.04  25%   0%  24%   0%   0%   0%  58.5°C
13:31:21: 1500MHz  1.11  25%   0%  24%   0%   0%   0%  58.6°C
13:31:32: 1500MHz  1.09  25%   0%  24%   0%   0%   0%  58.7°C
13:31:44: 1500MHz  1.08  25%   0%  24%   0%   0%   0%  58.8°C
13:31:55: 1500MHz  1.06  25%   0%  24%   0%   0%   0%  58.8°C
13:32:06: 1500MHz  1.05  25%   0%  24%   0%   0%   0%  58.8°C

System health while running 7-zip multi core benchmark:

Time        CPU    load %cpu %sys %usr %nice %io %irq   Temp
13:32:12: 1500MHz  1.04  18%   1%  15%   0%   1%   0%  59.0°C
13:32:37: 1500MHz  1.83  63%   0%  63%   0%   0%   0%  61.7°C
13:33:00: 1500MHz  2.27  93%   0%  93%   0%   0%   0%  62.5°C
13:33:24: 1500MHz  2.63  93%   1%  91%   0%   0%   0%  63.8°C
13:33:46: 1500MHz  2.99  80%   1%  78%   0%   0%   0%  63.1°C
13:34:08: 1500MHz  3.21  72%   0%  71%   0%   0%   0%  63.7°C
13:34:31: 1500MHz  3.56  90%   0%  90%   0%   0%   0%  64.6°C
13:34:53: 1500MHz  3.69  90%   1%  89%   0%   0%   0%  64.8°C
13:35:15: 1500MHz  3.77  90%   1%  89%   0%   0%   0%  65.0°C
13:35:37: 1500MHz  3.84  88%   1%  87%   0%   0%   0%  64.9°C
13:36:00: 1500MHz  3.83  79%   0%  78%   0%   0%   0%  64.9°C
13:36:25: 1500MHz  3.78  90%   0%  90%   0%   0%   0%  65.5°C
13:36:50: 1500MHz  3.77  91%   1%  90%   0%   0%   0%  65.7°C
13:37:13: 1500MHz  3.83  88%   1%  87%   0%   0%   0%  65.8°C
13:37:36: 1500MHz  4.14  97%   1%  96%   0%   0%   0%  66.5°C

##########################################################################

Linux 5.15.0-starfive (starfive) 	07/08/23 	_riscv64_	(4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          40.28    0.01    1.29    0.93    0.00   57.48

Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
mmcblk1          10.33       373.11        31.72         0.00     344205      29265          0

               total        used        free      shared  buff/cache   available
Mem:           3.8Gi       126Mi       3.6Gi       3.0Mi        71Mi       3.7Gi
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 trixie/sid riscv64 | 4140 | 1194 | 25040 | 950 | 900 | - |