Skip to content

Benchmarks 2024 11 21 TVM LLVM Os 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: -Os, Target: spike_rv32 )

Audio Wake Words (aww)

Cycles (Speedup) Total ROM (rel.) Total RAM (rel.) VLEN Layout Kernels Mode Arch Unroll Auto-Vectorization
29352217
( 0.5x )
109244
( 1.214 )
59444
( 3.094 )
0 NCHW TVM Fallback RV32GC 0 -
24905501
( 0.6x )
102590
( 1.14 )
59444
( 3.094 )
0 NHWC TVM Fallback RV32GC 0 -
6067390
( 2.5x )
105916
( 1.177 )
59444
( 3.094 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
6067390
( 2.5x )
105916
( 1.177 )
59444
( 3.094 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
6067390
( 2.5x )
105916
( 1.177 )
59444
( 3.094 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
6067390
( 2.5x )
105916
( 1.177 )
59444
( 3.094 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
6067390
( 2.5x )
105916
( 1.177 )
59444
( 3.094 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
6067390
( 2.5x )
105916
( 1.177 )
59444
( 3.094 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
10044946
( 1.5x )
103126
( 1.146 )
59444
( 3.094 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
8396946
( 1.8x )
103126
( 1.146 )
59444
( 3.094 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
7572946
( 2.0x )
103126
( 1.146 )
59444
( 3.094 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
7160946
( 2.1x )
103126
( 1.146 )
59444
( 3.094 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
7160946
( 2.1x )
103126
( 1.146 )
59444
( 3.094 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
7160946
( 2.1x )
103126
( 1.146 )
59444
( 3.094 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
15180894
( Base )
89970
( Base )
19212
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
14604217
( 1.0x )
89076
( 0.99 )
23676
( 1.232 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
7273918
( 2.1x )
93018
( 1.034 )
19284
( 1.004 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
6431611
( 2.4x )
93018
( 1.034 )
19284
( 1.004 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
6010555
( 2.5x )
93018
( 1.034 )
19284
( 1.004 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
5800027
( 2.6x )
93018
( 1.034 )
19284
( 1.004 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
5803416
( 2.6x )
93018
( 1.034 )
19284
( 1.004 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
5806805
( 2.6x )
93018
( 1.034 )
19284
( 1.004 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
5120821
( 3.0x )
91026
( 1.012 )
23676
( 1.232 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
3986803
( 3.8x )
91026
( 1.012 )
23676
( 1.232 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
3428525
( 4.4x )
91026
( 1.012 )
23676
( 1.232 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
3387537
( 4.5x )
91026
( 1.012 )
23676
( 1.232 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
3390926
( 4.5x )
91026
( 1.012 )
23676
( 1.232 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
3394315
( 4.5x )
91026
( 1.012 )
23676
( 1.232 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
8118832
( 1.9x )
91804
( 1.02 )
23748
( 1.236 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
7276525
( 2.1x )
91804
( 1.02 )
23748
( 1.236 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
6855469
( 2.2x )
91804
( 1.02 )
23748
( 1.236 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
6644941
( 2.3x )
91804
( 1.02 )
23748
( 1.236 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
6648330
( 2.3x )
91804
( 1.02 )
23748
( 1.236 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
6651719
( 2.3x )
91804
( 1.02 )
23748
( 1.236 )
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
124501442
( 0.5x )
218448
( 1.589 )
108356
( 1.952 )
0 NCHW TVM Fallback RV32GC 0 -
101626965
( 0.6x )
208890
( 1.52 )
108356
( 1.952 )
0 NHWC TVM Fallback RV32GC 0 -
25170472
( 2.2x )
214578
( 1.561 )
108356
( 1.952 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
25170472
( 2.2x )
214578
( 1.561 )
108356
( 1.952 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
25170474
( 2.2x )
214586
( 1.561 )
108356
( 1.952 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
25170474
( 2.2x )
214586
( 1.561 )
108356
( 1.952 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
25170473
( 2.2x )
214580
( 1.561 )
108356
( 1.952 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
25170472
( 2.2x )
214578
( 1.561 )
108356
( 1.952 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
37227344
( 1.5x )
209670
( 1.526 )
108356
( 1.952 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
28176208
( 2.0x )
209670
( 1.526 )
108356
( 1.952 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
25911632
( 2.2x )
209670
( 1.526 )
108356
( 1.952 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
25467470
( 2.2x )
209662
( 1.526 )
108356
( 1.952 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
25467470
( 2.2x )
209662
( 1.526 )
108356
( 1.952 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
25467470
( 2.2x )
209662
( 1.526 )
108356
( 1.952 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
56364139
( Base )
137434
( Base )
55516
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
72376786
( 0.8x )
136732
( 0.995 )
55516
( 1.0 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
26154130
( 2.2x )
140960
( 1.026 )
55588
( 1.001 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
18289343
( 3.1x )
140960
( 1.026 )
55588
( 1.001 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
14602807
( 3.9x )
140960
( 1.026 )
55588
( 1.001 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
12923379
( 4.4x )
140960
( 1.026 )
55588
( 1.001 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
12107568
( 4.7x )
140960
( 1.026 )
55588
( 1.001 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
11496557
( 4.9x )
140960
( 1.026 )
55588
( 1.001 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
15262911
( 3.7x )
139180
( 1.013 )
55516
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
9679715
( 5.8x )
139180
( 1.013 )
55516
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
7133877
( 7.9x )
139180
( 1.013 )
55516
( 1.0 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
5891749
( 9.6x )
139180
( 1.013 )
55516
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
4966874
( 11.3x )
139180
( 1.013 )
55516
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
4721171
( 11.9x )
139180
( 1.013 )
55516
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
20419156
( 2.8x )
139628
( 1.016 )
55588
( 1.001 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
14323841
( 3.9x )
139628
( 1.016 )
55588
( 1.001 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
11466745
( 4.9x )
139628
( 1.016 )
55588
( 1.001 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
10165173
( 5.5x )
139628
( 1.016 )
55588
( 1.001 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
9533682
( 5.9x )
139628
( 1.016 )
55588
( 1.001 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
9060911
( 6.2x )
139628
( 1.016 )
55588
( 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
3203505
( 0.5x )
580884
( 1.844 )
5548
( 1.168 )
0 NCHW TVM Fallback RV32GC 0 -
3203505
( 0.5x )
580884
( 1.844 )
5548
( 1.168 )
0 NHWC TVM Fallback RV32GC 0 -
1037055
( 1.7x )
580062
( 1.842 )
5548
( 1.168 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1037055
( 1.7x )
580062
( 1.842 )
5548
( 1.168 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1037055
( 1.7x )
580062
( 1.842 )
5548
( 1.168 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1037055
( 1.7x )
580062
( 1.842 )
5548
( 1.168 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1037055
( 1.7x )
580062
( 1.842 )
5548
( 1.168 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1037055
( 1.7x )
580062
( 1.842 )
5548
( 1.168 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
1037055
( 1.7x )
580062
( 1.842 )
5548
( 1.168 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1037055
( 1.7x )
580062
( 1.842 )
5548
( 1.168 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1037055
( 1.7x )
580062
( 1.842 )
5548
( 1.168 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1037055
( 1.7x )
580062
( 1.842 )
5548
( 1.168 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1037055
( 1.7x )
580062
( 1.842 )
5548
( 1.168 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1037055
( 1.7x )
580062
( 1.842 )
5548
( 1.168 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
1719020
( Base )
314944
( Base )
4748
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
1719018
( 1.0x )
314940
( 1.0 )
4748
( 1.0 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
623320
( 2.8x )
315554
( 1.002 )
4748
( 1.0 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
509400
( 3.4x )
315556
( 1.002 )
4748
( 1.0 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
452437
( 3.8x )
315546
( 1.002 )
4748
( 1.0 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
423960
( 4.1x )
315554
( 1.002 )
4748
( 1.0 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
409718
( 4.2x )
315550
( 1.002 )
4748
( 1.0 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
407935
( 4.2x )
315552
( 1.002 )
4748
( 1.0 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
617815
( 2.8x )
316322
( 1.004 )
4748
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
501134
( 3.4x )
316318
( 1.004 )
4748
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
442794
( 3.9x )
316318
( 1.004 )
4748
( 1.0 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
413949
( 4.2x )
316320
( 1.004 )
4748
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
410318
( 4.2x )
316320
( 1.004 )
4748
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
408460
( 4.2x )
316314
( 1.004 )
4748
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
623321
( 2.8x )
315556
( 1.002 )
4748
( 1.0 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
509399
( 3.4x )
315554
( 1.002 )
4748
( 1.0 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
452440
( 3.8x )
315554
( 1.002 )
4748
( 1.0 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
423960
( 4.1x )
315554
( 1.002 )
4748
( 1.0 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
409720
( 4.2x )
315554
( 1.002 )
4748
( 1.0 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
407936
( 4.2x )
315554
( 1.002 )
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
84668759
( 0.5x )
545120
( 1.689 )
180952
( 2.113 )
0 NCHW TVM Fallback RV32GC 0 -
72594391
( 0.6x )
523034
( 1.62 )
180952
( 2.113 )
0 NHWC TVM Fallback RV32GC 0 -
18317731
( 2.5x )
534920
( 1.657 )
180952
( 2.113 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
18317731
( 2.5x )
534920
( 1.657 )
180952
( 2.113 )
256 NCHW TVM Fallback RV32GCV 0 Loop+SLP
18317730
( 2.5x )
534918
( 1.657 )
180952
( 2.113 )
512 NCHW TVM Fallback RV32GCV 0 Loop+SLP
18317732
( 2.5x )
534922
( 1.657 )
180952
( 2.113 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
18317732
( 2.5x )
534922
( 1.657 )
180952
( 2.113 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
18321118
( 2.5x )
534916
( 1.657 )
180952
( 2.113 )
4096 NCHW TVM Fallback RV32GCV 0 Loop+SLP
30926394
( 1.5x )
524372
( 1.625 )
180952
( 2.113 )
128 NHWC TVM Fallback RV32GCV 0 Loop+SLP
26295067
( 1.7x )
524374
( 1.625 )
180952
( 2.113 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
24098058
( 1.9x )
524372
( 1.625 )
180952
( 2.113 )
512 NHWC TVM Fallback RV32GCV 0 Loop+SLP
23175523
( 2.0x )
524374
( 1.625 )
180952
( 2.113 )
1024 NHWC TVM Fallback RV32GCV 0 Loop+SLP
22810302
( 2.0x )
524372
( 1.625 )
180952
( 2.113 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
22782402
( 2.0x )
524372
( 1.625 )
180952
( 2.113 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
45297540
( Base )
322770
( Base )
85648
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
45040272
( 1.0x )
322000
( 0.998 )
85648
( 1.0 )
0 NHWC muRISCV-NN Vector (Portable) RV32GC 0 -
19673722
( 2.3x )
326836
( 1.013 )
85864
( 1.003 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
16807323
( 2.7x )
326838
( 1.013 )
85864
( 1.003 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
15434139
( 2.9x )
326840
( 1.013 )
85864
( 1.003 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
14929898
( 3.0x )
326836
( 1.013 )
85864
( 1.003 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
14726768
( 3.1x )
326838
( 1.013 )
85864
( 1.003 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
14712721
( 3.1x )
326838
( 1.013 )
85864
( 1.003 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
13475723
( 3.4x )
324902
( 1.007 )
85648
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
10154723
( 4.5x )
324902
( 1.007 )
85648
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
8863295
( 5.1x )
324904
( 1.007 )
85648
( 1.0 )
512 NHWC muRISCV-NN Vector RV32GCV 0 -
8359305
( 5.4x )
324902
( 1.007 )
85648
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
8314924
( 5.4x )
324900
( 1.007 )
85648
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
8318313
( 5.4x )
324900
( 1.007 )
85648
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -
22512782
( 2.0x )
325728
( 1.009 )
85864
( 1.003 )
128 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
19729326
( 2.3x )
325728
( 1.009 )
85864
( 1.003 )
256 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
18397614
( 2.5x )
325728
( 1.009 )
85864
( 1.003 )
512 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
17893374
( 2.5x )
325728
( 1.009 )
85864
( 1.003 )
1024 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
17690243
( 2.6x )
325728
( 1.009 )
85864
( 1.003 )
2048 NHWC muRISCV-NN Vector (Portable) RV32GCV 0 Loop+SLP
17676195
( 2.6x )
325724
( 1.009 )
85864
( 1.003 )
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