Arduino Uno vs XIAO MG24
ATmega328P at 16 MHz against Cortex-M33 (EFR32MG24) at 39 MHz, on real hardware, same C kernels, clocks verified.
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.
| Add | Subtract | Multiply | Divide | Modulo | |
|---|---|---|---|---|---|
| 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 |