2016
DOI: 10.1145/2980024.2872387
|View full text |Cite
|
Sign up to set email alerts
|

Scaling up Superoptimization

Abstract: Developing a code optimizer is challenging, especially for new, idiosyncratic ISAs. Superoptimization can, in principle, discover machine-specific optimizations automatically by searching the space of all instruction sequences. If we can increase the size of code fragments a superoptimizer can optimize, we will be able to discover more optimizations.We develop LENS, a search algorithm that increases the size of code a superoptimizer can synthesize by rapidly pruning away invalid candidate programs. Pruning is … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
12
0

Year Published

2016
2016
2017
2017

Publication Types

Select...
3
2

Relationship

1
4

Authors

Journals

citations
Cited by 12 publications
(12 citation statements)
references
References 29 publications
(48 reference statements)
0
12
0
Order By: Relevance
“…Super-optimization is a class of algorithms to find the optimal instruction sequence for a given computation. However, these algorithms are limited to straight-line code (or assimilated to it) (Phothilimthana et al 2016). Our search space is structurally very different and too large even for plain enumeration.…”
Section: Discussion and Related Workmentioning
confidence: 99%
“…Super-optimization is a class of algorithms to find the optimal instruction sequence for a given computation. However, these algorithms are limited to straight-line code (or assimilated to it) (Phothilimthana et al 2016). Our search space is structurally very different and too large even for plain enumeration.…”
Section: Discussion and Related Workmentioning
confidence: 99%
“…Results showed that SCYTHE quickly and precisely solved more than 74% of the benchmarks and 80% out of these solved benchmarks were solved within a few seconds. Our algorithm solved 51 more cases within 600 seconds compared to the enumerative search algorithm [25,37] and outperformed SQLSynthesizer [40] on their project benchmarks with 4 more cases solved.…”
Section: Introductionmentioning
confidence: 94%
“…Such algorithms enumerate all programs in the program space of a given depth limit and retain only those consistent with the provided I/O examples. Previous enumerative synthesizers [2,25,37] adopt the concept of equivalence classes to optimize the search process: they group programs into equivalence classes based on their behaviors on the input example to compress the search space. The search then proceeds iteratively: within each stage, the algorithms enumerate all programs in the current search space, group them based on an equivalence metric, and proceed to the next stage.…”
Section: Enumerative Search With Equivalence-classmentioning
confidence: 99%
“…5. Given a formula ϕ, the slave enumerates templatized instruction-sequences of increasing length, and uses CEGIS to check if there exists an instantiation of a candidate instruction-sequence that implements ϕ (Lines [16][17][18][19][20][21]. Before the CEGIS loop, the slave tries to prune away candidates via abstract semanticfootprints: if the abstract semantic-footprints of the candi- for each prefix p ∈ prefixes do 5: prefixes ← prefixes − {p} 6: for each templatized instruction i ∈ instrPool do 7:…”
Section: Base Algorithmmentioning
confidence: 99%
“…Superoptimization. Superoptimization aims to find an optimal instruction-sequence for a target instruction-sequence [4,5,13,16,18,19,23]. Peephole superoptimization [4] uses "peepholes" to harvest target instruction-sequences, and replace them with equivalent instruction sequences that have a lower cost.…”
Section: Related Workmentioning
confidence: 99%