Skip to content

Benchmarks 2024 11 26 TVM GCC Os spike_rv32

GitHub Action edited this page Nov 26, 2024 · 1 revision

Setup

Simulator

  • Spike (riscv-isa-sim ) (ISS, CPI=1)
    • Spike : eb0a3e2b0a7c57522928be39de95cd9f8c6dc636
    • Spike PK : fix-gcc14-rvv

Toolchains

Models

Frameworks

  • MLonMCU : develop

  • TVM : Nightly Pre-Build

Miscellaneous

  • Used -Os flag for compilation.
  • Benchmarks generated using MLonMCU deployment tool with minimal efforts.
  • Memory metrics are reported in Bytes

Results (Framework: tvm, Backend: tvmaot, Toolchain: gcc, Flags: -Os, Target: spike_rv32 )

Audio Wake Words (aww)

Cycles (Speedup) Total ROM (rel.) Total RAM (rel.) VLEN Layout Kernels Mode Arch Unroll Auto-Vectorization
31300017.0
( 0.6x )
109508
( 1.259 )
59468
( 3.094 )
0 NCHW TVM Fallback RV32GC 0 -
29574264.0
( 0.6x )
103716
( 1.193 )
59468
( 3.094 )
0 NHWC TVM Fallback RV32GC 0 -
32008844.0
( 0.5x )
108560
( 1.248 )
59468
( 3.094 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
32431351.0
( 0.5x )
108616
( 1.249 )
59468
( 3.094 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
32817500.0
( 0.5x )
108598
( 1.249 )
59468
( 3.094 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
32034681.0
( 0.5x )
108472
( 1.247 )
59468
( 3.094 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
32248424.0
( 0.5x )
108792
( 1.251 )
59468
( 3.094 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
32248424.0
( 0.5x )
108792
( 1.251 )
59468
( 3.094 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
29573400.0
( 0.6x )
103700
( 1.192 )
59468
( 3.094 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
29573400.0
( 0.6x )
103700
( 1.192 )
59468
( 3.094 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
29573400.0
( 0.6x )
103700
( 1.192 )
59468
( 3.094 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
29573400.0
( 0.6x )
103700
( 1.192 )
59468
( 3.094 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
29573400.0
( 0.6x )
103700
( 1.192 )
59468
( 3.094 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
29573400.0
( 0.6x )
103700
( 1.192 )
59468
( 3.094 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
17257790.0
( Base )
86968
( Base )
19220
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
17203536.0
( 1.0x )
86800
( 0.998 )
23684
( 1.232 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
17255229.0
( 1.0x )
87116
( 1.002 )
19220
( 1.0 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
17255183.0
( 1.0x )
87088
( 1.001 )
19220
( 1.0 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
17255183.0
( 1.0x )
87088
( 1.001 )
19220
( 1.0 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
17255183.0
( 1.0x )
87088
( 1.001 )
19220
( 1.0 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
17255183.0
( 1.0x )
87088
( 1.001 )
19220
( 1.0 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
17255183.0
( 1.0x )
87088
( 1.001 )
19220
( 1.0 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
6132843.0
( 2.8x )
89418
( 1.028 )
23684
( 1.232 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
4923797.0
( 3.5x )
89418
( 1.028 )
23684
( 1.232 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
4324043.0
( 4.0x )
89418
( 1.028 )
23684
( 1.232 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
4282163.0
( 4.0x )
89418
( 1.028 )
23684
( 1.232 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
4285554.0
( 4.0x )
89418
( 1.028 )
23684
( 1.232 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
4288944.0
( 4.0x )
89418
( 1.028 )
23684
( 1.232 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
17201475.0
( 1.0x )
86948
( 1.0 )
23684
( 1.232 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
17201429.0
( 1.0x )
86920
( 0.999 )
23684
( 1.232 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
17201429.0
( 1.0x )
86920
( 0.999 )
23684
( 1.232 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
17201429.0
( 1.0x )
86920
( 0.999 )
23684
( 1.232 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
17201429.0
( 1.0x )
86920
( 0.999 )
23684
( 1.232 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
17201429.0
( 1.0x )
86920
( 0.999 )
23684
( 1.232 )
4096 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP

Image Classification (resnet)

Cycles (Speedup) Total ROM (rel.) Total RAM (rel.) VLEN Layout Kernels Mode Arch Unroll Auto-Vectorization
133335171.0
( 0.6x )
218596
( 1.605 )
108380
( 1.952 )
0 NCHW TVM Fallback RV32GC 0 -
115657848.0
( 0.7x )
209682
( 1.54 )
108380
( 1.952 )
0 NHWC TVM Fallback RV32GC 0 -
127479333.0
( 0.6x )
217268
( 1.595 )
108380
( 1.952 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
131163686.0
( 0.6x )
217112
( 1.594 )
108380
( 1.952 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
133059993.0
( 0.6x )
217014
( 1.593 )
108380
( 1.952 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
133102387.0
( 0.6x )
217458
( 1.597 )
108380
( 1.952 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
133318040.0
( 0.6x )
217860
( 1.6 )
108380
( 1.952 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
133318040.0
( 0.6x )
217860
( 1.6 )
108380
( 1.952 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
115652394.0
( 0.7x )
209650
( 1.539 )
108380
( 1.952 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
115652394.0
( 0.7x )
209650
( 1.539 )
108380
( 1.952 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
115652394.0
( 0.7x )
209650
( 1.539 )
108380
( 1.952 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
115652394.0
( 0.7x )
209650
( 1.539 )
108380
( 1.952 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
115652394.0
( 0.7x )
209650
( 1.539 )
108380
( 1.952 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
115652394.0
( 0.7x )
209650
( 1.539 )
108380
( 1.952 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
79936858.0
( Base )
136192
( Base )
55524
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
79029673.0
( 1.0x )
135922
( 0.998 )
55524
( 1.0 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
79934811.0
( 1.0x )
136476
( 1.002 )
55524
( 1.0 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
79934766.0
( 1.0x )
136378
( 1.001 )
55524
( 1.0 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
79934766.0
( 1.0x )
136378
( 1.001 )
55524
( 1.0 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
79934766.0
( 1.0x )
136378
( 1.001 )
55524
( 1.0 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
79934766.0
( 1.0x )
136378
( 1.001 )
55524
( 1.0 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
79934766.0
( 1.0x )
136378
( 1.001 )
55524
( 1.0 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
17086183.0
( 4.7x )
138868
( 1.02 )
55524
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
11030067.0
( 7.2x )
138868
( 1.02 )
55524
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
8268249.0
( 9.7x )
138868
( 1.02 )
55524
( 1.0 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
6920697.0
( 11.6x )
138868
( 1.02 )
55524
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
5917512.0
( 13.5x )
138868
( 1.02 )
55524
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
5650574.0
( 14.1x )
138868
( 1.02 )
55524
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
79027627.0
( 1.0x )
136208
( 1.0 )
55524
( 1.0 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
79027582.0
( 1.0x )
136110
( 0.999 )
55524
( 1.0 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
79027582.0
( 1.0x )
136110
( 0.999 )
55524
( 1.0 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
79027582.0
( 1.0x )
136110
( 0.999 )
55524
( 1.0 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
79027582.0
( 1.0x )
136110
( 0.999 )
55524
( 1.0 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
79027582.0
( 1.0x )
136110
( 0.999 )
55524
( 1.0 )
4096 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP

Anomaly Detection (toycar)

Cycles (Speedup) Total ROM (rel.) Total RAM (rel.) VLEN Layout Kernels Mode Arch Unroll Auto-Vectorization
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
0 NCHW TVM Fallback RV32GC 0 -
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
0 NHWC TVM Fallback RV32GC 0 -
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
3131345.0
( 0.6x )
581646
( 1.835 )
5556
( 1.168 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1886958.0
( Base )
316988
( Base )
4756
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
1886958.0
( 1.0x )
316988
( 1.0 )
4756
( 1.0 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
1885040.0
( 1.0x )
317042
( 1.0 )
4756
( 1.0 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
1885040.0
( 1.0x )
317042
( 1.0 )
4756
( 1.0 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
1885038.0
( 1.0x )
317036
( 1.0 )
4756
( 1.0 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
1885040.0
( 1.0x )
317042
( 1.0 )
4756
( 1.0 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
1885040.0
( 1.0x )
317042
( 1.0 )
4756
( 1.0 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
1885040.0
( 1.0x )
317042
( 1.0 )
4756
( 1.0 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
662968.0
( 2.8x )
318194
( 1.004 )
4756
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
536158.0
( 3.5x )
318188
( 1.004 )
4756
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
472756.0
( 4.0x )
318194
( 1.004 )
4756
( 1.0 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
441450.0
( 4.3x )
318194
( 1.004 )
4756
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
437501.0
( 4.3x )
318194
( 1.004 )
4756
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
438868.0
( 4.3x )
318194
( 1.004 )
4756
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
1885040.0
( 1.0x )
317042
( 1.0 )
4756
( 1.0 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
1885038.0
( 1.0x )
317036
( 1.0 )
4756
( 1.0 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
1885040.0
( 1.0x )
317042
( 1.0 )
4756
( 1.0 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
1885040.0
( 1.0x )
317042
( 1.0 )
4756
( 1.0 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
1885040.0
( 1.0x )
317042
( 1.0 )
4756
( 1.0 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
1885040.0
( 1.0x )
317042
( 1.0 )
4756
( 1.0 )
4096 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP

Visual Wake Words (vww)

Cycles (Speedup) Total ROM (rel.) Total RAM (rel.) VLEN Layout Kernels Mode Arch Unroll Auto-Vectorization
90744530.0
( 0.6x )
542138
( 1.691 )
180976
( 2.113 )
0 NCHW TVM Fallback RV32GC 0 -
85995573.0
( 0.6x )
522178
( 1.629 )
180976
( 2.113 )
0 NHWC TVM Fallback RV32GC 0 -
92931447.0
( 0.6x )
538790
( 1.681 )
180976
( 2.113 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
92422065.0
( 0.6x )
538154
( 1.679 )
180976
( 2.113 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
92516020.0
( 0.6x )
538140
( 1.679 )
180976
( 2.113 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
92233909.0
( 0.6x )
538786
( 1.681 )
180976
( 2.113 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
93365664.0
( 0.6x )
539878
( 1.684 )
180976
( 2.113 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
93365664.0
( 0.6x )
539878
( 1.684 )
180976
( 2.113 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
85978357.0
( 0.6x )
522120
( 1.629 )
180976
( 2.113 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
85978359.0
( 0.6x )
522122
( 1.629 )
180976
( 2.113 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
85978357.0
( 0.6x )
522120
( 1.629 )
180976
( 2.113 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
85978357.0
( 0.6x )
522120
( 1.629 )
180976
( 2.113 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
85978357.0
( 0.6x )
522120
( 1.629 )
180976
( 2.113 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
85978357.0
( 0.6x )
522120
( 1.629 )
180976
( 2.113 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
51918288.0
( Base )
320532
( Base )
85656
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
52886345.0
( 1.0x )
320660
( 1.0 )
85656
( 1.0 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
51908820.0
( 1.0x )
320936
( 1.001 )
85656
( 1.0 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
51908676.0
( 1.0x )
320582
( 1.0 )
85656
( 1.0 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
51908676.0
( 1.0x )
320582
( 1.0 )
85656
( 1.0 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
51908676.0
( 1.0x )
320582
( 1.0 )
85656
( 1.0 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
51908676.0
( 1.0x )
320582
( 1.0 )
85656
( 1.0 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
51908676.0
( 1.0x )
320582
( 1.0 )
85656
( 1.0 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
15410503.0
( 3.4x )
322888
( 1.007 )
85656
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
11891551.0
( 4.4x )
322888
( 1.007 )
85656
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
10530379.0
( 4.9x )
322888
( 1.007 )
85656
( 1.0 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
9996729.0
( 5.2x )
322888
( 1.007 )
85656
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
9949374.0
( 5.2x )
322888
( 1.007 )
85656
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
9952764.0
( 5.2x )
322888
( 1.007 )
85656
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
52886002.0
( 1.0x )
321068
( 1.002 )
85656
( 1.0 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
52880712.0
( 1.0x )
320706
( 1.001 )
85656
( 1.0 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
52880712.0
( 1.0x )
320706
( 1.001 )
85656
( 1.0 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
52880712.0
( 1.0x )
320706
( 1.001 )
85656
( 1.0 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
52880712.0
( 1.0x )
320706
( 1.001 )
85656
( 1.0 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
52880712.0
( 1.0x )
320706
( 1.001 )
85656
( 1.0 )
4096 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP

Original data

Click here to download the raw files for this benchmark.

2024-11-26
2024-11-21
2024-11-19
2024-11-18
2024-07-12
2024-06-29
2024-03-02
2024-02-26
2024-02-23
2024-02-22
2024-02-20
2024-02-11
2023-12-22
Clone this wiki locally