Skip to content
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

Port with acceleration for ESP32S3 #84

Open
jonnor opened this issue Jan 11, 2025 · 0 comments
Open

Port with acceleration for ESP32S3 #84

jonnor opened this issue Jan 11, 2025 · 0 comments

Comments

@jonnor
Copy link
Contributor

jonnor commented Jan 11, 2025

The ESP32S3 is a very popular chip from EspressIf. I have successfully ran CNNs with TinyMaix on it, using the standard/portable TinyMaix backend. However, these chips have DSP SIMD instructions that are designed to accelerate neural networks. So it would be very beneficial to support those.

There is official code for using these instructions at https://github.com/espressif/esp-dsp/
It is licensed under Apache 2.0

The benchmarks give an overview of the possible acceleration
https://docs.espressif.com/projects/esp-dsp/en/latest/esp32/esp-dsp-benchmarks.html
It looks that for small input sizes (like 3x3) there is not that much to gain. But for 8x8 or larger, there is a potential of a 10x speedup.

The library is designed to be used as an esp-idf component. But for usage in TinyMaix it might be more practical to directly use the underlying C/asm code that they provide. See for example dspi_dotprod_off_u8_aes3.S in https://github.com/espressif/esp-dsp/tree/master/modules/dotprod/fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant