1.3k citations · 2.1k across the 35 of their papers we have counts for
7 papers · 1 filter
Exploiting Errors for Efficiency: A Survey from Circuits to Algorithms
Phillip Stanley-Marbell, Armin Alaghi, Michael Carbin +13
When a computational task tolerates a relaxation of its specification or when an algorithm tolerates the effects of noise in its execution, hardware, programming languages, and sys…
Ithemal: Accurate, Portable and Fast Basic Block Throughput Estimation using Deep Neural Networks
Charith Mendis, Alex Renda, Saman Amarasinghe +1
Predicting the number of clock cycles a processor takes to execute a block of assembly instructions in steady state (the throughput) is important for both compiler designers and pe…
Verifying Programs Under Custom Application-Specific Execution Models
Brett Boston, Zoe Gong, Michael Carbin
Researchers have recently designed a number of application-specific fault tolerance mechanisms that enable applications to either be naturally resilient to errors or include additi…
Verifying Handcoded Probabilistic Inference Procedures
Eric Atkinson, Cambridge Yang, Michael Carbin
Researchers have recently proposed several systems that ease the process of performing Bayesian probabilistic inference. These include systems for automatic inference algorithm syn…
Computable decision making on the reals and other spaces via partiality and nondeterminism
Benjamin Sherman, Luke Sciarappa, Adam Chlipala +1
Though many safety-critical software systems use floating point to represent real-world input and output, programmers usually have idealized versions in mind that compute with real…
The Three Pillars of Machine Programming
Justin Gottschlich, Armando Solar-Lezama, Nesime Tatbul +6
In this position paper, we describe our vision of the future of machine programming through a categorical examination of three pillars of research. Those pillars are: (i) intention…