Skip to content

Benchmarks 2024 11 21 TVM GCC O3 spike_rv32

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

Setup

Simulator

  • Spike (riscv-isa-sim ) (ISS, CPI=1)
    • Spike : 0bc176b3fca43560b9e8586cdbc41cfde073e17a
    • Spike PK : 7e9b671c0415dfd7b562ac934feb9380075d4aa2

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: -O3, Target: spike_rv32 )

Audio Wake Words (aww)

Cycles (Speedup) Total ROM (rel.) Total RAM (rel.) VLEN Layout Kernels Mode Arch Unroll Auto-Vectorization
14159229
( 1.1x )
129708
( 1.333 )
59468
( 3.093 )
0 NCHW TVM Fallback RV32GC 0 -
21329955
( 0.8x )
102720
( 1.056 )
59468
( 3.093 )
0 NHWC TVM Fallback RV32GC 0 -
14176298
( 1.1x )
125792
( 1.293 )
59468
( 3.093 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
14176298
( 1.1x )
125792
( 1.293 )
59468
( 3.093 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
14176298
( 1.1x )
125792
( 1.293 )
59468
( 3.093 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
14176298
( 1.1x )
125792
( 1.293 )
59468
( 3.093 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
14176298
( 1.1x )
125792
( 1.293 )
59468
( 3.093 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
14176298
( 1.1x )
125792
( 1.293 )
59468
( 3.093 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
21254354
( 0.8x )
102860
( 1.057 )
59468
( 3.093 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
21254354
( 0.8x )
102860
( 1.057 )
59468
( 3.093 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
21254354
( 0.8x )
102860
( 1.057 )
59468
( 3.093 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
21254354
( 0.8x )
102860
( 1.057 )
59468
( 3.093 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
21254354
( 0.8x )
102860
( 1.057 )
59468
( 3.093 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
21254354
( 0.8x )
102860
( 1.057 )
59468
( 3.093 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
16174620
( Base )
97272
( Base )
19228
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
15525754
( 1.0x )
93888
( 0.965 )
23692
( 1.232 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
16174622
( 1.0x )
97282
( 1.0 )
19228
( 1.0 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
16174620
( 1.0x )
97274
( 1.0 )
19228
( 1.0 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
16174623
( 1.0x )
97280
( 1.0 )
19228
( 1.0 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
16174622
( 1.0x )
97278
( 1.0 )
19228
( 1.0 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
16174624
( 1.0x )
97284
( 1.0 )
19228
( 1.0 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
16174623
( 1.0x )
97280
( 1.0 )
19228
( 1.0 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
8541968
( 1.9x )
99414
( 1.022 )
23692
( 1.232 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
6582909
( 2.5x )
99406
( 1.022 )
23692
( 1.232 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
5388408
( 3.0x )
99412
( 1.022 )
23692
( 1.232 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
5350816
( 3.0x )
99412
( 1.022 )
23692
( 1.232 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
5354205
( 3.0x )
99406
( 1.022 )
23692
( 1.232 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
5357594
( 3.0x )
99410
( 1.022 )
23692
( 1.232 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
15525755
( 1.0x )
93894
( 0.965 )
23692
( 1.232 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
15525755
( 1.0x )
93894
( 0.965 )
23692
( 1.232 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
15525756
( 1.0x )
93900
( 0.965 )
23692
( 1.232 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
15525756
( 1.0x )
93900
( 0.965 )
23692
( 1.232 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
15525756
( 1.0x )
93894
( 0.965 )
23692
( 1.232 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
15525757
( 1.0x )
93902
( 0.965 )
23692
( 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
57355754
( 1.0x )
229052
( 1.619 )
108380
( 1.952 )
0 NCHW TVM Fallback RV32GC 0 -
82362772
( 0.7x )
210516
( 1.488 )
108380
( 1.952 )
0 NHWC TVM Fallback RV32GC 0 -
57347125
( 1.0x )
227504
( 1.608 )
108380
( 1.952 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
57347125
( 1.0x )
227504
( 1.608 )
108380
( 1.952 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
57347125
( 1.0x )
227504
( 1.608 )
108380
( 1.952 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
57347125
( 1.0x )
227504
( 1.608 )
108380
( 1.952 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
57347125
( 1.0x )
227504
( 1.608 )
108380
( 1.952 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
57347125
( 1.0x )
227504
( 1.608 )
108380
( 1.952 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
82394110
( 0.7x )
211220
( 1.493 )
108380
( 1.952 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
82394110
( 0.7x )
211220
( 1.493 )
108380
( 1.952 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
82394110
( 0.7x )
211220
( 1.493 )
108380
( 1.952 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
82394110
( 0.7x )
211220
( 1.493 )
108380
( 1.952 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
82394110
( 0.7x )
211220
( 1.493 )
108380
( 1.952 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
82394110
( 0.7x )
211220
( 1.493 )
108380
( 1.952 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
54531196
( Base )
141492
( Base )
55532
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
72578175
( 0.8x )
140640
( 0.994 )
55532
( 1.0 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
54649850
( 1.0x )
141504
( 1.0 )
55532
( 1.0 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
54649848
( 1.0x )
141502
( 1.0 )
55532
( 1.0 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
54649849
( 1.0x )
141502
( 1.0 )
55532
( 1.0 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
54649851
( 1.0x )
141506
( 1.0 )
55532
( 1.0 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
54649850
( 1.0x )
141506
( 1.0 )
55532
( 1.0 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
54649849
( 1.0x )
141502
( 1.0 )
55532
( 1.0 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
28551122
( 1.9x )
147796
( 1.045 )
55532
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
17915045
( 3.0x )
147794
( 1.045 )
55532
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
13131534
( 4.2x )
147788
( 1.044 )
55532
( 1.0 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
10797807
( 5.1x )
147792
( 1.045 )
55532
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
8769055
( 6.2x )
147798
( 1.045 )
55532
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
8218705
( 6.6x )
147792
( 1.045 )
55532
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
72696839
( 0.8x )
140672
( 0.994 )
55532
( 1.0 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
72696834
( 0.8x )
140664
( 0.994 )
55532
( 1.0 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
72696833
( 0.8x )
140660
( 0.994 )
55532
( 1.0 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
72696835
( 0.8x )
140666
( 0.994 )
55532
( 1.0 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
72696832
( 0.8x )
140658
( 0.994 )
55532
( 1.0 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
72696837
( 0.8x )
140670
( 0.994 )
55532
( 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
1638224
( 1.0x )
585772
( 1.865 )
5556
( 1.168 )
0 NCHW TVM Fallback RV32GC 0 -
1638224
( 1.0x )
585772
( 1.865 )
5556
( 1.168 )
0 NHWC TVM Fallback RV32GC 0 -
1638226
( 1.0x )
585844
( 1.865 )
5556
( 1.168 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1638226
( 1.0x )
585844
( 1.865 )
5556
( 1.168 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1638226
( 1.0x )
585844
( 1.865 )
5556
( 1.168 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1638226
( 1.0x )
585844
( 1.865 )
5556
( 1.168 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1638226
( 1.0x )
585844
( 1.865 )
5556
( 1.168 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1638226
( 1.0x )
585844
( 1.865 )
5556
( 1.168 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1638226
( 1.0x )
585844
( 1.865 )
5556
( 1.168 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1638226
( 1.0x )
585844
( 1.865 )
5556
( 1.168 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1638226
( 1.0x )
585844
( 1.865 )
5556
( 1.168 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1638226
( 1.0x )
585844
( 1.865 )
5556
( 1.168 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1638226
( 1.0x )
585844
( 1.865 )
5556
( 1.168 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1638226
( 1.0x )
585844
( 1.865 )
5556
( 1.168 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1680481
( Base )
314112
( Base )
4756
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
1680481
( 1.0x )
314112
( 1.0 )
4756
( 1.0 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
1679534
( 1.0x )
314234
( 1.0 )
4756
( 1.0 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
1679534
( 1.0x )
314232
( 1.0 )
4756
( 1.0 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
1679534
( 1.0x )
314234
( 1.0 )
4756
( 1.0 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
1679534
( 1.0x )
314232
( 1.0 )
4756
( 1.0 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
1679534
( 1.0x )
314234
( 1.0 )
4756
( 1.0 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
1679534
( 1.0x )
314232
( 1.0 )
4756
( 1.0 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
999137
( 1.7x )
316620
( 1.008 )
4756
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
717977
( 2.3x )
316620
( 1.008 )
4756
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
577397
( 2.9x )
316620
( 1.008 )
4756
( 1.0 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
507911
( 3.3x )
316620
( 1.008 )
4756
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
502549
( 3.3x )
316620
( 1.008 )
4756
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
501462
( 3.4x )
316620
( 1.008 )
4756
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
1679534
( 1.0x )
314234
( 1.0 )
4756
( 1.0 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
1679534
( 1.0x )
314232
( 1.0 )
4756
( 1.0 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
1679534
( 1.0x )
314234
( 1.0 )
4756
( 1.0 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
1679534
( 1.0x )
314230
( 1.0 )
4756
( 1.0 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
1679534
( 1.0x )
314236
( 1.0 )
4756
( 1.0 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
1679534
( 1.0x )
314236
( 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
41737089
( 1.1x )
598066
( 1.812 )
180976
( 2.113 )
0 NCHW TVM Fallback RV32GC 0 -
60685270
( 0.8x )
527742
( 1.599 )
180976
( 2.113 )
0 NHWC TVM Fallback RV32GC 0 -
41660413
( 1.1x )
581892
( 1.763 )
180976
( 2.113 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
41660413
( 1.1x )
581892
( 1.763 )
180976
( 2.113 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
41660413
( 1.1x )
581892
( 1.763 )
180976
( 2.113 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
41660413
( 1.1x )
581892
( 1.763 )
180976
( 2.113 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
41660413
( 1.1x )
581892
( 1.763 )
180976
( 2.113 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
41660413
( 1.1x )
581892
( 1.763 )
180976
( 2.113 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
60372076
( 0.8x )
529306
( 1.603 )
180976
( 2.113 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
60372076
( 0.8x )
529306
( 1.603 )
180976
( 2.113 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
60372076
( 0.8x )
529306
( 1.603 )
180976
( 2.113 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
60372076
( 0.8x )
529306
( 1.603 )
180976
( 2.113 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
60372076
( 0.8x )
529306
( 1.603 )
180976
( 2.113 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
60372076
( 0.8x )
529306
( 1.603 )
180976
( 2.113 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
46442261
( Base )
330108
( Base )
85664
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
46011367
( 1.0x )
326976
( 0.991 )
85664
( 1.0 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
46442263
( 1.0x )
330114
( 1.0 )
85664
( 1.0 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
46442262
( 1.0x )
330118
( 1.0 )
85664
( 1.0 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
46442265
( 1.0x )
330128
( 1.0 )
85664
( 1.0 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
46442264
( 1.0x )
330120
( 1.0 )
85664
( 1.0 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
46442257
( 1.0x )
330094
( 1.0 )
85664
( 1.0 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
46442263
( 1.0x )
330110
( 1.0 )
85664
( 1.0 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
23682892
( 2.0x )
332370
( 1.007 )
85664
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
17563574
( 2.6x )
332394
( 1.007 )
85664
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
15240829
( 3.0x )
332380
( 1.007 )
85664
( 1.0 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
14181565
( 3.3x )
332368
( 1.007 )
85664
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
14097128
( 3.3x )
332380
( 1.007 )
85664
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
14100515
( 3.3x )
332368
( 1.007 )
85664
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
46011370
( 1.0x )
326974
( 0.991 )
85664
( 1.0 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
46011370
( 1.0x )
326978
( 0.991 )
85664
( 1.0 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
46011369
( 1.0x )
326970
( 0.99 )
85664
( 1.0 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
46011371
( 1.0x )
326976
( 0.991 )
85664
( 1.0 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
46011368
( 1.0x )
326966
( 0.99 )
85664
( 1.0 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
46011368
( 1.0x )
326970
( 0.99 )
85664
( 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