원문정보
Aho-Corasick 알고리즘을 위한 GPU 상에서의 캐시 지향형 병렬 패턴 매칭
초록
영어
Pattern matching is a common and important operation in many applications including network security, bioinformatics, etc. Among many pattern matching algorithms, Aho-Corasick (AC) algorithm is intensively used in these applications. In order to speed up and meet the real-time performance requirement for AC algorithm, developing an efficient parallelization technique is essential. In this paper, we develop a new parallelization approach to cache both the input text data and the reference data organized as a 2-dimensional table in the on-chip memories (or caches) on the Graphic Processing Unit (GPU). The new approach also schedules memory accesses carefully to minimize the overhead in loading data to the on-chip shared memory. The approach significantly cuts down the memory latency to load the data and leads to impressive performance improvement. Experimental results on NVidia GT9500 GPU shows up to 15x speedup compared with a serial version on 2.2Ghz Core2Duo Intel processor.
한국어
패턴매칭 연산은 네트워크 보안, 바이오 인포매틱스와 같은 분야에서 광범위하게 사용되는 중요한 연산이다. 많은 패턴 매칭 알고리즘 들 중에서 Aho-Corasick (AC) 알고리즘이 위와 같은 분야에서 집중적으로 활용되고 있어, AC 알고리즘의 실행을 가속화하고 실시간 실행을 위한 성능 상의 요구사항을 만족시키기 위하여 효율적인 병렬화 기법을 개발하는 것이 필수적이다. 본 논문에서는 AC 알고리즘의 실행에 활용되는 입력 텍스트 데이터와 비교의 대상이 되는 2-차원 배열로 구성된 레퍼런스 데이터를 모두 GPU 상의 on-chip 메모리 (또는 캐시)에 적재하여 병렬 패턴 매칭을 실행하는 기법을 개발한다. 이러한 새로운 접근법의 개발에 있어 데이터를 on-chip의 shared memory에 적재할 때 필요한 메모리 접근들을 효율적으로 스케쥴링 함으로써 데이터 적재에 드는 오버헤드를 크게 감소시킨다. 따라서 새 접근법은 데이터 적재에 드는 메모리 대기시간을 크게 줄이고, 이에 따라 큰 폭의 성능 향상을 얻게 된다. NVidia 9500 GT GPU를 활용한 실험결과, 본 논문의 접근법을 활용한 병렬실행 결과 순차실행 결과(Intel Core2Duo 범용 마이크로프로세서를 활용한)와 비교하여15배까지 성능을 향상시킬 수 있었다.
목차
Abstract
1. Introduction
2. Aho-Corasick (AC) Algorithm
3. Overview of GPU Architecture and Programming
4. Parallelizing AC Algorithm on GPU
4.1 Previous Researches
4.2 Our Approaches
5. Experimental Results
6. Conclusion
References