Demo Data from VLDB 2026 / reviewers in the wild / expert
Eric Schkufza
dblp:33/3357
· DBLP profile ↗
11ranked-venue papers
3as first author
1since 2021 · last 2021
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 8 · 3 first-author · 1 since 2021Systems, architecture and hardware · 4 · 2 first-author · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 2
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
6 papers |
Reconfigurable computing and FPGAs · 44% Cloud and datacenter computing · 18% Processor architecture and microarchitecture · 10% | |
| Software engineering, system software, and programming languages
6 papers |
Compilers and program optimization · 39% Programming languages and type systems · 25% Program verification · 19% | |
| Computer graphics and multimedia
2 papers |
Visual content generation and editing · 54% Geometric modeling and processing · 46% |
Topics — the 21 heaviest of 26, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Reconfigurable computing and FPGAs
FPGA virtualization |
0.5 | 1 | 2021 | Compiler-driven FPGA virtualization with SYNERGY · ASPLOS 2021 |
Program verification
equivalence checking |
0.4 | 2 | 2015 | Conditionally correct superoptimization · OOPSLA 2015 Data-driven equivalence checking · OOPSLA 2013 |
Compilers and program optimization › compiler optimization
superoptimization |
0.4 | 2 | 2015 | Conditionally correct superoptimization · OOPSLA 2015 Stochastic superoptimization · ASPLOS 2013 |
Reconfigurable computing and FPGAs
FPGA compilation |
0.4 | 1 | 2019 | Just-In-Time Compilation for Verilog: A New Technique for Improving the FPGA Programming Experience · ASPLOS 2019 |
Operating systems › resource management
resource sharing |
0.3 | 1 | 2018 | Sharing, Protection, and Compatibility for Reconfigurable Fabric with AmorphOS · OSDI 2018 |
Programming languages and type systems › language semantics
formal semantics |
0.2 | 1 | 2016 | Stratified synthesis: automatically learning the x86-64 instruction set · PLDI 2016 |
Programming languages and type systems › language semantics › formal semantics
instruction set semantics |
0.2 | 1 | 2016 | Stratified synthesis: automatically learning the x86-64 instruction set · PLDI 2016 |
Compilers and program optimization › numerical program optimization
floating-point optimization |
0.2 | 1 | 2014 | Stochastic optimization of floating-point programs with tunable precision · PLDI 2014 |
Compilers and program optimization › approximate computing
precision tuning |
0.2 | 1 | 2014 | Stochastic optimization of floating-point programs with tunable precision · PLDI 2014 |
Hardware accelerators and domain-specific architectures › machine learning accelerator
low-precision arithmetic |
0.2 | 1 | 2014 | Stochastic optimization of floating-point programs with tunable precision · PLDI 2014 |
High-performance computing › performance optimization
numerical program optimization |
0.2 | 1 | 2014 | Stochastic optimization of floating-point programs with tunable precision · PLDI 2014 |
Visual content generation and editing › scene synthesis
furniture arrangement |
0.1 | 1 | 2011 | Interactive furniture layout using interior design guidelines · ACM Trans. Graph. 2011 |
Parallel and multicore computing
parallel programming models |
0.1 | 1 | 2011 | Programming the memory hierarchy revisited: supporting irregular parallelism in sequoia · PPoPP 2011 |
Parallel and multicore computing › parallel programming models
task parallelism |
0.1 | 1 | 2011 | Programming the memory hierarchy revisited: supporting irregular parallelism in sequoia · PPoPP 2011 |
Processor architecture and microarchitecture
debugging support |
0.1 | 1 | 2019 | Just-In-Time Compilation for Verilog: A New Technique for Improving the FPGA Programming Experience · ASPLOS 2019 |
Electronic design automation
hardware verification and test |
0.1 | 1 | 2019 | Just-In-Time Compilation for Verilog: A New Technique for Improving the FPGA Programming Experience · ASPLOS 2019 |
Geometric modeling and processing
procedural modeling |
0.1 | 1 | 2010 | Computer-generated residential building layouts · ACM Trans. Graph. 2010 |
Processor architecture and microarchitecture
instruction set architecture |
0.1 | 1 | 2016 | Stratified synthesis: automatically learning the x86-64 instruction set · PLDI 2016 |
Processor architecture and microarchitecture › instruction set architecture › CISC
x86-64 |
0.1 | 1 | 2016 | Stratified synthesis: automatically learning the x86-64 instruction set · PLDI 2016 |
Memory systems
memory hierarchy |
0.0 | 1 | 2011 | Programming the memory hierarchy revisited: supporting irregular parallelism in sequoia · PPoPP 2011 |
Machine learning › Probabilistic and Bayesian machine learning › structured models › graphical models
bayesian network |
0.0 | 1 | 2010 | Computer-generated residential building layouts · ACM Trans. Graph. 2010 |
Methods — techniques the papers use, named apart from their topics
syntax-guided synthesis · 0.5runtime support · 0.5compiler transformation · 0.5stochastic search · 0.4error characterization · 0.4monte carlo sampling · 0.2density function · 0.2testing · 0.2stochastic optimization · 0.2decision procedures · 0.2bayesian network · 0.2abstract interpretation · 0.2simulation relation inference · 0.2markov chain monte carlo · 0.2cost function encoding · 0.2SMT solver · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | Compiler-driven FPGA virtualization with SYNERGYabstractFPGAs are increasingly common in modern applications, and cloud providers now support on-demand FPGA acceleration in data centers. Applications in data centers run on virtual infrastructure, where consolidation, multi-tenancy, and workload migration enable economies of scale that are fundamental to the provider’s business. However, a general strategy for virtualizing FPGAs has yet to emerge. While manufacturers struggle with hardware-based approaches, we propose a compiler/runtime-based solution called Synergy. We show a compiler transformation for Verilog programs that produces code able to yield control to software at sub-clock-tick granularity according to the semantics of the original program. Synergy uses this property to efficiently support core virtualization primitives: suspend and resume, program migration, and spatial/temporal multiplexing, on hardware which is available today. We use Synergy to virtualize FPGA workloads across a cluster of Altera SoCs and Xilinx FPGAs on Amazon F1. The workloads require no modification, run within 3−4× of unvirtualized performance, and incur a modest increase in FPGA fabric utilization. Joshua Landgraf, Tiffany Yang, Will Lin, Christopher J. Rossbach, Eric Schkufza |
ASPLOS | 5 |
| 2019 | Just-In-Time Compilation for Verilog: A New Technique for Improving the FPGA Programming ExperienceabstractFPGAs offer compelling acceleration opportunities for modern applications. However compilation for FPGAs is painfully slow, potentially requiring hours or longer. We approach this problem with a solution from the software domain: the use of a JIT. Code is executed immediately in a software simulator, and compilation is performed in the background. When finished, the code is moved into hardware, and from the user's perspective it simply gets faster. We have embodied these ideas in Cascade: the first JIT compiler for Verilog. Cascade reduces the time between initiating compilation and running code to less than a second, and enables generic printf debugging from hardware. Cascade preserves program performance to within 3× in a debugging environment, and has minimal effect on a finalized design. Crucially, these properties hold even for programs that perform side effects on connected IO devices. A user study demonstrates the value to experts and non-experts alike: Cascade encourages more frequent compilation, and reduces the time to produce working hardware designs. Eric Schkufza, Michael Wei, Christopher J. Rossbach |
ASPLOS | 1 |
| 2018 | Sharing, Protection, and Compatibility for Reconfigurable Fabric with AmorphOS
Ahmed Khawaja, Joshua Landgraf, Rohith Prakash, Michael Wei, Eric Schkufza, Christopher J. Rossbach |
OSDI | 5 |
| 2016 | Stratified synthesis: automatically learning the x86-64 instruction setabstractThe x86-64 ISA sits at the bottom of the software stack of most desktop and server software. Because of its importance, many software analysis and verification tools depend, either explicitly or implicitly, on correct modeling of the semantics of x86-64 instructions. However, formal semantics for the x86-64 ISA are difficult to obtain and often written manually through great effort. We describe an automatically synthesized formal semantics of the input/output behavior for a large fraction of the x86-64 Haswell ISA’s many thousands of instruction variants. The key to our results is stratified synthesis, where we use a set of instructions whose semantics are known to synthesize the semantics of additional instructions whose semantics are unknown. As the set of formally described instructions increases, the synthesis vocabulary expands, making it possible to synthesize the semantics of increasingly complex instructions. Using this technique we automatically synthesized formal semantics for 1,795 instruction variants of the x86-64 Haswell ISA. We evaluate the learned semantics against manually written semantics (where available) and find that they are formally equivalent with the exception of 50 instructions, where the manually written semantics contain an error. We further find the learned formulas to be largely as precise as manually written ones and of similar size. Stefan Heule, Eric Schkufza, Rahul Sharma 0001, Alex Aiken |
PLDI | 2 |
| 2015 | Conditionally correct superoptimizationabstractThe aggressive optimization of heavily used kernels is an important problem in high-performance computing. However, both general purpose compilers and highly specialized tools such as superoptimizers often do not have sufficient static knowledge of restrictions on program inputs that could be exploited to produce the very best code. For many applications, the best possible code is conditionally correct: the optimized kernel is equal to the code that it replaces only under certain preconditions on the kernel's inputs. The main technical challenge in producing conditionally correct optimizations is in obtaining non-trivial and useful conditions and proving conditional equivalence formally in the presence of loops. We combine abstract interpretation, decision procedures, and testing to yield a verification strategy that can address both of these problems. This approach yields a superoptimizer for x86 that in our experiments produces binaries that are often multiple times faster than those produced by production compilers. Rahul Sharma 0001, Eric Schkufza, Berkeley R. Churchill, Alex Aiken |
OOPSLA | 2 |
| 2014 | Stochastic optimization of floating-point programs with tunable precisionabstractThe aggressive optimization of floating-point computations is an important problem in high-performance computing. Unfortunately, floating-point instruction sets have complicated semantics that often force compilers to preserve programs as written. We present a method that treats floating-point optimization as a stochastic search problem. We demonstrate the ability to generate reduced precision implementations of Intel's handwritten C numeric library which are up to 6 times faster than the original code, and achieve end-to-end speedups of over 30% on a direct numeric simulation and a ray tracer by optimizing kernels that can tolerate a loss of precision while still remaining correct. Because these optimizations are mostly not amenable to formal verification using the current state of the art, we present a stochastic search technique for characterizing maximum error. The technique comes with an asymptotic guarantee and provides strong evidence of correctness. Eric Schkufza, Rahul Sharma 0001, Alex Aiken |
PLDI | 1 |
| 2013 | Stochastic superoptimizationabstractWe formulate the loop-free binary superoptimization task as a stochastic search problem. The competing constraints of transformation correctness and performance improvement are encoded as terms in a cost function, and a Markov Chain Monte Carlo sampler is used to rapidly explore the space of all possible programs to find one that is an optimization of a given target program. Although our method sacrifices completeness, the scope of programs we are able to consider, and the resulting quality of the programs that we produce, far exceed those of existing superoptimizers. Beginning from binaries compiled by llvm -O0 for 64-bit x86, our prototype implementation, STOKE, is able to produce programs which either match or outperform the code produced by gcc -O3, icc -O3, and in some cases, expert handwritten assembly. Eric Schkufza, Rahul Sharma 0001, Alex Aiken |
ASPLOS | 1 |
| 2013 | Data-driven equivalence checkingabstractWe present a data driven algorithm for equivalence checking of two loops. The algorithm infers simulation relations using data from test runs. Once a candidate simulation relation has been obtained, off-the-shelf SMT solvers are used to check whether the simulation relation actually holds. The algorithm is sound: insufficient data will cause the proof to fail. We demonstrate a prototype implementation, called DDEC, of our algorithm, which is the first sound equivalence checker for loops written in x86 assembly. Rahul Sharma 0001, Eric Schkufza, Berkeley R. Churchill, Alex Aiken |
OOPSLA | 2 |
| 2011 | Programming the memory hierarchy revisited: supporting irregular parallelism in sequoiaabstractWe describe two novel constructs for programming parallel machines with multi-level memory hierarchies: call-up, which allows a child task to invoke computation on its parent, and spawn, which spawns a dynamically determined number of parallel children until some termination condition in the parent is met. Together we show that these constructs allow applications with irregular parallelism to be programmed in a straightforward manner, and furthermore these constructs complement and can be combined with constructs for expressing regular parallelism. We have implemented spawn and call-up in Sequoia and we present an experimental evaluation on a number of irregular applications. Michael Bauer 0001, Eric Schkufza, Alex Aiken |
PPoPP | 3 |
| 2011 | Interactive furniture layout using interior design guidelinesabstractWe present an interactive furniture layout system that assists users by suggesting furniture arrangements that are based on interior design guidelines. Our system incorporates the layout guidelines as terms in a density function and generates layout suggestions by rapidly sampling the density function using a hardware-accelerated Monte Carlo sampler. Our results demonstrate that the suggestion generation functionality measurably increases the quality of furniture arrangements produced by participants with no prior training in interior design. Paul Merrell, Eric Schkufza, Maneesh Agrawala, Vladlen Koltun |
ACM Trans. Graph. | 2 |
| 2010 | Computer-generated residential building layoutsabstractWe present a method for automated generation of building layouts for computer graphics applications. Our approach is motivated by the layout design process developed in architecture. Given a set of high-level requirements, an architectural program is synthesized using a Bayesian network trained on real-world data. The architectural program is realized in a set of floor plans, obtained through stochastic optimization. The floor plans are used to construct a complete three-dimensional building with internal structure. We demonstrate a variety of computer-generated buildings produced by the presented approach. Paul Merrell, Eric Schkufza, Vladlen Koltun |
ACM Trans. Graph. | 2 |