Skip to content

Benchmarks 2024 07 12 TFLM LLVM Os spike_rv64

Philipp van Kempen edited this page Nov 18, 2024 · 1 revision

Setup

Simulator

Toolchains

  • LLVM/Clang:
    • TODO: Version
    • Linker: lld (TODO)
    • RISC-V GCC for Headers, libc,...

Models

Package Versions

  • MLonMCU : main

  • TFLM : main

  • Spike : 0bc176b3fca43560b9e8586cdbc41cfde073e17a

  • Spike PK : 7e9b671c0415dfd7b562ac934feb9380075d4aa2

Miscellaneous

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

Results (Framework: tflm, Backend: tflmi, Toolchain: llvm, Flags: -Os)

Audio Wake Words (aww)

Cycles (Speedup) Total ROM (rel.) Total RAM (rel.) VLEN Kernels Mode Arch Unroll Auto-Vectorization
39726561
( 0.4x )
144344
( 0.875 )
38368
( 1.0 )
128 TFLM Reference RV64GC 0 -
31995059
( 0.5x )
149314
( 0.905 )
38376
( 1.0 )
128 TFLM Reference RV64GCV 0 Loop+SLP
14707968
( Base )
164938
( Base )
38368
( Base )
128 muRISCV-NN Scalar RV64GC 0 -
5814997
( 2.5x )
172038
( 1.043 )
38376
( 1.0 )
128 muRISCV-NN Scalar RV64GCV 0 Loop+SLP
4075836
( 3.6x )
165578
( 1.004 )
38368
( 1.0 )
128 muRISCV-NN Vector RV64GCV 0 -

Image Classification (resnet)

Cycles (Speedup) Total ROM (rel.) Total RAM (rel.) VLEN Kernels Mode Arch Unroll Auto-Vectorization
121121849
( 0.5x )
185832
( 0.935 )
71136
( 1.0 )
128 TFLM Reference RV64GC 0 -
57765532
( 1.0x )
191734
( 0.965 )
71144
( 1.0 )
128 TFLM Reference RV64GCV 0 Loop+SLP
55740377
( Base )
198762
( Base )
71136
( Base )
128 muRISCV-NN Scalar RV64GC 0 -
25745638
( 2.2x )
206928
( 1.041 )
71144
( 1.0 )
128 muRISCV-NN Scalar RV64GCV 0 Loop+SLP
15253027
( 3.7x )
200146
( 1.007 )
71136
( 1.0 )
128 muRISCV-NN Vector RV64GCV 0 -

Anomaly Detection (toycar)

Cycles (Speedup) Total ROM (rel.) Total RAM (rel.) VLEN Kernels Mode Arch Unroll Auto-Vectorization
2786519
( 0.6x )
339238
( 0.988 )
21472
( 1.0 )
128 TFLM Reference RV64GC 0 -
957684
( 1.7x )
341466
( 0.994 )
21472
( 1.0 )
128 TFLM Reference RV64GCV 0 Loop+SLP
1638030
( Base )
343362
( Base )
21472
( Base )
128 muRISCV-NN Scalar RV64GC 0 -
597658
( 2.7x )
346358
( 1.009 )
21472
( 1.0 )
128 muRISCV-NN Scalar RV64GCV 0 Loop+SLP
585725
( 2.8x )
344156
( 1.002 )
21472
( 1.0 )
128 muRISCV-NN Vector RV64GCV 0 -

Visual Wake Words (vww)

Cycles (Speedup) Total ROM (rel.) Total RAM (rel.) VLEN Kernels Mode Arch Unroll Auto-Vectorization
104299852
( 0.4x )
418098
( 0.953 )
136688
( 1.0 )
128 TFLM Reference RV64GC 0 -
67381214
( 0.7x )
423006
( 0.964 )
136696
( 1.0 )
128 TFLM Reference RV64GCV 0 Loop+SLP
43982589
( Base )
438708
( Base )
136688
( Base )
128 muRISCV-NN Scalar RV64GC 0 -
18364049
( 2.4x )
445746
( 1.016 )
136696
( 1.0 )
128 muRISCV-NN Scalar RV64GCV 0 Loop+SLP
13378250
( 3.3x )
439348
( 1.001 )
136688
( 1.0 )
128 muRISCV-NN Vector RV64GCV 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