Skip to content

Port with acceleration for ESP32S3 #84

@jonnor

Description

@jonnor

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions