SIMD-accelerated computer vision on a $2 microcontroller
$2 마이크로컨트롤러에서 SIMD 가속 컴퓨터 비전을 구현하는 연구가 발표되었습니다. 작성자는 ESP32-S3의 128비트 SIMD 명령어를 활용하여 FAST 특징 검출기(feature detector)를 가속화하는 코드를 개발했으며, 이는 기존 구현 대비 약 두 배의 성능을 달성했습니다. 이 코드는 QVGA(320x240) 프레임을 약 6밀리초 만에 처리할 수 있어 실시간 컴퓨터 비전 작업에 적합한 속도를 보여줍니다.
ESP32-S3는 WiFi 및 Bluetooth 저전력 통신 기능을 포함하는 듀얼 코어 CPU를 갖춘 저렴한 마이크로컨트롤러이지만, 제한적인 SIMD 명령어 세트를 가지고 있습니다. 연구자는 이 제한된 환경에서 SIMD 연산을 수행하는 과정에서 8비트 부호 있는/없는 숫자 비교 및 포화 연산의 제약이라는 기술적 한계에 직면했습니다.
이러한 제약을 극복하기 위해 작성자는 비트 연산을 활용하여 데이터의 범위를 조정하는 방법을 사용했습니다. 구체적으로, 8비트 부호 없는 값을 0x80과 XOR 연산하여 산술 및 비교 연산이 의미를 갖도록 선형적인 범위로 변환했습니다. 이 방법을 통해 ESP32-S3의 SIMD 한계를 우회하고 FAST 특징 검출기의 처리량을 기존 5.1MP/s에서 11.2MP/s로 약 220% 향상시킬 수 있었습니다.
결과적으로 이 연구는 저렴한 하드웨어에서도 SIMD 기능을 활용하여 실시간 컴퓨터 비전 작업을 효율적으로 수행할 수 있음을 입증하며, 마이크로컨트롤러의 잠재력을 극대화하는 데 중요한 시사점을 제공합니다.
ESP32-S3는 WiFi 및 Bluetooth 저전력 통신 기능을 포함하는 듀얼 코어 CPU를 갖춘 저렴한 마이크로컨트롤러이지만, 제한적인 SIMD 명령어 세트를 가지고 있습니다. 연구자는 이 제한된 환경에서 SIMD 연산을 수행하는 과정에서 8비트 부호 있는/없는 숫자 비교 및 포화 연산의 제약이라는 기술적 한계에 직면했습니다.
이러한 제약을 극복하기 위해 작성자는 비트 연산을 활용하여 데이터의 범위를 조정하는 방법을 사용했습니다. 구체적으로, 8비트 부호 없는 값을 0x80과 XOR 연산하여 산술 및 비교 연산이 의미를 갖도록 선형적인 범위로 변환했습니다. 이 방법을 통해 ESP32-S3의 SIMD 한계를 우회하고 FAST 특징 검출기의 처리량을 기존 5.1MP/s에서 11.2MP/s로 약 220% 향상시킬 수 있었습니다.
결과적으로 이 연구는 저렴한 하드웨어에서도 SIMD 기능을 활용하여 실시간 컴퓨터 비전 작업을 효율적으로 수행할 수 있음을 입증하며, 마이크로컨트롤러의 잠재력을 극대화하는 데 중요한 시사점을 제공합니다.