espressif / esp-idf

Espressif IoT Development Framework. Official development framework for Espressif SoCs.
Apache License 2.0
13.36k stars 7.21k forks source link

ESP32-P4 benchmarks (IDFGH-13242) #14177

Open marchingband opened 2 months ago

marchingband commented 2 months ago

Answers checklist.

General issue report

I asked this question on reddit and an esp employee suggested I move it here...

1) Will the P4 have an improved FPU? Are there any benchmarks available? 2) Will the P4 have an improved ADC? Are there any test results available?

thanks!

ginkgm commented 2 months ago

Hi @marchingband ,

We haven't finish the calibration of P4, so there is no data I can provide for now. After the datasheet is released, you can find the results there.

@ESP-Marius could you help answer the FPU question?

ESP-Marius commented 2 months ago

Wasn't able to find any benchmark for the FPUs, but we'll see if we can get some.

At least floating point division performance should be improved now compared to earlier xtensa chips with FPU, since as far as I know it is now supported in HW on P4

ginkgm commented 1 month ago

It's very likely the ADC accuracy is the same as C6 v0.2.

ESP-Marius commented 1 month ago

@marchingband here are some numbers from a quick test we did internally:

esp32p4: cpu 360MHz, flash 80MHz esp32s3: cpu 240MHz, flash 80MHz

CPU Cycles

Operation ESP32-P4 ESP32-S3
add/sub 4 5
mul 4 5
div 19 53
sqrt() 22 63
pow() 503 610
sin() 62 83

CoreMark-Pro (USE_FP32) (workloads/sec)

Workload ESP32-P4 ESP32-S3
linear 33 11
nnet 100 31
radix_fft 1538 645
loops 80 29

Linpack (SF)

Metric ESP32-P4 ESP32-S3
kflops 67405 24262

Additional Notes

  1. float operation is the cpu cycle to evaluate a single floating-point operation. The test is to iterate multiple times and take the average value.
  2. For the coremark-pro test item, select several typical applications of floating-point types and specify USE_FP32. Since the original data is large, the data size is reduced in this test to exclude the impact of memory access. It is only for comparing floating-point performance.
  3. linpack only chosen to test single-float type.