$2 mikrokontrolcüde SIMD hızlandırmalı bilgisayarlı görü uygulaması
ESP32-S3'ün performansı
- ESP32-S3, 240MHz çift çekirdekli CPU, WiFi, Bluetooth Low Energy radyo ve çeşitli çevre birimlerini içeren düşük maliyetli bir mikrokontrolcüdür.
- Bu çip 128 bit SIMD komutlarını destekler ve bunlardan yararlanıldığında performans önemli ölçüde artırılabilir.
SIMD hızlandırmalı FAST köşe dedektörü uygulaması
- FAST köşe dedektörü SIMD komutları kullanılarak hızlandırıldı ve böylece QVGA (320x240) kareler yaklaşık 6ms'de işlenebilir hale geldi.
- Bu sayede referans uygulamaya kıyasla yaklaşık iki kat performans elde edildi.
Assembly dili ve register allocator
- ESP32-S3 üzerinde assembly dili öğrenildi ve çipin kısıtlarını aşmak için temel bir register allocator (
basm) yazıldı.
- SIMD komutlarıyla aynı anda 16 pikseli işleyen bir fonksiyon uygulandı.
Piksel verisi işleme
- Piksel verisini işlemek için merkez piksel ile çevresindeki pikseller arasındaki farkı karşılaştıran işlemler gerçekleştirildi.
- ESP32-S3'ün kısıtlarını aşmak için piksel verisini uygun şekilde dönüştürmenin bir yolu geliştirildi.
Performans artışı
- SIMD hızlandırmalı FAST köşe dedektörü sayesinde işlem hızı yaklaşık %220 artırıldı.
- Böylece ESP32-S3, 30fps VGA akışını gerçek zamanlı olarak işleyebilir hale geldi.
GN⁺ görüşü
- ESP32-S3'ün kullanım alanı: Fiyatına göre güçlü performans sunan ESP32-S3, çeşitli IoT ve gömülü sistem projeleri için kullanışlıdır.
- SIMD komutlarının önemi: SIMD komutlarından yararlanarak düşük özellikli donanımlarda bile yüksek performans elde edilebilir.
- Assembly dili öğrenimi: Assembly dili öğrenmek, donanımın ayrıntılı çalışma biçimini anlamayı ve optimizasyon yeteneği geliştirmeyi sağlar.
- Kısıtları aşmak: Donanım kısıtlarını aşma süreci, yaratıcı problem çözme becerilerini geliştirebilir.
- Gerçek zamanlı bilgisayarlı görü: Düşük maliyetli mikrokontrolcülerde bile gerçek zamanlı bilgisayarlı görü görevlerinin mümkün olduğunu gösterir.
1 yorum
Hacker News yorumları