Abstract
Support vector machines (SVMs) are well known for their pattern recognition capability, but proper care should be taken to alleviate their inherent implementation cost resulting from high computational intensity and memory requirement, especially in embedded systems where only limited resources are available. Since the memory requirement determined by the dimensionality and the number of support vectors is generally too high for a cache in embedded systems to accomodate, frequent accesses to the main memory occur inevitably whenever the cache is not able to provide requested data to the processor. These frequent accesses to the main memory result in overall performance degradation and increased energy consumption because a memory access typically takes longer and consumes more energy than a cache access or a register access. In this paper, we propose a technique that reduces the number of main memory accesses by optimizing the data access pattern of the SVM-based classifier in such a way that the temporal locality of the accesses increases, fully utilizing data loaded into the processor chip. With experiments, we confirm the enhancement made by the proposed technique in terms of the number of memory accesses, overall execution time, and energy consumption.
서포트벡터머신 (support vector machine)을 이용한 음성/음악 분류기는 높은 분류 정확도로 주목받고 있으나 많은 계산 량과 저장 공간을 요구하므로 특히 임베디드 시스템과 같이 자원이 제한 적인 경우에는 효율적인 구현이 필수적이다. 특히, 서포트벡터 (support vector)의 차원과 개수에 의해 결정되는 서포트벡터의 저장 공간의 크기는 일반적으로 임베디드 프로세서의 캐시 (cache)의 크기보다 훨씬 크므로 캐시에 존재하지 않는 서포트벡터를 메인 메모리로부터 읽어야 하는 경우가 많다. 메모리에서 데이터를 가져오는 데는 캐시나 레지스터와 비교했을 때 상대적으로 긴 시간과 많은 에너지가 소비되어 분류기의 실행시간과 에너지 소비를 증가시키는 요인이 된다. 본 논문에서는 분류기의 데이터 접근 양식을 보다 시간적 근접성을 가지게 변환하여 일단 프로세서 칩으로 불려진 데이터를 최대한 활용함으로써 메모리의 접근 횟수를 줄여 전체적인 서포트벡터의 실행시간의 단축시키는 기법을 제안한다. 실험을 통해 메모리로의 접근 회수의 감소와 이에 따른 실행시간 그리고 에너지 소비의 감소를 확인하였다.