rapid programming of pattern-recognition processorsangstadt/presentations/rapid... ·...

62
RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer Kevin Skadron Department of Computer Science University of Virginia {angstadt, weimer, skadron}@cs.virginia.edu 6. April 2016

Upload: others

Post on 17-Mar-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RAPID Programming of Pattern-Recognition Processorsangstadt/presentations/rapid... · 2016-09-29 · RAPID Programming of Pattern-Recognition Processors Kevin Angstadt Westley Weimer

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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