When I was comparing the RP2040 with an ESP32 for audio filters quite some time ago , the ESP32 was winning by a big margin.

The Rasperry Pico has been improved with the new RP2350 and I thought it would be interesting to have a comparision:

I was using the default settings (for cpu speed and optimization)

Type ESP32 RP2040 RP2350 ARM RP2350 RISC
int32_t 318 ms 717 ms 380 ms 420 ms
int64_t 788 ms 2637 ms 937 ms 901 ms
float 264 ms 8660 ms 377 ms 3944 ms
double 4607 ms 14843 ms 2342 ms 14039 ms

In the Arduino Core from Earle Phil Hower we can set the compiler optimization level. This is not available for the ESP32:

Type RP2350 ARM std fast
int32_t 380 ms 3 ms
int64_t 937 ms 8 ms
float 377 ms 4 ms
double 2342 ms 18 ms

Here are my new conclusions:

  • ARM should be preferred to RISC on the RP2350
  • The unoptimized floating point performance is now similar to the ESP32 and for doubles it is even beating the ESP32
  • The compiler optimization level makes an incredible difference for the selected test case!

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *