Does the ESP32 have SIMD-like instructions?
-
- Posts: 46
- Joined: Fri Aug 02, 2019 11:59 pm
Does the ESP32 have SIMD-like instructions?
I've been looking through datasheets and instruction references for the Xtensa processor that is in the ESP32 but because of Xtensa's extensible nature, I can't seem to find reliable information, so here is my question…
Does the ESP32-WROVER B have any SIMD-like instruction capabilities that allow you to process data in parallel? I have a lot of data processing to do that could benefit greatly from any kind of parallelization so I'd like to utilize whatever the ESP32 has to offer in that respect.
Does the ESP32-WROVER B have any SIMD-like instruction capabilities that allow you to process data in parallel? I have a lot of data processing to do that could benefit greatly from any kind of parallelization so I'd like to utilize whatever the ESP32 has to offer in that respect.
-
- Posts: 9716
- Joined: Thu Nov 26, 2015 4:08 am
Re: Does the ESP32 have SIMD-like instructions?
The ESP32 has a few of them, mostly used for 16-bit multiply-accumulate operations. The ESP32S3 has more complicated instructions. Probably the best thing would be to look at ESP-DSP, that uses some of the acceleration options (and may actually be a good starting point for your own code as well).
-
- Posts: 46
- Joined: Fri Aug 02, 2019 11:59 pm
Re: Does the ESP32 have SIMD-like instructions?
Thanks for the info, but I am not sure. Does any of this apply to the WROVER B?
Re: Does the ESP32 have SIMD-like instructions?
Anything that applies to esp32 chip applies to ESP32-WROVER B module
-
- Posts: 46
- Joined: Fri Aug 02, 2019 11:59 pm
Re: Does the ESP32 have SIMD-like instructions?
I finally had the chance to take a closer look at the ESP-DSP component, but all I see there are assembler implementations of functions typically used for DSPs. So, it's a DSP library but not what I was looking for.
My original question was trying to find out of the ESP32 and the Xtensa chip used in it do have any kind of accelerated instruction sets that would allow me to run operations the way SIMD instructions do in a non-scalar way. I do not see any of that being done in the ESP-DSP component—unless I am overlooking it.
So, my assumption is, there is no such thing?
My original question was trying to find out of the ESP32 and the Xtensa chip used in it do have any kind of accelerated instruction sets that would allow me to run operations the way SIMD instructions do in a non-scalar way. I do not see any of that being done in the ESP-DSP component—unless I am overlooking it.
So, my assumption is, there is no such thing?
Re: Does the ESP32 have SIMD-like instructions?
As far as I know there aren't any, besides these already mentioned above (e.g. MUL16).
If you would like to find out what Xtensa features are enabled, the overlaying headers for binutils could be helpful: https://github.com/espressif/xtensa-ove ... a-config.h
If you would like to find out what Xtensa features are enabled, the overlaying headers for binutils could be helpful: https://github.com/espressif/xtensa-ove ... a-config.h
-
- Posts: 46
- Joined: Fri Aug 02, 2019 11:59 pm
Re: Does the ESP32 have SIMD-like instructions?
Thanks for the link. That's really interesting to see it like this.
-
- Posts: 2
- Joined: Wed Dec 01, 2021 4:19 am
Re: Does the ESP32 have SIMD-like instructions?
I thought the ESP32-S3 how has special SIMD instructions to support AIoT, but I haven't been able to find details on them yet.
-
- Posts: 9716
- Joined: Thu Nov 26, 2015 4:08 am
Re: Does the ESP32 have SIMD-like instructions?
Those instructions will end up in the Technical Reference Manual eventually, but unfortunately at this moment that chapter is not done yet.
Re: Does the ESP32 have SIMD-like instructions?
Any updates on this or if the information is in the reference manual?
Who is online
Users browsing this forum: ESP_Sprite and 282 guests