Thing Done

← The fleet

Nucleo G474RE vs Arduino Uno

Cortex-M4F (STM32G474) at 170 MHz against ATmega328P at 16 MHz, on real hardware, same C kernels, clocks verified.

Nucleo G474RE

Nucleo G474RE

Cortex-M4F (STM32G474)
Family
Arm Cortex-M
Board
Nucleo G474RE
Clock
170 MHz
float / double
32-bit / 64-bit
Arduino Uno

Arduino Uno

ATmega328P
Family
AVR
Board
Arduino Uno
Clock
16 MHz
float / double
32-bit / 32-bit
Typical gap
55.3×
Nucleo G474RE faster, geometric mean of 30 cells
Biggest win for Nucleo G474RE
352×
uint32_t divide
Closest cell
6.70×
double modulo
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 Nucleo G474RE is than Arduino Uno, operations per second. Blue: Nucleo G474RE ahead. Orange: Arduino Uno ahead.

AddSubtractMultiplyDivideModulo
uint8_t 24.0× 11.7 M/s · 490 k/s 24.0× 11.7 M/s · 490 k/s 26.2× 11.7 M/s · 448 k/s 62.9× 8.96 M/s · 142 k/s 56.9× 8.1 M/s · 142 k/s
uint16_t 22.5× 11.7 M/s · 522 k/s 22.5× 11.7 M/s · 522 k/s 28.4× 11.7 M/s · 413 k/s 118× 8.2 M/s · 69.5 k/s 109× 7.56 M/s · 69.5 k/s
uint32_t 36.8× 12.6 M/s · 342 k/s 36.9× 12.6 M/s · 342 k/s 93.4× 12.6 M/s · 135 k/s 352× 8.73 M/s · 24.8 k/s 335× 8.3 M/s · 24.8 k/s
uint64_t 101× 7.56 M/s · 74.6 k/s 101× 7.56 M/s · 74.6 k/s 186× 6.67 M/s · 35.9 k/s 75.8× 1.16 M/s · 15.3 k/s 76.2× 1.16 M/s · 15.2 k/s
float 119× 11.7 M/s · 98.3 k/s 119× 11.7 M/s · 98.7 k/s 135× 11.7 M/s · 87 k/s 199× 6.42 M/s · 32.2 k/s 13.0× 1.34 M/s · 103 k/s
double 16.1× 1.58 M/s · 98.1 k/s 16.0× 1.58 M/s · 98.6 k/s 25.6× 2.22 M/s · 86.8 k/s 51.9× 1.67 M/s · 32.2 k/s 6.70× 688 k/s · 103 k/s

Where they sit in the fleet

Keep comparing

Swap sides