Small-ruleset regular expression matching on GPGPUs: quantitative performance analysis and optimization
IBM T.J. Watson Research Center, Yorktown Heights, NY and Technische Universitat Braunschweig, Braunschweig, Germany
In Proceedings of the 24th ACM International Conference on Supercomputing (2010), pp. 337-348
@conference{naghmouchi2010small,
title={Small-ruleset regular expression matching on GPGPUs: quantitative performance analysis and optimization},
author={Naghmouchi, J. and Scarpazza, D.P. and Berekovic, M.},
booktitle={Proceedings of the 24th ACM International Conference on Supercomputing},
pages={337–348},
year={2010},
organization={ACM}
}
We explore the intersection between an emerging class of architectures and a prominent workload: GPGPUs (General-Purpose Graphics Processing Units) and regular expression matching, respectively. It is a challenging task because this workload — with its irregular, non-coalesceable memory access patterns — is very different from the regular, numerical workloads that run efficiently on GPGPUs. Small-ruleset expression matching is a fundamental building block for search engines, business analytics, natural language processing, XML processing, compiler front-ends and network security. Despite the abundant power that GPGPUs promise, little work has investigated their potential and limitations with this workload, and how to best utilize the memory classes that GPGPUs offer. We describe an optimization path of the kernel of flex (the popular, open-source regular expression scanner generator) to four nVidia GPGPU models, with decisions based on quantitative micro-benchmarking, performance counters and simulator runs. Our solution achieves a tokenization throughput that exceeds the results obtained by the GPGPU-based string matching solutions presented so far, and compares well with solutions obtained on any architecture.
January 31, 2011 by hgpu