iNFAnt is a framework that enables to execute very large and complex regular expressions rulesets with a low memory occupation and at very high throughput, using the speedup provided by new newest nVidia GPUs. The regular expressions are provided to the framework as a plain text file respecting the PCRE syntax (backtracking and non-context free features are not supported). The framework can "compile" the regular expressions set into a transition graph file that is used as an input to the iNFAnt engine. Optionally the transition graph can be strided multiple times in order to increase the throughput, which usually doubles after each multistriding step, paying with a bigger transition graph and adding a translation step to data to be processed.
For more details about the algorithm, the multistriding and the performance analysis, please refer to the paper that presents this work:
Warning: this software is still experimental and many limitations are present. Please refer to the README file enclosed in the package for more details about this matter.
Download the framework
Framework download: iNFAnt (version: 0.2 - updated 13/9/2010)
To compile and run this framework you need:
- CUDA >=1.3 enabled nVidia GPU card
- Cuda Toolkit >=2.3
- GNU C++ compiler >=4.1
- libpcap-dev >=0.8
- libboost >=1.40.0
This work was partially supported by Cisco Systems Inc. under the grant #570127, "Fast and memory-efficient regular expression matching," Oct 2010.