Skip to content

Benchmarks 2024 11 21 TVM LLVM 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: llvm, 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
13463137
( 1.1x )
128328
( 1.41 )
59444
( 3.094 )
0 NCHW TVM Fallback RV32GC 0 -
20995666
( 0.7x )
114936
( 1.263 )
59444
( 3.094 )
0 NHWC TVM Fallback RV32GC 0 -
6381776
( 2.4x )
124962
( 1.373 )
59444
( 3.094 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
6382022
( 2.4x )
124962
( 1.373 )
59444
( 3.094 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
6386314
( 2.4x )
124962
( 1.373 )
59444
( 3.094 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
6386270
( 2.4x )
124962
( 1.373 )
59444
( 3.094 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
6394746
( 2.4x )
124962
( 1.373 )
59444
( 3.094 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
6404913
( 2.4x )
124962
( 1.373 )
59444
( 3.094 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
3645557
( 4.2x )
131336
( 1.443 )
59444
( 3.094 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
2203743
( 6.9x )
131336
( 1.443 )
59444
( 3.094 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1483616
( 10.2x )
131336
( 1.443 )
59444
( 3.094 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1633682
( 9.3x )
131336
( 1.443 )
59444
( 3.094 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
21399815
( 0.7x )
131336
( 1.443 )
59444
( 3.094 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
21403204
( 0.7x )
131336
( 1.443 )
59444
( 3.094 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
15197286
( Base )
90988
( Base )
19212
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
14572009
( 1.0x )
90738
( 0.997 )
23676
( 1.232 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
5740108
( 2.6x )
98530
( 1.083 )
19252
( 1.002 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
5157367
( 2.9x )
98530
( 1.083 )
19252
( 1.002 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
4865375
( 3.1x )
98530
( 1.083 )
19252
( 1.002 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
4726157
( 3.2x )
98530
( 1.083 )
19252
( 1.002 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
13195473
( 1.2x )
98530
( 1.083 )
19252
( 1.002 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
13188695
( 1.2x )
98530
( 1.083 )
19252
( 1.002 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
5108678
( 3.0x )
93352
( 1.026 )
23676
( 1.232 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
3974676
( 3.8x )
93352
( 1.026 )
23676
( 1.232 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
3416406
( 4.4x )
93352
( 1.026 )
23676
( 1.232 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
3375422
( 4.5x )
93352
( 1.026 )
23676
( 1.232 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
3378811
( 4.5x )
93352
( 1.026 )
23676
( 1.232 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
3382200
( 4.5x )
93352
( 1.026 )
23676
( 1.232 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
6484176
( 2.3x )
99054
( 1.089 )
23716
( 1.234 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
5901435
( 2.6x )
99054
( 1.089 )
23716
( 1.234 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
5609443
( 2.7x )
99054
( 1.089 )
23716
( 1.234 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
5470225
( 2.8x )
99054
( 1.089 )
23716
( 1.234 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
13939541
( 1.1x )
99054
( 1.089 )
23716
( 1.234 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
13939541
( 1.1x )
99054
( 1.089 )
23716
( 1.234 )
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
60477978
( 0.9x )
233212
( 1.686 )
108356
( 1.952 )
0 NCHW TVM Fallback RV32GC 0 -
66644688
( 0.8x )
228230
( 1.65 )
108356
( 1.952 )
0 NHWC TVM Fallback RV32GC 0 -
115999621
( 0.5x )
303086
( 2.191 )
108356
( 1.952 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
115961248
( 0.5x )
303082
( 2.191 )
108356
( 1.952 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
116343311
( 0.5x )
303086
( 2.191 )
108356
( 1.952 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
116353436
( 0.5x )
303082
( 2.191 )
108356
( 1.952 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
116371580
( 0.5x )
303082
( 2.191 )
108356
( 1.952 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
116405472
( 0.5x )
303086
( 2.191 )
108356
( 1.952 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
54751250
( 1.0x )
230114
( 1.663 )
108356
( 1.952 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
51625344
( 1.1x )
230114
( 1.663 )
108356
( 1.952 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
50149363
( 1.1x )
230116
( 1.663 )
108356
( 1.952 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
75115176
( 0.7x )
230114
( 1.663 )
108356
( 1.952 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
91728033
( 0.6x )
230114
( 1.663 )
108356
( 1.952 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
91744981
( 0.6x )
230124
( 1.664 )
108356
( 1.952 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
56214248
( Base )
138336
( Base )
55516
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
72237140
( 0.8x )
137914
( 0.997 )
55516
( 1.0 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
11790683
( 4.8x )
147030
( 1.063 )
55548
( 1.001 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
11337439
( 5.0x )
147030
( 1.063 )
55548
( 1.001 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
14183639
( 4.0x )
147030
( 1.063 )
55548
( 1.001 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
15672539
( 3.6x )
147030
( 1.063 )
55548
( 1.001 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
16349829
( 3.4x )
147030
( 1.063 )
55548
( 1.001 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
35542430
( 1.6x )
147030
( 1.063 )
55548
( 1.001 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
15158451
( 3.7x )
140960
( 1.019 )
55516
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
9575255
( 5.9x )
140960
( 1.019 )
55516
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
7029417
( 8.0x )
140960
( 1.019 )
55516
( 1.0 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
5787289
( 9.7x )
140960
( 1.019 )
55516
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
4862414
( 11.6x )
140960
( 1.019 )
55516
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
4616711
( 12.2x )
140960
( 1.019 )
55516
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
17562990
( 3.2x )
146312
( 1.058 )
55548
( 1.001 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
16530556
( 3.4x )
146312
( 1.058 )
55548
( 1.001 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
17287920
( 3.3x )
146312
( 1.058 )
55548
( 1.001 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
17004708
( 3.3x )
146312
( 1.058 )
55548
( 1.001 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
16537166
( 3.4x )
146312
( 1.058 )
55548
( 1.001 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
43320167
( 1.3x )
146312
( 1.058 )
55548
( 1.001 )
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
1640614
( 1.0x )
589816
( 1.872 )
5548
( 1.168 )
0 NCHW TVM Fallback RV32GC 0 -
1640614
( 1.0x )
589816
( 1.872 )
5548
( 1.168 )
0 NHWC TVM Fallback RV32GC 0 -
834169
( 2.1x )
590836
( 1.875 )
5548
( 1.168 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
775542
( 2.2x )
590836
( 1.875 )
5548
( 1.168 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
759687
( 2.3x )
590836
( 1.875 )
5548
( 1.168 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
748650
( 2.3x )
590836
( 1.875 )
5548
( 1.168 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
748215
( 2.3x )
590836
( 1.875 )
5548
( 1.168 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1444951
( 1.2x )
590836
( 1.875 )
5548
( 1.168 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
834169
( 2.1x )
590836
( 1.875 )
5548
( 1.168 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
775542
( 2.2x )
590836
( 1.875 )
5548
( 1.168 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
759687
( 2.3x )
590836
( 1.875 )
5548
( 1.168 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
748650
( 2.3x )
590836
( 1.875 )
5548
( 1.168 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
748215
( 2.3x )
590836
( 1.875 )
5548
( 1.168 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1444951
( 1.2x )
590836
( 1.875 )
5548
( 1.168 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1716826
( Base )
315108
( Base )
4748
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
1716826
( 1.0x )
315108
( 1.0 )
4748
( 1.0 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
578890
( 3.0x )
316204
( 1.003 )
4748
( 1.0 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
492725
( 3.5x )
316204
( 1.003 )
4748
( 1.0 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
447509
( 3.8x )
316204
( 1.003 )
4748
( 1.0 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
424901
( 4.0x )
316204
( 1.003 )
4748
( 1.0 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
413597
( 4.2x )
316204
( 1.003 )
4748
( 1.0 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
1350538
( 1.3x )
316204
( 1.003 )
4748
( 1.0 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
615647
( 2.8x )
316414
( 1.004 )
4748
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
498967
( 3.4x )
316414
( 1.004 )
4748
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
440627
( 3.9x )
316414
( 1.004 )
4748
( 1.0 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
411781
( 4.2x )
316414
( 1.004 )
4748
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
408150
( 4.2x )
316414
( 1.004 )
4748
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
406294
( 4.2x )
316414
( 1.004 )
4748
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
578890
( 3.0x )
316204
( 1.003 )
4748
( 1.0 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
492725
( 3.5x )
316204
( 1.003 )
4748
( 1.0 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
447509
( 3.8x )
316204
( 1.003 )
4748
( 1.0 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
424901
( 4.0x )
316204
( 1.003 )
4748
( 1.0 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
413597
( 4.2x )
316204
( 1.003 )
4748
( 1.0 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
1350538
( 1.3x )
316204
( 1.003 )
4748
( 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
38492509
( 1.2x )
599828
( 1.853 )
180960
( 2.113 )
0 NCHW TVM Fallback RV32GC 0 -
55783771
( 0.8x )
574392
( 1.774 )
180960
( 2.113 )
0 NHWC TVM Fallback RV32GC 0 -
72451208
( 0.6x )
752566
( 2.324 )
180960
( 2.113 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
72395265
( 0.6x )
752562
( 2.324 )
180960
( 2.113 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
72398656
( 0.6x )
752564
( 2.324 )
180960
( 2.113 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
72408823
( 0.6x )
752564
( 2.324 )
180960
( 2.113 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
72432546
( 0.6x )
752564
( 2.324 )
180960
( 2.113 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
72479991
( 0.6x )
752562
( 2.324 )
180960
( 2.113 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
12075833
( 3.8x )
634194
( 1.959 )
180960
( 2.113 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
8621760
( 5.3x )
634194
( 1.959 )
180960
( 2.113 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
10064820
( 4.5x )
634190
( 1.959 )
180960
( 2.113 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
18233473
( 2.5x )
634200
( 1.959 )
180960
( 2.113 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
27235667
( 1.7x )
634204
( 1.959 )
180960
( 2.113 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
52130313
( 0.9x )
634204
( 1.959 )
180960
( 2.113 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
45311162
( Base )
323774
( Base )
85648
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
44877717
( 1.0x )
323664
( 1.0 )
85648
( 1.0 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
17567805
( 2.6x )
332412
( 1.027 )
85792
( 1.002 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
17119263
( 2.6x )
332412
( 1.027 )
85792
( 1.002 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
18291998
( 2.5x )
332408
( 1.027 )
85792
( 1.002 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
21441713
( 2.1x )
332410
( 1.027 )
85792
( 1.002 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
24968159
( 1.8x )
332410
( 1.027 )
85792
( 1.002 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
38917135
( 1.2x )
332412
( 1.027 )
85792
( 1.002 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
13357010
( 3.4x )
327252
( 1.011 )
85648
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
10036034
( 4.5x )
327254
( 1.011 )
85648
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
8744618
( 5.2x )
327252
( 1.011 )
85648
( 1.0 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
8240634
( 5.5x )
327254
( 1.011 )
85648
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
8196257
( 5.5x )
327254
( 1.011 )
85648
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
8199646
( 5.5x )
327252
( 1.011 )
85648
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
20316581
( 2.2x )
333070
( 1.029 )
85792
( 1.002 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
20031336
( 2.3x )
333068
( 1.029 )
85792
( 1.002 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
21542759
( 2.1x )
333066
( 1.029 )
85792
( 1.002 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
24692474
( 1.8x )
333068
( 1.029 )
85792
( 1.002 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
28218920
( 1.6x )
333070
( 1.029 )
85792
( 1.002 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
42174674
( 1.1x )
333070
( 1.029 )
85792
( 1.002 )
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