My research is on computer architecture and programming languages.
I am particularly enthusiastic about rethinking hardware–software abstractions.
For current projects, see the research happening in my research group, Capra.
Publications
Look me up at DBLP for another view on my publications.
Some of the links below are to the ACM database (so they can affect the ACM’s popularity statistics). Use the “local PDF” links if you prefer to bypass this
rigmarole.
The slides linked below are PDF files. Keynote files are available on request.
(I don’t have PowerPoint versions; sorry.)
Conference Papers
-
“Unifying Static and Dynamic Intermediate Languages for Accelerator Generators.”
Caleb Kim, Pai Li, Anshuman Mohan, Andrew Butt, Adrian Sampson, and Rachit Nigam.
To appear in
OOPSLA 2024.
-
“Lightweight, Modular Verification for WebAssembly-to-Native Instruction Selection.”
Alexa VanHattum, Monica Pardeshi, Chris Fallin, Adrian Sampson, and Fraser Brown.
In
ASPLOS 2024.
-
“Modular Hardware Design with Timeline Types.”
Rachit Nigam, Pedro Henrique Azevedo de Amorim, and Adrian Sampson.
In
PLDI 2023.
-
“Stepwise Debugging for Hardware Accelerators.”
Griffin Berlstein, Rachit Nigam, Chris Gyurgyik, and Adrian Sampson.
In
ASPLOS 2023.
-
“Verifying Dynamic Trait Objects in Rust.”
Alexa Vanhattum, Daniel Schwartz-Narbonne, Nathan Chong, and Adrian Sampson.
In
ICSE SEIP 2022.
-
“Compiler-Driven Simulation of Reconfigurable Hardware Accelerators.”
Zhijing Li, Adrian Sampson, Yuwei Ye, and Stephen Neuendorffer.
In
HPCA 2022.
-
“Software-Defined Vector Processing on Manycore Fabrics.”
Philip Bedoukian, Neil Adit, Edwin Peguero, and Adrian Sampson.
In
MICRO 2021.
-
“Reticle: A Virtual Machine for Programming Modern FPGAs.”
Luis Vega, Joseph McMahan, Adrian Sampson, Dan Grossman, and Luis Ceze.
In
PLDI 2021.
-
“Vectorization for Digital Signal Processors via Equality Saturation.”
Alexa VanHattum, Rachit Nigam, Vincent T. Lee, James Bornholt, and Adrian Sampson.
In
ASPLOS 2021.
-
“A Compiler Infrastructure for Accelerator Generators.”
Samuel Thomas, Rachit Nigam, Zhijing Li, and Adrian Sampson.
In
ASPLOS 2021.
-
“Geometry Types for Graphics Programming.”
Dietrich Geisler, Irene Yoon, Aditi Kabra, Horace He, Yinnon Sanders, and Adrian Sampson.
In
OOPSLA 2020.
-
“A Synthesis-Aided Compiler for DSP Architectures (WiP Paper).”
Alexa VanHattum, Rachit Nigam, Vincent T. Lee, James Bornholt, and Adrian Sampson.
In
LCTES 2020.
-
“Predictable Accelerator Design with Time-Sensitive Affine Types.”
Rachit Nigam, Sachille Atapattu, Samuel Thomas, Zhijing Li, Ted Bauer, Yuwei Yi, Apurva Koti, Adrian Sampson, and Zhiru Zhang.
In
PLDI 2020.
-
“EVA²: Exploiting Temporal Redundancy in Live Computer Vision.”
Mark Buckler, Philip Bedoukian, Suren Jayasuriya, and Adrian Sampson.
In
ISCA 2018.
-
“Programming Language Support for Natural Language Interaction.”
Alex Renda, Harrison Goldstein, Sarah Bird, Chris Quirk, and Adrian Sampson.
In
SysML 2018.
-
“Static Stages for Heterogeneous Programming.”
Adrian Sampson, Kathryn S McKinley, and Todd Mytkowicz.
In
OOPSLA 2017.
-
“Reconfiguring the Imaging Pipeline for Computer Vision.”
Mark Buckler, Suren Jayasuriya, and Adrian Sampson.
In
ICCV 2017.
-
“Let’s Fix OpenGL.”
Adrian Sampson.
In
SNAPL 2017.
-
“Probability Type Inference for Flexible Approximate Programming.”
Brett Boston, Adrian Sampson, Dan Grossman, and Luis Ceze.
In
OOPSLA 2015.
-
“Hardware–Software Co-Design: Not Just a Cliché.”
Adrian Sampson, James Bornholt, and Luis Ceze.
In
SNAPL 2015.
-
“SNNAP: Approximate Computing on Programmable SoCs via Neural Acceleration.”
Thierry Moreau, Mark Wyse, Jacob Nelson, Adrian Sampson, Hadi Esmaeilzadeh, Luis Ceze, and Mark Oskin.
In
HPCA 2015.
-
“Monitoring and Debugging the Quality of Results in Approximate Programs.”
Michael Ringenburg, Adrian Sampson, Isaac Ackerman, Luis Ceze, and Dan Grossman.
In
ASPLOS 2015.
-
“Expressing and Verifying Probabilistic Assertions.”
Adrian Sampson, Pavel Panchekha, Todd Mytkowicz, Kathryn S McKinley, Dan Grossman, and Luis Ceze.
In
PLDI 2014.
-
“Approximate Storage in Solid-State Memories.”
Adrian Sampson, Jacob Nelson, Karin Strauss, and Luis Ceze.
In
MICRO 2013.
-
“Neural Acceleration for General-Purpose Approximate Programs.”
Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, and Doug Burger.
In
MICRO 2012.
-
“Automatic Discovery of Performance and Energy Pitfalls in HTML and CSS.”
Adrian Sampson, Călin Caşcaval, Luis Ceze, Pablo Montesinos, and Dario Suarez Gracia.
In
IISWC 2012.
-
“Architecture Support for Disciplined Approximate Programming.”
Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, and Doug Burger.
In
ASPLOS 2012.
-
“EnerJ: Approximate Data Types for Safe and General Low-Power Computation.”
Adrian Sampson, Werner Dietl, Emily Fortuna, Danushen Gnanapragasam, Luis Ceze, and Dan Grossman.
In
PLDI 2011.
-
“Composable Specifications for Structured Shared-Memory Communication.”
Benjamin Wood, Adrian Sampson, Luis Ceze, and Dan Grossman.
In
OOPSLA 2010.
-
“On-line Distributed Traffic Grooming.”
R. Jordan Crouser, Brian Rice, Adrian Sampson, and Ran Libeskind-Hadas.
In
ICC 2008.
Workshop Papers
-
“A Toolkit for Designing Hardware DSLs.”
Griffin Berlstein, Rachit Nigam, Chris Gyurgyik, and Adrian Sampson.
In
WOSET 2021 (co-located with ICCAD).
-
“Online Verification of Commutativity.”
Aditi Kabra, Dietrch Geisler, and Adrian Sampson.
In
TAPAS 2020 (co-located with SPLASH).
-
“Optimizing JPEG Quantization for Classification Networks.”
Zhijing Li, Christopher De Sa, and Adrian Sampson.
In
ReCoML 2020 (co-located with MLSys).
-
“LambdaLab: An Interactive λ-Calculus Reducer for Learning.”
Daniel Sainati and Adrian Sampson.
In
SPLASH-E 2018.
-
“Debugging Probabilistic Programs.”
Chandrakana Nandi, Dan Grossman, Adrian Sampson, Todd Mytkowicz, and Kathryn S McKinley.
In
MAPL 2017 (co-located with PLDI).
-
“Rethinking the Camera Pipeline for Computer Vision.”
Mark Buckler, Suren Jayasuriya, and Adrian Sampson.
In
WAX 2017 (co-located with ASPLOS).
-
“The Case for Compulsory Approximation.”
Adrian Sampson.
In
WAX 2016 (co-located with ASPLOS).
-
“Approximating to the Last Bit.”
Thierry Moreau, Adrian Sampson, Luis Ceze, and Mark Oskin.
In
WAX 2016 (co-located with ASPLOS).
-
“REACT: A Framework for Rapid Exploration of Approximate Computing Techniques.”
Mark Wyse, Andre Baixo, Thierry Moreau, Bill Zorn, James Bornholt, Adrian Sampson, Luis Ceze, and Mark Oskin.
In
WAX 2015 (co-located with PLDI).
-
“Two Approximate-Programmability Birds, One Statistical-Inference Stone.”
Adrian Sampson.
In
APPROX 2014 (co-located with PLDI).
-
“Tuning Approximate Computations with Constraint-Based Type Inference.”
Brett Boston, Adrian Sampson, Dan Grossman, and Luis Ceze.
In
WACAS 2014 (co-located with APLOS).
-
“Approximate Semantics for Wirelessly Networked Applications.”
Benjamin Ransford, Adrian Sampson, and Luis Ceze.
In
WACAS 2014 (co-located with ASPLOS).
-
“Profiling and Autotuning for Energy-Aware Approximate Programming.”
Michael F. Ringenburg, Adrian Sampson, Luis Ceze, and Dan Grossman.
In
WACAS 2014 (co-located with ASPLOS).
-
“Design Tradeoffs of Approximate Analog Neural Accelerators.”
Renée St. Amant, Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, Arjang Hassibi, and Doug Burger.
In
NIAC 2013.
-
“Addressing Dark Silicon Challenges with Disciplined Approximate Computing.”
Hadi Esmaeilzadeh, Adrian Sampson, Michael Ringenburg, Dan Grossman, Luis Ceze, and Doug Burger.
In
DaSi 2012 (co-located with ISCA).
-
“Towards Neural Acceleration for General-Purpose Approximate Computing.”
Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, and Doug Burger.
In
WEED 2012 (co-located with ISCA).
-
“Greedy Coherence.”
Emily Fortuna, Brandon Lucia, Adrian Sampson, Benjamin Wood, and Luis Ceze.
In
HPPC 2011 (co-located with MICRO).
Other Stuff
-
“Very Large Scale Disintegration.”
Adrian Sampson.
In
the Wild and Crazy Ideas (WACI) session at ASPLOS 2023.
-
“Performance Left on the Table: An Evaluation of Compiler Auto-Vectorization for RISC-V.”
Neil Adit and Adrian Sampson.
In
IEEE Micro.
-
“Exploiting Errors for Efficiency: A Survey from Circuits to Applications.”
Phillip Stanley-Marbell, Armin Alaghi, Michael Carbin, Eva Darulova, Lara Dolecek, Andreas Gerstlauer, Ghayoor Gillani, Djordje Jevdjic, Thierry Moreau, Mattia Cacciotti, Alexandros Daglis, Natalie D. Enright Jerger, Babak Falsafi, Sasa Misailovic, Adrian Sampson, and Damien Zufferey.
In
ACM Computing Surveys 53(3), 2020.
-
“A Taxonomy of General Purpose Approximate Computing Techniques.”
Thierry Moreau, Joshua San Miguel, Mark Wyse, James Bornholt, Armin Alaghi, Luis Ceze, Natalie Enright Jerger, and Adrian Sampson.
In
IEEE Embedded Systems Letters.
-
“Approximate Computing: Unlocking Efficiency with Hardware–Software Co-Design.”
Luis Ceze and Adrian Sampson.
In
GetMobile, July 2016.
-
Hardware and Software for Approximate Computing.
Ph.D. dissertation.
-
“Approximate Computing: Making Mobile Systems More Efficient.”
Thierry Moreau, Adrian Sampson, and Luis Ceze.
In
IEEE Pervasive Computing, April/June 2015.
-
“ACCEPT: A Programmer-Guided Compiler Framework for Practical Approximate Computing.”
Adrian Sampson, André Baixo, Benjamin Ransford, Thierry Moreau, Joshua Yip, Luis Ceze, and Mark Oskin.
Technical report UW-CSE-15-01 1.
-
“Neural Acceleration for General-Purpose Approximate Programs.”
Hadi Esmaeilzadeh, Adrian Sampson, Luis Ceze, and Doug Burger.
In
CACM Research Highlights, January 2015.
-
“Approximate Storage in Solid-State Memories.”
Adrian Sampson, Jacob Nelson, Karin Strauss, and Luis Ceze.
In
ACM Transactions on Computer Systems, September 2014.
-
“EnerJ, the Language of Good-Enough Computing.”
Adrian Sampson, Luis Ceze, and Dan Grossman.
In
IEEE Spectrum, October 2013.
-
“Dense Approximate Storage in Phase-Change Memory.”
Jacob Nelson, Adrian Sampson, and Luis Ceze.
In
the Ideas & Perspectives session at ASPLOS 2011.
Approximate Computing
Trade-offs between efficiency and accuracy are fundamental in many computing domains: graphics, vision, machine learning, compression, scientific computing, physical simulation, etc. Approximate computing is the idea that we can design systems that take advantage of these trade-offs and unlock efficiency gains that are impossible under fully precise execution.
Approximate computing spans the entire system stack, from hardware to applications. Approximate architectures expose new accuracy and reliability knobs; approximate compilers add new optimizations that carefully break program semantics; and programming languages constrain the impact of approximation.
My dissertation, Hardware and Software for Approximate Computing, surveys the approximate-computing research landscape.
While I’m still interested in approximate computing, I haven’t worked directly on it for a bit.
I have been focusing on other topics with a similar flavor: rethinking hardware–software abstractions with techniques from programming languages and architecture.
You can see the latest on the site for Capra, my research group.