“Designing Custom Hardware Accelerators with Types”
After decades of relentless progress, CPUs are not getting much faster anymore. Instead, modern machines increasingly rely on special-purpose hardware accelerators that do one thing—or a few things—far more efficiently. But the tools we have for designing custom and reconfigurable hardware remain primitive. This talk is about our ongoing work on a new programming language for designing application-specific accelerators. The idea is to use an elaborate type system to describe how a normal, imperative program maps onto the constraints of hardware implementation. The language guarantees that any well-typed program can be translated to hardware. The new language lets software programmers productively design custom hardware without hiding its essential complexity.
Adrian Sampson is an assistant professor in the computer science department at Cornell. He works on programming languages, computer architecture, and the abstractions that separate them. He worked on approximate computing, the idea that we should allow machines to expose errors to some kinds of applications as a trade-off for computational efficiency. He sees approximate computing as an instance of a broader breakdown of airtight distinctions between hardware and software concerns.