Thing Done

← The fleet

Pi Pico 2W (RISC-V) vs Arduino Uno

Hazard3 RV32IMAC (RP2350) at 150 MHz against ATmega328P at 16 MHz, on real hardware, same C kernels, clocks verified.

Pi Pico 2W (RISC-V)

Pi Pico 2W (RISC-V)

Hazard3 RV32IMAC (RP2350)
Family
RISC-V
Board
Pi Pico 2W (RISC-V)
Clock
150 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
35.2×
Pi Pico 2W (RISC-V) faster, geometric mean of 30 cells
Biggest win for Pi Pico 2W (RISC-V)
206×
uint64_t multiply
Closest cell
7.11×
double modulo
Clock for clock
3.76×
Pi Pico 2W (RISC-V) needs fewer cycles per op (9.38× clock gap)

Operation by operation

Every cell

How many times faster Pi Pico 2W (RISC-V) is than Arduino Uno, operations per second. Blue: Pi Pico 2W (RISC-V) ahead. Orange: Arduino Uno ahead.

AddSubtractMultiplyDivideModulo
uint8_t 25.0× 12.2 M/s · 490 k/s 27.2× 13.3 M/s · 490 k/s 29.7× 13.3 M/s · 448 k/s 37.2× 5.3 M/s · 142 k/s 37.2× 5.3 M/s · 142 k/s
uint16_t 21.7× 11.3 M/s · 522 k/s 21.7× 11.3 M/s · 522 k/s 25.4× 10.5 M/s · 413 k/s 71.2× 4.94 M/s · 69.5 k/s 68.9× 4.79 M/s · 69.5 k/s
uint32_t 35.7× 12.2 M/s · 342 k/s 33.0× 11.3 M/s · 342 k/s 83.7× 11.3 M/s · 135 k/s 199× 4.94 M/s · 24.8 k/s 199× 4.94 M/s · 24.8 k/s
uint64_t 110× 8.2 M/s · 74.6 k/s 110× 8.2 M/s · 74.6 k/s 206× 7.39 M/s · 35.9 k/s 53.8× 822 k/s · 15.3 k/s 52.2× 794 k/s · 15.2 k/s
float 24.7× 2.43 M/s · 98.3 k/s 24.6× 2.43 M/s · 98.7 k/s 34.2× 2.98 M/s · 87 k/s 23.5× 758 k/s · 32.2 k/s 11.1× 1.14 M/s · 103 k/s
double 12.4× 1.21 M/s · 98.1 k/s 12.6× 1.24 M/s · 98.6 k/s 7.81× 678 k/s · 86.8 k/s 12.2× 394 k/s · 32.2 k/s 7.11× 731 k/s · 103 k/s

Where they sit in the fleet

Keep comparing

Swap sides