-
-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add SIMD support for ESP32S3 #56
Comments
Maybe this passage will help you |
I'm quite familiar with SIMD coding and would be happy to optimize my code for the S3, but I can't find the include files you referenced above. Do you have a working Github link to them? |
@bitbank2 Thank you for your reply, maybe the directory file name has been changed, causing the address he gave to be invalid https://github.com/espressif/esp-adf-libs/tree/master/esp_codec/include/codec I can't find the header file esp_simd.h either, maybe this question helps |
I saw on twitter that they have introduced SIMD instructions in the technical reference manual https://mobile.twitter.com/eMbeddedHome/status/1570520252123062274 https://mobile.twitter.com/lovyan03/status/1622846385438720002 |
I saw these references months ago, but no concrete examples. I thought you had new information. I'll keep searching for this info and when it actually becomes available, I'll implement it. For now, writing in ESP32 assembly language is not going to happen. |
Many thanks! Looking forward to your work. |
@bitbank2 Contact Espressif's official staff, he said that there seems to be no fully open version of the SIMD data. |
I would honestly like to work on this, but I have very little free time. It will need to be painless and well documented. |
@bitbank2 i got some replies |
@bitbank2 It should be possible to call the DSP like this from the Arduino.
|
This DSP API library has been around for several years. It MAY be optimized for SIMD, but still doesn't really help any of my work. |
@bitbank2 Sorry to bother you again! I got new news that this component supports SIMD. Components ported from ESP_ADF |
Unfortunately not helpful because they didn't release the source code. |
@bitbank2 Sorry to bother you again, this may not be helpful, but I wanted to tell you the test results. JPEG decoding with SIMD, currently the whole frame, cannot be partial, there will be more in the future
https://github.com/esp-arduino-libs/ESP32_JPEG/blob/master/examples/DecodeTest/DecodeTest.ino |
I worked on this over the weekend and got some good results optimizing my JPEG decoder. I'll publish the code soon. |
@bitbank2 This is jpeg SIMD decoding, which is now partially supported. Sir, you can try it and see how it works |
I'm not interested in someone else's closed source code. |
ESP32-S3 is a high-performance, low-power microcontroller that supports SSE (SIMD) instruction set, which can complete multiple operations in one instruction, improving code efficiency and running speed. Here is a sample code using SIMD instructions on ESP32-S3:
In this sample code, the
SIMD_ADD()
andSIMDMUL()
functions are functions that use SIMD instructions to complete addition and multiplication operations, and theSIMDDATA
type is a pointer, which is used to point to a vector array containing 4 floating-point number elements. Using these functions can greatly improve code efficiency and execution speed.It should be noted that to use SIMD instructions on ESP32-S3, you need to include
<xtensa/hal.h>
header files and<esp_simd.h>
header files, and use the-msimd
option to enable SIMD instructions when compiling set support.The text was updated successfully, but these errors were encountered: