Alex Renda
YOU?
Author Swipe
View article: Learning to Compile Programs to Neural Networks
Learning to Compile Programs to Neural Networks Open
A $\textit{neural surrogate of a program}$ is a neural network that mimics the behavior of a program. Researchers have used these neural surrogates to automatically tune program inputs, adapt programs to new settings, and accelerate comput…
View article: Turaco: Complexity-Guided Data Sampling for Training Neural Surrogates of Programs
Turaco: Complexity-Guided Data Sampling for Training Neural Surrogates of Programs Open
Programmers and researchers are increasingly developing surrogates of programs, models of a subset of the observable behavior of a given program, to solve a variety of software development challenges. Programmers train surrogates from meas…
View article: COMET: Neural Cost Model Explanation Framework
COMET: Neural Cost Model Explanation Framework Open
Cost models predict the cost of executing given assembly code basic blocks on a specific microarchitecture. Recently, neural cost models have been shown to be fairly accurate and easy to construct. They can replace heavily engineered analy…
View article: The Effect of Data Dimensionality on Neural Network Prunability
The Effect of Data Dimensionality on Neural Network Prunability Open
Practitioners prune neural networks for efficiency gains and generalization improvements, but few scrutinize the factors determining the prunability of a neural network the maximum fraction of weights that pruning can remove without compro…
View article: Cello: Efficient Computer Systems Optimization with Predictive Early Termination and Censored Regression
Cello: Efficient Computer Systems Optimization with Predictive Early Termination and Censored Regression Open
Sample-efficient machine learning (SEML) has been widely applied to find optimal latency and power tradeoffs for configurable computer systems. Instead of randomly sampling from the configuration space, SEML reduces the search cost by dram…
View article: Programming with neural surrogates of programs
Programming with neural surrogates of programs Open
Surrogates, models that mimic the behavior of programs, form the basis of a\nvariety of development workflows. We study three surrogate-based design\npatterns, evaluating each in case studies on a large-scale CPU simulator.\n With surrogat…
View article: DiffTune: Optimizing CPU Simulator Parameters with Learned Differentiable Surrogates
DiffTune: Optimizing CPU Simulator Parameters with Learned Differentiable Surrogates Open
CPU simulators are useful tools for modeling CPU execution behavior. However, they suffer from inaccuracies due to the cost and complexity of setting their fine-grained parameters, such as the latencies of individual instructions. This com…
View article: TIRAMISU: A Polyhedral Compiler for Dense and Sparse Deep Learning
TIRAMISU: A Polyhedral Compiler for Dense and Sparse Deep Learning Open
In this paper, we demonstrate a compiler that can optimize sparse and recurrent neural networks, both of which are currently outside of the scope of existing neural network compilers (sparse neural networks here stand for networks that can…
View article: Comparing Rewinding and Fine-tuning in Neural Network Pruning
Comparing Rewinding and Fine-tuning in Neural Network Pruning Open
Many neural network pruning algorithms proceed in three steps: train the network to completion, remove unwanted structure to compress the network, and retrain the remaining structure to recover lost accuracy. The standard retraining techni…
View article: Comparing Rewinding and Fine-tuning in Neural Network Pruning
Comparing Rewinding and Fine-tuning in Neural Network Pruning Open
Many neural network pruning algorithms proceed in three steps: train the network to completion, remove unwanted structure to compress the network, and retrain the remaining structure to recover lost accuracy. The standard retraining techni…
View article: Ithemal: Accurate, Portable and Fast Basic Block Throughput Estimation using Deep Neural Networks
Ithemal: Accurate, Portable and Fast Basic Block Throughput Estimation using Deep Neural Networks Open
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 performance engineers. Building an analytical model to do so …
View article: Abstractions for AI-Based User Interfaces and Systems
Abstractions for AI-Based User Interfaces and Systems Open
Novel user interfaces based on artificial intelligence, such as natural-language agents, present new categories of engineering challenges. These systems need to cope with uncertainty and ambiguity, interface with machine learning algorithm…