Thing Done

← The fleet

Arduino Uno vs XIAO MG24

ATmega328P at 16 MHz against Cortex-M33 (EFR32MG24) at 39 MHz, on real hardware, same C kernels, clocks verified.

Arduino Uno

Arduino Uno

ATmega328P
Family
AVR
Board
Arduino Uno
Clock
16 MHz
float / double
32-bit / 32-bit
XIAO MG24 Sense

XIAO MG24

Cortex-M33 (EFR32MG24)
Family
Arm Cortex-M
Board
XIAO MG24 Sense
Clock
39 MHz
float / double
32-bit / 64-bit
Typical gap
13.8×
XIAO MG24 faster, geometric mean of 30 cells
Biggest win for Arduino Uno
0.62×
double modulo
Biggest win for XIAO MG24
89.0×
uint32_t divide
Clock for clock
5.65×
XIAO MG24 needs fewer cycles per op (2.44× clock gap)

Operation by operation

Every cell

How many times faster Arduino Uno is than XIAO MG24, operations per second. Blue: Arduino Uno ahead. Orange: XIAO MG24 ahead.

AddSubtractMultiplyDivideModulo
uint8_t 1/5.54× 490 k/s · 2.71 M/s 1/5.54× 490 k/s · 2.71 M/s 1/5.62× 448 k/s · 2.52 M/s 1/17.2× 142 k/s · 2.44 M/s 1/13.5× 142 k/s · 1.92 M/s
uint16_t 1/5.64× 522 k/s · 2.94 M/s 1/5.61× 522 k/s · 2.93 M/s 1/7.09× 413 k/s · 2.93 M/s 1/30.0× 69.5 k/s · 2.09 M/s 1/25.5× 69.5 k/s · 1.77 M/s
uint32_t 1/9.33× 342 k/s · 3.19 M/s 1/9.34× 342 k/s · 3.19 M/s 1/21.7× 135 k/s · 2.93 M/s 1/89.0× 24.8 k/s · 2.21 M/s 1/79.2× 24.8 k/s · 1.96 M/s
uint64_t 1/31.6× 74.6 k/s · 2.36 M/s 1/31.6× 74.6 k/s · 2.36 M/s 1/54.8× 35.9 k/s · 1.97 M/s 1/18.6× 15.3 k/s · 285 k/s 1/18.7× 15.2 k/s · 285 k/s
float 1/32.3× 98.3 k/s · 3.18 M/s 1/32.2× 98.7 k/s · 3.18 M/s 1/36.6× 87 k/s · 3.18 M/s 1/47.9× 32.2 k/s · 1.54 M/s 1/3.09× 103 k/s · 318 k/s
double 1/3.77× 98.1 k/s · 370 k/s 1/3.74× 98.6 k/s · 368 k/s 1/5.80× 86.8 k/s · 503 k/s 1/11.8× 32.2 k/s · 379 k/s 1/1.60× 103 k/s · 165 k/s

Where they sit in the fleet

Keep comparing

Swap sides