Arduino Uno vs Nucleo G474RE
ATmega328P at 16 MHz against Cortex-M4F (STM32G474) at 170 MHz, on real hardware, same C kernels, clocks verified.
Nucleo G474RE
Cortex-M4F (STM32G474)
- Family
- Arm Cortex-M
- Board
- Nucleo G474RE
- Clock
- 170 MHz
- float / double
- 32-bit / 64-bit
Typical gap
55.3×
Nucleo G474RE faster, geometric mean of 30 cells
Biggest win for Arduino Uno
0.15×
double modulo
Biggest win for Nucleo G474RE
352×
uint32_t divide
Clock for clock
5.20×
Nucleo G474RE needs fewer cycles per op (10.6× clock gap)
Operation by operation
Every cell
How many times faster Arduino Uno is than Nucleo G474RE, operations per second. Blue: Arduino Uno ahead. Orange: Nucleo G474RE ahead.
| Add | Subtract | Multiply | Divide | Modulo | |
|---|---|---|---|---|---|
| uint8_t | 1/24.0× 490 k/s · 11.7 M/s | 1/24.0× 490 k/s · 11.7 M/s | 1/26.2× 448 k/s · 11.7 M/s | 1/62.9× 142 k/s · 8.96 M/s | 1/56.9× 142 k/s · 8.1 M/s |
| uint16_t | 1/22.5× 522 k/s · 11.7 M/s | 1/22.5× 522 k/s · 11.7 M/s | 1/28.4× 413 k/s · 11.7 M/s | 1/118× 69.5 k/s · 8.2 M/s | 1/109× 69.5 k/s · 7.56 M/s |
| uint32_t | 1/36.8× 342 k/s · 12.6 M/s | 1/36.9× 342 k/s · 12.6 M/s | 1/93.4× 135 k/s · 12.6 M/s | 1/352× 24.8 k/s · 8.73 M/s | 1/335× 24.8 k/s · 8.3 M/s |
| uint64_t | 1/101× 74.6 k/s · 7.56 M/s | 1/101× 74.6 k/s · 7.56 M/s | 1/186× 35.9 k/s · 6.67 M/s | 1/75.8× 15.3 k/s · 1.16 M/s | 1/76.2× 15.2 k/s · 1.16 M/s |
| float | 1/119× 98.3 k/s · 11.7 M/s | 1/119× 98.7 k/s · 11.7 M/s | 1/135× 87 k/s · 11.7 M/s | 1/199× 32.2 k/s · 6.42 M/s | 1/13.0× 103 k/s · 1.34 M/s |
| double | 1/16.1× 98.1 k/s · 1.58 M/s | 1/16.0× 98.6 k/s · 1.58 M/s | 1/25.6× 86.8 k/s · 2.22 M/s | 1/51.9× 32.2 k/s · 1.67 M/s | 1/6.70× 103 k/s · 688 k/s |