forked from dankramp/AutomataLab
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
new file: ANMLZoo new file: Donut/donut.anml new file: Donut/donut.input modified: Makefile modified: VASim modified: VASimVis deleted: demo.png modified: include/SigmaJSONWriter.h modified: js/sigma_script.js
- Loading branch information
Daniel Brian Kramp
committed
Jul 12, 2017
1 parent
a6e26e2
commit 8d626a2
Showing
22 changed files
with
1,119 additions
and
3,041 deletions.
There are no files selected for viewing
Submodule ANMLZoo
added at
86dac3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
<anml version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<automata-network id="donut"> | ||
<state-transition-element id="__0__" symbol-set="[Dd]" start="all-input"> | ||
<activate-on-match element="__1__"/> | ||
</state-transition-element> | ||
<state-transition-element id="__1__" symbol-set="[o]"> | ||
<activate-on-match element="__2__"/> | ||
<activate-on-match element="__5__"/> | ||
</state-transition-element> | ||
<state-transition-element id="__2__" symbol-set="[n]"> | ||
<activate-on-match element="__3__"/> | ||
</state-transition-element> | ||
<state-transition-element id="__3__" symbol-set="[u]"> | ||
<activate-on-match element="__4__"/> | ||
</state-transition-element> | ||
<state-transition-element id="__4__" symbol-set="[t]"> | ||
<report-on-match reportcode="400"/> | ||
</state-transition-element> | ||
<state-transition-element id="__5__" symbol-set="[u]"> | ||
<activate-on-match element="__6__"/> | ||
</state-transition-element> | ||
<state-transition-element id="__6__" symbol-set="[g]"> | ||
<activate-on-match element="__7__"/> | ||
</state-transition-element> | ||
<state-transition-element id="__7__" symbol-set="[h]"> | ||
<activate-on-match element="__2__"/> | ||
</state-transition-element> | ||
</automata-network> | ||
</anml> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
Donut dognutdoughynut nmkdoughnutdont do nut |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# ANMLZoo Automata Processing Benchmark Suite | ||
|
||
IMPORTANT: if using ANMLZoo for experiments, please see ERRATA below... | ||
|
||
## Description | ||
High-performance automata-processing engines are traditionally evaluated using a limited set of regular expressionrulesets. While regular expression rulesets are valid real-world examples of use cases for automata processing, they represent a small proportion of all use cases for automata-based computing. With the recent availability of architectures and software frameworks for automata processing, many new applications have been found to benefit from automata processing. These show a wide variety of characteristics that differ from prior, popular regular-expression benchmarks, and these should be considered when designing new systems for automata processing. | ||
This paper presents ANMLZoo, a benchmark repository for automata-based applications as well as automata engines for both von-Neumann and reconfigurable dataflow architectures. | ||
|
||
## Errata | ||
Since the publication of ANMLZoo, we have found a few issues with the construction of the benchmarks. We've listed the main issues below that may impact your experimentation with suggested ways to get around this. We will be updated the benchmark suite with a Version 1.1 Summer 2017 that addresses most of these issues. | ||
|
||
1. **The prefix merging algorithm in VASim had a bug that missed some minimization opportunities:** We have since fixed this bug and are now able to properly minimize applications like SPM. SPM even in the ANMLZoo paper had a node count of over 100,000! We originally included the application because the Micron compiler was able to identify these optimization opportunities. | ||
|
||
2. **RandomForest was incorrectly generated:** RandomForest was originally incorrectly generated for the ANMLZoo paper. We recognized this very early on and we have already generated a new application that fits within a single chip. I have noted this in the README for that application. The new application is rf.1chip.anml, while the old application used for the paper remains in the repo. This is discussed in the RandomForest README. | ||
|
||
3. **Some ANMLZoo benchmarks were improperly labeled as compiling to 1 chip:** To generate ANMLZoo "standard candle" automata, we increased the widget count until the number of "rectangular blocks" used by the Micron compiler violated the number of available rectangular blocks on the Micron D480 chip. Unfortunately, this was not the correct way to identify if an automata used more than 1 chip's worth of resources. Consequently, we now know that applications such as Levenshtein, EntityResolution, Snort, and ClamAV actually require 1.5 chips (or 3 half cores). We are looking to remedy this in Version 1.1. | ||
|
||
## TODO | ||
The benchmark suite has known mistakes outlined int the Errata. However, there are features that many users have requested that we plan to add in future versions. They are outlined below. If you would like a feature or application added to ANMLZoo, please create an issue ticket with a full description and use case of your feature. | ||
|
||
- Fix Erratum #3. | ||
- Add code for ANML emission. | ||
- Support [MNRL](https://github.com/kevinaangstadt/mnrl) file format. | ||
- Add more inputs for training and testing of automata optimization algorithms and automata processing engines and architecture development. | ||
- Add more automata within each "benchmark" label. Applications like Hamming and Levenshtein have huge amount of play in how they are generated. They were originally generated with semi-arbitrary parameters and so other applications with other dimensions could be added. | ||
|
||
## Benchmark Contributors | ||
|
||
Jack Wadden<br> | ||
Vinh Dang<br> | ||
Deyuan Guo<br> | ||
Elaheh Sadredini<br> | ||
Ke Wang<br> | ||
Chunkun Bo<br> | ||
Nathan Brunelle<br> | ||
Tom Tracy II<br> | ||
Matt Grimm<br> | ||
|
||
This suite was originally compiled by Jack Wadden ([email protected]). | ||
|
||
If you use this benchmark suite in a publication, please use the following citation: | ||
|
||
Wadden, J., Dang, V., Brunelle, N., Tracy II, T., Guo, D., Sadredini, E., Wang, K., Bo, C., Robins, G., Stan, M., and Skadron, S. "ANMLZoo: A Benchmark Suite for Exploring Bottlenecks in Automata Processing Engines and Architectures." 2016 IEEE International Symposium on Workload Characterization (IISWC'16). IEEE, 2016. | ||
|
||
``` | ||
@inproceedings{ANMLZoo, | ||
title={{ANMLZoo: A Benchmark Suite for Exploring Bottlenecks in Automata Processing Engines and Architectures}}, | ||
author={Wadden, Jack and Dang, Vinh and Brunelle, Nathan and Tracy II, Tom and Guo, Deyuan and Sadredini, Elaheh and Wang, Ke and Bo, Chunkun and Robins, Gabriel and Stan, Mircea and Skadron, Kevin}, | ||
booktitle={Proceedings of the IEEE International Symposium on Workload Characterization (IISWC)}, | ||
year={2017}, | ||
} | ||
``` | ||
|
||
## License | ||
Each benchmark and automata processing engine in ANMLZoo is individually licensed. Please refer to the benchmark directories for individual license files. |
Oops, something went wrong.