Η κρυμμένη SIMD ισχύς του ESP32-S3

Ο μικροελεγκτής ESP32-S3 προσφέρει εξαιρετική σχέση τιμής-απόδοσης, συνδυάζοντας dual-core CPU στα 240MHz, ενσωματωμένο Wi-Fi και Bluetooth Low Energy. Εμβαθύνοντας στο εγχειρίδιο αναφοράς (technical reference manual) του υλικού, αναδείχθηκε η ύπαρξη ενός περιορισμένου, πλην ισχυρού, συνόλου 128-bit SIMD εντολών. Παρά το γεγονός ότι οι δυνατότητες αυτές παρέμεναν σχεδόν άγνωστες στην ευρύτερη κοινότητα, προσφέρουν εξαιρετικές δυνατότητες για edge computing και εφαρμογές computer vision σε εξαιρετικά χαμηλό κόστος.

Αρχιτεκτονικοί περιορισμοί και low-level επίλυση προβλημάτων

Η υλοποίηση ενός αλγορίθμου FAST (Features from accelerated segment test) υψηλής απόδοσης σεassembly απαιτούσε την υπέρβαση σημαντικών εμποδίων του instruction set architecture (ISA):

  1. Unaligned memory reads: Καθώς το ISA δεν υποστηρίζει απευθείας αναγνώσεις μη ευθυγραμμισμένης μνήμης, η εξαγωγή των δεδομένων pixel για τις κατευθύνσεις ανατολής και δύσης λύθηκε με την ανάγνωση των γειτονικών μπλοκ και την εξαγωγή συγκεκριμένων τμημάτων (slices) από συνενωμένους καταχωρητές (registers).
  2. Signed έναντι unsigned αριθμών: Το τσιπ υλοποιεί συγκρίσεις αποκλειστικά για signed οκτάμπιτους αριθμούς. Η απλή επαναερμηνεία των unsigned δεδομένων pixel προκαλεί μη γραμμική χαρτογράφηση στο εύρος [-128, 127]. Καθώς οι αριθμητικές πράξεις SIMD είναι τύπου saturating (με κορεσμό), μια κλασική αφαίρεση 128 θα προκαλούσε λανθασμένο clamping.

Η λύση δόθηκε με την αξιοποίηση της ιδιότητας ότι η αφαίρεση 128 ισοδυναμεί με πρόσθεση του -128, το οποίο επιτυγχάνεται κομψά με την αντιστροφή του υψηλότερου bit μέσω πράξης XOR με τη μάσκα 0x80 (x ^ 0x80), αποφεύγοντας τα προβλήματα του underflow.

Αποτελέσματα και απόδοση

Μέσω αυτών των τεχνικών βελτιστοποίησης χαμηλού επιπέδου, ο SIMD-accelerated FAST feature detector πέτυχε αύξηση της απόδοσης κατά περίπου 220%, φτάνοντας τα 11.2MP/s από τα 5.1MP/s της αρχικής αναφοράς. Ο κώδικας επεξεργάζεται ένα frame QVGA (320x240) σε μόλις ~6ms, καθιστώντας εφικτή την εκτέλεση computer vision στα 30fps σε υλικό κόστους μόλις δύο δολαρίων.