Thing Done

← The fleet

dsPIC33AK512 vs Arduino Uno

dsPIC33A (dsPIC33AK512MPS506) at 200 MHz against ATmega328P at 16 MHz, on real hardware, same C kernels, clocks verified.

dsPIC33AK512MPS506 Curiosity Nano

dsPIC33AK512

dsPIC33A (dsPIC33AK512MPS506)
Family
PIC / dsPIC
Board
dsPIC33AK512MPS506 Curiosity Nano
Clock
200 MHz
float / double
32-bit / 32-bit
Arduino Uno

Arduino Uno

ATmega328P
Family
AVR
Board
Arduino Uno
Clock
16 MHz
float / double
32-bit / 32-bit
Typical gap
61.0×
dsPIC33AK512 faster, geometric mean of 30 cells
Biggest win for dsPIC33AK512
303×
uint32_t divide
Closest cell
6.49×
uint64_t divide
Clock for clock
4.88×
dsPIC33AK512 needs fewer cycles per op (12.5× clock gap)

Operation by operation

Every cell

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

AddSubtractMultiplyDivideModulo
uint8_t 35.2× 17.3 M/s · 490 k/s 35.2× 17.3 M/s · 490 k/s 38.5× 17.3 M/s · 448 k/s 65.1× 9.26 M/s · 142 k/s 54.9× 7.81 M/s · 142 k/s
uint16_t 24.6× 12.8 M/s · 522 k/s 24.6× 12.8 M/s · 522 k/s 38.4× 15.9 M/s · 413 k/s 133× 9.26 M/s · 69.5 k/s 112× 7.81 M/s · 69.5 k/s
uint32_t 29.8× 10.2 M/s · 342 k/s 29.8× 10.2 M/s · 342 k/s 89.2× 12.1 M/s · 135 k/s 303× 7.52 M/s · 24.8 k/s 273× 6.76 M/s · 24.8 k/s
uint64_t 130× 9.71 M/s · 74.6 k/s 130× 9.71 M/s · 74.6 k/s 171× 6.14 M/s · 35.9 k/s 6.49× 99.2 k/s · 15.3 k/s 6.57× 99.8 k/s · 15.2 k/s
float 86.2× 8.48 M/s · 98.3 k/s 85.8× 8.48 M/s · 98.7 k/s 97.4× 8.48 M/s · 87 k/s 197× 6.33 M/s · 32.2 k/s 19.3× 1.98 M/s · 103 k/s
double 86.4× 8.48 M/s · 98.1 k/s 86.0× 8.48 M/s · 98.6 k/s 97.6× 8.48 M/s · 86.8 k/s 197× 6.33 M/s · 32.2 k/s 19.3× 1.98 M/s · 103 k/s

Where they sit in the fleet

Keep comparing

Swap sides