글로벌 큐를 통한 임베디드 멀티코어 프로세서의 멀티 DNN 연산 성능 향상 - 조호진(Ho-jin Cho); 김명선(Myung-sun Kim) (한국정보통신학회논문지, 2020)
DNN is expanding its use in embedded systems such as robots and autonomous vehicles. For high recognition accuracy, computational complexity is greatly increased, and multiple DNNs are running aperiodically. Therefore, the ability processing multiple DNNs in embedded environments is a crucial issue. Accordingly, multicore based platforms are being released. However, most DNN models are operated in a batch process, and when multiple DNNs are operated in multicore together, the execution time deviation between each DNN may be large and the end-to-end execution time of the whole DNNs could be long depending on how they are allocated to the cores. In this paper, we solve these problems by providing a framework that decompose each DNN into individual layers and then distribute to multicores through a global queue. As a result of the experiment, the total DNN execution time was reduced by 31%, and when operating multiple identical DNNs, the deviation in execution time was reduced by up to 95.1%. DNN은 로봇 및 자율주행차 등의 임베디드 시스템에서 활용 분야가 넓어지고 있다. 최근 높은 인식 정확도를 위하여 연산 복잡도가 크게 증가되고 비주기적으로 다수의 DNN을 사용하는 형태가 증가되고 있다. 따라서 임베디드 환경에서 다수의 DNN을 처리할 수 있는 능력은 중요한 이슈가 되었다. 이에 따라 멀티코어 기반 플랫폼들이 출시되고 있다. 하지만 대부분의 DNN 모델들은 배치 프로세스로 운용되어, 여러 DNN이 함께 멀티코어에서 운용될 때 어떻게 코어에 할당되느냐에 따라 각 DNN 간 수행시간 편차가 클 수 있고 시스템 전체적인 DNN 수행 시간이 길어질 수 있다. 본 논문에서는 각 DNN들을 배치 형태가 아닌 레이어별로 재구성한 후 글로벌 큐를 통하여 멀티코어에 분산시킬 수 있는 프레임워크를 제공하여 이러한 문제를 해결한다. 실험 결과 전체 DNN 수행 시간은 31% 감소하였고 다수의 동일 DNN을 운용 시 그 수행시간 편차는 최대 95.1% 감소하였다.