rapid programming of pattern-recognition processorsangstadt/presentations/rapid... ·...
TRANSCRIPT
![Page 1: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/1.jpg)
RAPID Programming of
Pattern-Recognition ProcessorsKevin Angstadt Westley Weimer Kevin Skadron
Department of Computer ScienceUniversity of Virginia
{angstadt, weimer, skadron}@cs.virginia.edu6. April 2016
![Page 2: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/2.jpg)
Finding Needles in a Haystack
• Researchers and companies are collecting increasing amounts of data
• 44x data production in 2020 than in 2009
• Demand for real-time analysis of collected data
2
![Page 3: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/3.jpg)
Locate the most probable location for a DNA fragment in the
human genomeFind products that are
most commonly purchased together
Parse English text to identify historical records that are
duplicatesIdentify consumer
sentiment based off of social media posts
Search for Higgs events based off on paths of subatomic
particles
What is the common theme?
Pattern Search Problems
3
![Page 4: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/4.jpg)
Parallel searches
4
T G GG G C T A
Incoming DataCGGCAT
ATCGA
…
Key
Active Searches=
Target
Pattern
![Page 5: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/5.jpg)
Parallel searches
5
T G GC G G C T A
Incoming DataCGGCAT
G
ATCGAG
❌
❌
G
G
G
G
…
Key
Active Searches=
Target
Pattern
![Page 6: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/6.jpg)
Parallel searches
6
T G GA C G G C T A
Incoming DataCGGCAT
G
ATCGAG
❌
❌
G
G
G
G
…
Key
Active Searches=
Target
Pattern
![Page 7: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/7.jpg)
Parallel searches
7
T G GT A C G G C T A
Incoming DataCGGCAT
T
ATCGAT
❌
T
T
T
T
…
Key
Active Searches=
Target
Pattern
![Page 8: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/8.jpg)
Parallel searches
8
T G GA T A C G G C T A
Incoming DataCGGCAT
A
ATCGAA
❌
A
A
A
A
…
Key
Active Searches=
Target
Pattern
![Page 9: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/9.jpg)
Parallel searches
9
T G GC A T A C G G C T A
Incoming DataCGGCAT
T
ATCGAT
❌
T
T
T
T
… …
Key
Active Searches=
Target
Pattern
![Page 10: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/10.jpg)
Parallel searches
10
T GC C A T A C G G C T A
Incoming DataCGGCAT
C
ATCGAC
C
C
C
C
… …
Key
Active Searches=
Target
Pattern
![Page 11: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/11.jpg)
Parallel searches
11
TA C C A T A C G G C T A
Incoming DataCGGCAT
G
ATCGAG
G
G
G
G
… …
Key
Active Searches=
Target
Pattern
![Page 12: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/12.jpg)
Parallel searches
12
G A C C A T A C G G C T A
Incoming DataCGGCAT
G
ATCGAG ❌
G
G
G
G
… …
Key
Active Searches=
Target
Pattern
![Page 13: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/13.jpg)
Parallel searches
13
G A C C A T A C G G C TT
Incoming DataCGGCAT
C
ATCGAC ❌
C
C
C
C
… …
Key
Active Searches=
Target
Pattern
![Page 14: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/14.jpg)
Parallel searches
14
G A C C A T A C G G CC T
Incoming DataCGGCAT
A
ATCGAA
A
A
A
A
… …
Key
Active Searches=
Target
Pattern
![Page 15: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/15.jpg)
Parallel searches
15
G A C C A T A C G GG C T
Incoming DataCGGCAT
T
ATCGAT
T
T
T
T
… …
Key
Active Searches=
Target
Pattern
![Page 16: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/16.jpg)
Parallel Searches: Goals
• Fast processing
• Concise, maintainable representation
• Efficient compilation
– High throughput
– Low compilation time
16
Specialized Hardware
RAPID Programming
Language
![Page 17: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/17.jpg)
A researcher should spend his or her time designing an algorithm to find the important data, not building a machine that will obey
said algorithm.
17
![Page 18: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/18.jpg)
RAPID Programming
• Pattern-Based Data Analysis
• Automata Processor
• Current Programming Models
• RAPID Language Overview
• AP Code Generation and Optimizations
• Evaluation
18
![Page 19: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/19.jpg)
Micron’s Automata Processor
• Accelerates identification of patterns in input data stream using massive parallelism
• Hardware implementation of non-deterministic finite automata
• 1 gbps data processing
• MISD architecture
19
![Page 20: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/20.jpg)
Micron’s Automata Processor• Implements homogeneous NFAs
– All incoming edges to state have same symbol(s)
– State Transition Element (STE)
• Memory-derived architecture– Memory as a computational medium
– State consists of a column in DRAM array
– Connections made with reconfigurable routing matrix partitioned into blocks
• 1.5 million states on development board
• Saturating Up Counter, Boolean Logic
20
Start STE Reporting STE
.*[Dd](o|ough)nut
![Page 21: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/21.jpg)
Micron’s Automata Processor
21
Figure courtesy of Micron
![Page 22: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/22.jpg)
Programming Workflow
22
Source: www.micronautomata.com
Synthesis, Placement, and Routing
Compiled Binary
Front End Language
![Page 23: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/23.jpg)
Current Programming Models
23
• Automata Network Markup Language
• Directly specify homogeneous NFA design
• High-level programming language bindings for generation
• Support for a list of regular expressions
• Support for PCRE modifiers• Compiled directly to binary
![Page 24: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/24.jpg)
Programming Challenges
• ANML development akin to assembly programming
– Requires knowledge of automata theory andhardware properties
– Tedious and error-prone development process
• Regular expressions challenging to implement
– Often exhaustive enumerations
– Similarly error-prone
24
![Page 25: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/25.jpg)
Programming Challenges
• Implement single instance of a problem
– Each instance of a problem requires a brand new design
– Need for meta-programs to generate final design
• Current programming models place unnecessary burden on developer
25
![Page 26: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/26.jpg)
RAPID Programming
• Pattern-Based Data Analysis
• Automata Processor
• Current Programming Models
• RAPID Language Overview
• AP Code Generation and Optimizations
• Evaluation
26
![Page 27: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/27.jpg)
RAPID at a Glance
• Provides concise, maintainable, and efficient representations for pattern-identification algorithms
• Conventional, C-style language with domain-specific parallel control structures
• Excels in applications where patterns are best represented as a combination of text and computation
• Compilation strategy balances synthesis time with device utilization
27
![Page 28: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/28.jpg)
Program Structure• Macro
– Basic unit of computation
– Sequential control flow
– Boolean expressions as statements forterminating threads of computation
• Network
– High-level pattern matching
– Parallel control flow
– Parameters to set run-time values
28
network (…) {…
}
macro qux (…) {…
}
macro foo (…) { … }
macro baz (…) { … }
macro bar (…) { … }
![Page 29: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/29.jpg)
Program Structure
29
Network Macros
![Page 30: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/30.jpg)
Program Structure
30
Network
Macro
Macro
Macro
MM
M
Macro
Macro
Macro
MM
M
Macro
Macro
Macro
MM
M
network ( … ) {…
}
macro qux (…) {…
}
macro foo (…) { … }
macro baz (…) { … }
macro bar (…) { … }
![Page 31: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/31.jpg)
Data in RAPID
• Input data stream as special function
– Stream of characters
– input()• Calls to input() are synchronized across all
active macros
• All active macros receive the same input character
31
![Page 32: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/32.jpg)
Counting and Reporting
• Counter: Abstract representation of saturating up counters– Count and Reset operations– Can compare against threshold
• RAPID programs can report– Triggers creation of report event– Captures offset of input stream and current
macro
32
![Page 33: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/33.jpg)
Parallel Control Structures• Concise specification of multiple, simultaneous
comparisons against a single data stream
• Support MISD computational model
• Static and dynamic thread spawning for massive parallelism support
• Explicit support for sliding window computations
33
@NITBDELGMVUDBQZZDWIEFHPTG@ZBGEXDGHXSVCMKADSKFJÖKLGJADSKGOWESIOHGADHYCBG0ASDGßAEGKQEYKPREBN…
Pattern
![Page 34: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/34.jpg)
Parallel Control Structures
Sequential Structure
Parallel Structure
if…else either…orelse
foreach some
while whenever
34
![Page 35: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/35.jpg)
Either/Orelse Statements1 either {
2 hamming_distance(s,d); // hamming distance
3 ’y’ == input(); // next input is ’y’
4 report; // report candidate
5 } orelse {
6 while(’y’ != input ()); // consume until ’y’
7 }
35
• Perform parallel exploration of input data• Static number of parallel operations
![Page 36: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/36.jpg)
Some Statements
• Parallel exploration may depend on candidate patterns
• Iterates over items, dynamically spawn computation
36
7 }
8 network (String [] comparisons) {
9 some(String s : comparisons)
10 hamming_distance(s,5);
11 }
![Page 37: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/37.jpg)
Whenever Statements1 whenever( ALL_INPUT == input () ) {
2 foreach(char c : "rapid")
3 c == input ();
4 report;
5 }
37
• Body triggered whenever guard becomes true• ALL_INPUT: any symbol in the input stream
![Page 38: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/38.jpg)
Example RAPID Program
38
Association Rule MiningIdentify items from a database that
frequently occur together
![Page 39: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/39.jpg)
Example RAPID Programmacro frequent (String set, Counter cnt) {
foreach(char c : set) {
while(input() != c);
}
cnt.count();
}
network (String[] set) {
some(String s : set) {
Counter cnt;
whenever(START_OF_INPUT == input())
frequent(s,cnt);
if (cnt > 128)
report;
}
}
39
Spawn parallel computation for each
item set
Sliding window search calls frequent
on every input
If all symbols in item set match, increment
counter
Trigger report if threshold reached
![Page 40: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/40.jpg)
RAPID Programming
• Pattern-Based Data Analysis
• Automata Processor
• Current Programming Models
• RAPID Language Overview
• AP Code Generation and Optimizations
• Evaluation
40
![Page 41: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/41.jpg)
Input
System Overview
41
RAPID Program
Annotations
RAPID Compiler
Driver Code
ANML
apcompile
AP Binary
Output
![Page 42: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/42.jpg)
Code Generation
42
network (…) {…
}
macro qux (…) {…
}
macro foo (…) { … }
macro baz (…) { … }
macro bar (…) { … }
RAPID Program
• Recursive transformation of RAPID program
– Input Stream à STEs
– Counters à 1 or more physical counter(s)
• Similar to RegEx à NFA transformation
![Page 43: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/43.jpg)
Optimizing Compilation
• RAPID programs are often repetitive
• Extract repeated design, and compile once
• Load dynamically at runtime and set exact values (tessellation)
43
Block
![Page 44: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/44.jpg)
RAPID Programming
• Pattern-Based Data Analysis
• Automata Processor
• Current Programming Models
• RAPID Language Overview
• AP Code Generation and Optimizations
• Evaluation
44
![Page 45: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/45.jpg)
Reminder: Goals
• Fast processing
• Concise, maintainable representation
• Efficient compilation
– High throughput
– Low compilation time
45
![Page 46: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/46.jpg)
Benchmark Description Generation Method
ARM Association Rule Mining Meta Program
Brill Brill Part of Speech Tagging Meta Program
Exact Exact DNA Alignment ANML
Gappy DNA Alignment with Gaps ANML
MOTOMATA Planted Motif Search ANML
Description of Benchmarks
46
![Page 47: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/47.jpg)
RAPID Lines of Code
0 500 1000 1500 2000 2500
ARM
Brill
Exact
Gappy
MOTOMATA
Handcrafted RAPID
47
Lines of Code
![Page 48: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/48.jpg)
RAPID is Maintainable
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
Handcrafted RAPID
Per
cen
t of
Co
de
Ch
ang
ed
48
Task: Convert Hamming distance comparison of
length 5 to length 12
![Page 49: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/49.jpg)
Parallel searches
49
T G GG G C T A
Incoming DataCGGCAT
ATCGA
…
Key
Active Searches=
Target
Pattern
Maximize number of parallel active searches by reducing STE usage
![Page 50: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/50.jpg)
Generated STEs
0 200 400 600 800 1000 1200 1400 1600
ARM
Brill
Exact
Gappy
MOTOMATA
Handcrafted RAPID
50
Number of STEs
![Page 51: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/51.jpg)
Compilation Time
0.1 1 10 100 1000 10000 100000
ARM*
Brill
Exact*
Gappy*
MOTOMATA*
Handcrafted RAPID
51
Time (seconds)
* RAPID Tessellation
![Page 52: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/52.jpg)
Conclusions
• RAPID is a high-level language for pattern-search algorithms
• Three domain-specific parallel control structures, and suitable data representations
• Accelerate using the Automata Processor
• RAPID programs are concise, maintainable, and efficient
52
![Page 53: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/53.jpg)
ADDITIONAL SLIDES
54
![Page 54: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/54.jpg)
Expression Generation
59
’a’ == input()
[a]
’a’ != input()
[ˆa]
’a’ == input() && ’b’ == input()
[a] [b]
’a’ == input() || ’b’ == input()
[ab]
!(’a’ == input() && ’b’ == input() &&
’c’ == input())
[ˆa] ∗ ∗
[a] [b] [ˆc]
[a] [ˆb]
![Page 55: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/55.jpg)
Code Generation
60
Statement 1
Statement 2
...
Statement n
•
•
(a) Foreach Loops
Statement 1
Statement 2
.
.
.
Statement n
• •
(b) Either/Orelse and Some statements
![Page 56: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/56.jpg)
Code Generation
61
predicate
!predicate
While Body
•
•
(c) While Loops
*
predicate
Whenever
Body••
(d) Whenever statement
![Page 57: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/57.jpg)
Counter Generation
62
Comparison Threshold True Output
< x x inverted
<= x x+1 inverted
> x x+1 non-inverted
>= x x non-inverted
== x convert to <= x && >= x
!= x convert to < x || > x
*
Counter
Whenever
Body••
true
![Page 58: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/58.jpg)
Estimating Runtime
77
runtime ≈
l
n ·m
6144
m
· 7.5× 10−3
seconds
Given n finite automata each consuming m square blocks:
(Does not include delay for filling report buffer!)
![Page 59: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/59.jpg)
Executing Finite State Machines in DRAM• Columns in DRAM store STE labels (Each STE is a single column)
• Reconfigurable routing matrix connects the STEs
0 1 0 0 1 1 0 0 1
Input:Drives a Row
1 1 0 0 0 0 0 1 1
Active States
Columns with “1”: STEs that acceptinput symbol
&=
Active States for Next Clock Cycle
![Page 60: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/60.jpg)
RAPID LOC and STE ComparisonANML Device
Benchmark LOC LOC STEs STEs
ARM R 18 214 58 56
H 118 301 79 58
Brill R 688 10,594 3,322 1,429
H 1,292 9,698 3,073 1,514
Re 218 –‡ 4,075 1,501
Exact R 14 85 29 27
H –† 193 28 27
Gappy R 30 2,337 748 399
H –† 2,155 675 123
MOTOMATA R 34 207 53 72
H –† 587 150 149
R – RAPID H – Hand-coded Re – Regular Expression† The GUI-tool does not have a LOC equivalent metric.
‡ No ANML statistics are provided by the regular expression compiler.
91
![Page 61: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/61.jpg)
RAPID Compilation StatisticsTotal Clock STE Mean BR
Benchmark Blocks Divisor Util. Alloc.
ARM R 1 1 21.9% 20.8%
H 1 1 23.4% 20.8%
Brill R 8 1 84.0% 52.6%
H 12 1 57.9% 65.4%
Re 10 1 71.4% 60.6%
Exact R 1 1 10.9% 4.2%
H 1 1 10.9% 4.2%
Gappy R 2 1 89.5% 70.8%
H 2 1 37.5% 77.1%
MOTOMATA R 1 2 33.6% 75.0%
H 4 1 17.2% 75.0%
R – RAPID H – Hand-coded Re – Regular Expression
92
![Page 62: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer](https://reader030.vdocument.in/reader030/viewer/2022040903/5e76c38acbe0150c4b22ed42/html5/thumbnails/62.jpg)
Problem Size Generate Time Place and Route Total TimeBenchmark (# instances) Total Blocks (sec) Time (sec) (sec)
ARM B† 8,500 – 5.38 – –
P 8,500 6,100 6.53 771.16 770.70
R 8,500 2,125 3.70 0.41 4.12
Exact B 46 000 4 730 24.52 22 011.10 22 035.62
P 46 000 6 075 30.17 1 676.88 1 707.05
R 46 000 5 750 0.80 0.08 0.88
Gappy B 2,000 5,354 0.99 9158.00 9158.99
P† 2,000 – 0.99 – –
R 2,000 4,000 9.17 2.20 11.36
MOTOMATA B 1 500 5 320 1.49 5 874.51 5 875.99
P 1 500 6 001 1.45 210.62 212.07
R 1 500 1 500 2.26 0.37 2.63
B – Baseline (No Pre-Compilation) P – Pre-Compiled Designs R – RAPID Tessellation† The current AP software is not able to support placement and routing for this benchmark.
RAPID Compilation
93