Title
CERE: LLVM-Based Codelet Extractor and REplayer for Piecewise Benchmarking and Optimization
Abstract
This article presents Codelet Extractor and REplayer (CERE), an open-source framework for code isolation. CERE finds and extracts the hotspots of an application as isolated fragments of code, called codelets. Codelets can be modified, compiled, run, and measured independently from the original application. Code isolation reduces benchmarking cost and allows piecewise optimization of an application. Unlike previous approaches, CERE isolates codes at the compiler Intermediate Representation (IR) level. Therefore CERE is language agnostic and supports many input languages such as C, C++, Fortran, and D. CERE automatically detects codelets invocations that have the same performance behavior. Then, it selects a reduced set of representative codelets and invocations, much faster to replay, which still captures accurately the original application. In addition, CERE supports recompiling and retargeting the extracted codelets. Therefore, CERE can be used for cross-architecture performance prediction or piecewise code optimization. On the SPEC 2006 FP benchmarks, CERE codelets cover 90.9% and accurately replay 66.3% of the execution time. We use CERE codelets in a realistic study to evaluate three different architectures on the NAS benchmarks. CERE accurately estimates each architecture performance and is 7.3 × to 46.6 × cheaper than running the full benchmark.
Year
DOI
Venue
2015
10.1145/2724717
ACM Transactions on Architecture and Code Optimization
Keywords
Field
DocType
Performance,Measurement,Program replay,checkpoint restart,iterative optimization,performance prediction
Program optimization,Programming language,Computer science,Parallel computing,Fortran,Retargeting,Real-time computing,Compiler,Spec#,Performance prediction,Benchmarking,Piecewise
Journal
Volume
Issue
ISSN
12
1
1544-3566
Citations 
PageRank 
References 
9
0.59
27
Authors
5
Name
Order
Citations
PageRank
Pablo de Oliveira Castro1436.65
Chadi Akel2172.08
Eric Petit35812.73
Mihail Popov4213.14
William Jalby5733148.24