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