컴퓨터 비젼 응용의 효율적인 수행을 위한 아키텍쳐 및 컴파일러 기법 연구
(Architecture and compiler technique for efficient execution of computer vision applications)

Contact: Jangseop Shin, Xuanjun Zheng, Wenquan Jin, Gisoo Seo

컴퓨터 비젼은 컴퓨터로 주어진 영상을 분석하여 유용한 정보를 얻어내는 기술이다. 컴퓨터 비젼 기술은 보안 감시, 로봇 공학, HCI(Human-Computer Interaction), 산업용 물체인식/이상탐지, 자동차 안전 시스템, 엔터테인먼트 등 다양한 분야에 이미 활용되고 있다. 컴퓨터 비젼의 역사는 오래되었지만 특히 지난 수년간 컴퓨터 비젼 기술은 발빠르게 성장하고 있다. 구글의 무인자동차 기술은 해가 갈수록 완성도를 높여가고 있고, BMW, Lexus 등 high-end 자동차에는 비젼 시스템을 탑재하여 행인 감지, 차선 변경 경고, 차간 거리 알림 등 기능을 제공하고 있다. 이제는 얼굴 인식/이미지 인식 등의 분야에서는 컴퓨터가 사람보다 더 나은 수준까지 이르고 있다. 하지만 컴퓨터 비젼 알고리즘은 엄청난 연산량을 요구하는 경우가 많아 다양한 분야에 적용되기 위해서는 그에 맞는 하드웨어가 개발되는 것도 중요하다. 또한 모바일/임베디드 환경에서도 점차 비젼 어플리케이션에 대한 수요가 증가하고 있어, 칩 크기나 전력소모 면에서도 최적화될 필요가 있다. 컴퓨터 비젼의 특성상, 얻어내고자 하는 정보에 따라 다양한 알고리즘이 존재할 수 밖에 없어 고정된 하드웨어로 개발하는 것보다는 Programmable한 IP가 적합하다. 최근의 회로 집적 기술에 힘입어 비젼 어플리케이션을 효율적으로 수행할 수 있는 프로세서 여러개와 이를 컨트롤 할 수 있는 프로세서를 모아 하나의 칩으로 만드는 비젼 시스템-온-칩(SoC) 개발에 수많은 회사들이 뛰어들고 있다. 대표적인 비젼 프로세서/SoC의 예로 Renesas Electronics의 IMAPCAR, Mobileye의 EyeQ, Movidius의 Myriad 이 있다.


Vision System-On-Chip

본 연구실에서는 지난 수년간 임베디드 프로세서 아키텍쳐에 대한 연구와 이를 위한 컴파일러 코드 생성 기법에 대한 연구를 진행해 왔다. 대표적인 연구로 다중 프로세서 시스템-온-칩(MPSoC) 설계를 위한 재겨냥성 컴파일러 개발 및 SDK 자동생성 도구 개발 프로젝트( Soargen , MPSoC) 가 있다. 그 외에도 어플리케이션 가속을 위한 CGRA(coarse grained reconfigurable architecture) 아키텍쳐 및 컴파일러 연구, 코드 사이즈를 최적화 하기위한 연구 등을 수행해 왔다( link). 이와 같은 경험을 바탕으로 본 프로젝트에서는 컴퓨터 비젼의 연산량을 소화해 내면서도 power-efficient 한 프로세서 아키텍쳐 연구 및 이에 최적화된 코드를 생성해 줄 수 있는 컴파일러 기법들에 대해 연구하고자 한다.

프로세서 아키텍쳐 연구에 있어서는 우선 비젼 어플리케이션에 대한 분석이 필요하다. 본 팀에서는 가장 널리 쓰이는 비젼 라이브러리인 OpenCV 와 최근에 몇몇 연구 그룹에서 여러 비젼 어플리케이션을 모아 만든 비젼 벤치마크(SD-VBS, MEVBench) 를 분석하여 병렬성과 메모리 접근 패턴 등을 파악하여 이를 효율적으로 수행할 수 있는 프로세서 구조를 연구하고 있으며, 처음 버전을 개발 중에 있다. 기본적으로 비젼 어플리케이션의 DLP, ILP 및 TLP를 최대한 활용하기 위해서 SIMD, VLIW 구조를 바탕으로 한 창의적인 아키텍쳐를 개발하고자 한다.

C 코드로 된 비젼 어플리케이션을 개발한 프로세서의 자원을 최대한 활용하도록 하기 위해서 컴파일러의 역할도 매우 중요하다. 이를 위해 본 연구실에서는 LLVM Compiler 를 이용하여 개발된 비젼 프로세서를 위한 컴파일러를 만들고 있다. 또한 병렬성을 최대한 이끌어 내기 위한 연구를 수행 중이다. 최근에는 SIMD 프로세서를 쉽게 프로그램 하기 위한 C 코드 자동 벡터화 기술에 대한 연구를 산학협력과제의 일환으로 수행하고 있다.