Zachary DeVito

Postdoctoral Scholar
Stanford Graphics Group
zdevito at cs dot stanford dot edu
cv     zdevito

I am a postdoc at Stanford in computer science working with Pat Hanrahan. I also recently received my Ph.D. from Stanford, and did my undergraduate degree at Princeton. I am interested in applying techniques from programming languages to make high-performance programming easier and useable by a wider audience. In particular, I do research in creating high-performance domain-specific languages for domains such as physical simulation, statistics, and image processing. As a part of my Ph.D. research, I also created the Terra programming language, a tool that makes building domain-specific languages easier.

Software Projects

Terra A low-level language which is meta-programmed using Lua. Terra is used to develop high-performance domain-specific languages and libraries that need to generate optimized low-level code at runtime.

Opt A language that transforms high-level energy specifications for non-linear least-squares optimizers into high-performance GPU implementations.

Darkroom A language for designing high-level image processing pipelines that can be compiled into custom hardware designs or efficient CPU implementations. It uses Terra to generate code.

Liszt and Ebb Liszt transforms portable high-level code into efficient cluster, GPU, and multi-core implementations. Ebb is the second generation of Liszt, which uses Terra for code generation, allowing it to be more flexible and easier to develop.

Riposte An implementation of the R programming language that uses a trace-based just-in-time compiler to accelerate vector code written at a high-level.


Opt: A Domain Specific Language for Non-linear Least Squares Optimization in Graphics and Imaging.
Zachary DeVito, Michael Mara, Michael Zollhoefer, Gilbert Bernstein, Jonathan Ragan-Kelley, Christian Theobalt, Pat Hanrahan, Matthew Fisher, and Matthias Nießner.
In submission to Transactions on Graphics

Rigel: Flexible Multi-Rate Image Processing Hardware
James Hegarty, Ross Daly, Zachary DeVito, Jonathan Ragan-Kelley, Pat Hanrahan
To appear in SIGGRAPH'16

Ebb: A DSL for Physical Simulation on CPUs and GPUs
Gilbert Louis Bernstein, Chinmayee Shah, Crystal Lemire, Zachary DeVito, Matthew Fisher, Philip Levis, Pat Hanrahan
To appear in Transactions on Graphics '16

The Design of Terra: Harnessing the best features of high-level and low-level languages
Zachary DeVito and Pat Hanrahan

Terra: Simplifying High-performance Programming using multi-stage programming.
Zachary DeVito
Ph.D. Dissertation, January 2015

Darkroom: compiling high-level image processing code into hardware pipelines
James Hegarty, John Brunhaver, Zachary DeVito, Jonathan Ragan-Kelley, Noy Cohen, Steven Bell, Artem Vasilyev, Mark Horowitz, Pat Hanrahan

First-class Runtime Generation of High-performance Types using Exotypes
Zachary DeVito, Daniel Ritchie, Matt Fisher, Alex Aiken, and Pat Hanrahan
PLDI '14

Just-in-time Length Specialization of Dynamic Vector Code
Justin Talbot, Zachary DeVito, Pat Hanrahan

Terra: A Multi-Stage Language for High-Performance Computing
Zachary DeVito, James Hegarty, Alex Aiken, Pat Hanrahan, and Jan Vitek
PLDI '13

Exploring Traditional and Emerging Parallel Programming Models Using a Proxy Application
Ian Karlin, Abhinav Bhatele, Jeff Keasler, Bradford L. Chamberlain, Jonathan Cohen, Zachary Devito, Riyaz Haque, Dan Laney, Edward Luke, Felix Wang, David Richards, Martin Schulz, Charles H. Still

Riposte: a trace-driven compiler and parallel VM for vector code in R
Justin Talbot, Zachary DeVito, Pat Hanrahan
PACT '12

Designing the Language Liszt for Building Portable Mesh-based PDE Solvers
Zachary DeVito and Pat Hanrahan
SciDac '11

Liszt: a domain specific language for building portable mesh-based PDE solvers
Zachary DeVito, Niels Joubert, Francisco Palacios, Stephen Oakley, Montserrat Medina, Mike Barrientos, Erich Elsen, Frank Ham, Alex Aiken, Karthik Duraisamy, Eric Darve, Juan Alonso, Pat Hanrahan
SC '11

Language virtualization for heterogeneous parallel computing
Hassan Chafi, Zach DeVito, Adriaan Moors, Tiark Rompf, Arvind K. Sujeeth, Pat Hanrahan, Martin Odersky, Kunle Olukotun