Implementando visão computacional acelerada por SIMD em um microcontrolador de US$ 2
Desempenho do ESP32-S3
- O ESP32-S3 é um microcontrolador barato com CPU dual-core de 240MHz e vários periféricos, incluindo WiFi e rádio Bluetooth Low Energy.
- O chip oferece suporte a instruções SIMD de 128 bits, que podem ser usadas para melhorar bastante o desempenho.
Implementação de um detector de cantos FAST acelerado por SIMD
- Ao acelerar o detector de cantos FAST com instruções SIMD, passou a ser possível processar frames QVGA (320x240) em cerca de 6 ms.
- Com isso, foi alcançado aproximadamente o dobro do desempenho em relação à implementação de referência.
Linguagem assembly e alocador de registradores
- Foi estudada a linguagem assembly no ESP32-S3 e escrito um alocador de registradores básico (
basm) para contornar as limitações do chip.
- Também foi implementada uma função que usa instruções SIMD para processar 16 pixels de uma vez.
Processamento de dados de pixels
- Para processar os dados dos pixels, é feita a comparação entre o pixel central e os pixels ao redor.
- Para contornar as limitações do ESP32-S3, foi concebida uma forma adequada de transformar os dados dos pixels.
Ganho de desempenho
- O detector de cantos FAST acelerado por SIMD melhorou a velocidade de processamento em cerca de 220%.
- Isso permitiu ao ESP32-S3 processar em tempo real um stream VGA a 30 fps.
Opinião do GN⁺
- Versatilidade do ESP32-S3: O ESP32-S3 oferece desempenho robusto para o preço e é útil em vários projetos de IoT e sistemas embarcados.
- Importância das instruções SIMD: Aproveitar instruções SIMD permite alcançar alto desempenho mesmo em hardware modesto.
- Aprendizado de assembly: Aprender assembly ajuda a entender o funcionamento detalhado do hardware e a desenvolver capacidade de otimização.
- Superando limitações: Superar as limitações do hardware ajuda a desenvolver criatividade na resolução de problemas.
- Visão computacional em tempo real: O trabalho mostra que é possível executar tarefas de visão computacional em tempo real até mesmo em microcontroladores de baixo custo.
1 comentários
Comentários do Hacker News