Skip to content

Benchmarks 2024 11 18 TVM LLVM Os spike_rv32

GitHub Action edited this page Nov 18, 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 -
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 -

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 -
101621833
( 0.6x )
208898
( 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
25170472
( 2.2x )
214578
( 1.561 )
108356
( 1.952 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
25170474
( 2.2x )
214586
( 1.561 )
108356
( 1.952 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
25170475
( 2.2x )
214588
( 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
28176206
( 2.0x )
209662
( 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 -
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 -

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
1719019
( Base )
314942
( Base )
4748
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
623320
( 2.8x )
315554
( 1.002 )
4748
( 1.0 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
509399
( 3.4x )
315552
( 1.002 )
4748
( 1.0 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
452439
( 3.8x )
315552
( 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
409720
( 4.2x )
315554
( 1.002 )
4748
( 1.0 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
407936
( 4.2x )
315554
( 1.002 )
4748
( 1.0 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
617815
( 2.8x )
316320
( 1.004 )
4748
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
501135
( 3.4x )
316320
( 1.004 )
4748
( 1.0 )
256 NHWC muRISCV-NN Vector RV32GCV 0 -
442795
( 3.9x )
316320
( 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 )
316316
( 1.004 )
4748
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -

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 -
72594393
( 0.6x )
523036
( 1.62 )
180952
( 2.113 )
0 NHWC TVM Fallback RV32GC 0 -
18317732
( 2.5x )
534922
( 1.657 )
180952
( 2.113 )
128 NCHW TVM Fallback RV32GCV 0 Loop+SLP
18317732
( 2.5x )
534922
( 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
18317730
( 2.5x )
534918
( 1.657 )
180952
( 2.113 )
1024 NCHW TVM Fallback RV32GCV 0 Loop+SLP
18317729
( 2.5x )
534918
( 1.657 )
180952
( 2.113 )
2048 NCHW TVM Fallback RV32GCV 0 Loop+SLP
18321119
( 2.5x )
534918
( 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
26295069
( 1.7x )
524376
( 1.625 )
180952
( 2.113 )
256 NHWC TVM Fallback RV32GCV 0 Loop+SLP
24098058
( 1.9x )
524374
( 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
22810305
( 2.0x )
524376
( 1.625 )
180952
( 2.113 )
2048 NHWC TVM Fallback RV32GCV 0 Loop+SLP
22782402
( 2.0x )
524374
( 1.625 )
180952
( 2.113 )
4096 NHWC TVM Fallback RV32GCV 0 Loop+SLP
45297541
( Base )
322772
( Base )
85648
( Base )
0 NHWC muRISCV-NN Scalar RV32GC 0 -
19673723
( 2.3x )
326840
( 1.013 )
85864
( 1.003 )
128 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
16807323
( 2.7x )
326840
( 1.013 )
85864
( 1.003 )
256 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
15434140
( 2.9x )
326842
( 1.013 )
85864
( 1.003 )
512 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
14929900
( 3.0x )
326842
( 1.013 )
85864
( 1.003 )
1024 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
14726766
( 3.1x )
326832
( 1.013 )
85864
( 1.003 )
2048 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
14712721
( 3.1x )
326840
( 1.013 )
85864
( 1.003 )
4096 NHWC muRISCV-NN Scalar RV32GCV 0 Loop+SLP
13475723
( 3.4x )
324904
( 1.007 )
85648
( 1.0 )
128 NHWC muRISCV-NN Vector RV32GCV 0 -
10154723
( 4.5x )
324904
( 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 )
324904
( 1.007 )
85648
( 1.0 )
1024 NHWC muRISCV-NN Vector RV32GCV 0 -
8314925
( 5.4x )
324902
( 1.007 )
85648
( 1.0 )
2048 NHWC muRISCV-NN Vector RV32GCV 0 -
8318314
( 5.4x )
324904
( 1.007 )
85648
( 1.0 )
4096 NHWC muRISCV-NN Vector RV32GCV 0 -

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