Approximate computing has emerged recently as a trend at the intersection of programming languages, verification and hardware research. It rests on the observation that many applications are computing their results more accurately than needed, wasting resources in the process. As an example, the default choice for numerical computations is double floating-point precision, but often the inputs to those applications come with errors that are much larger than the roundoff errors produced by the arithmetic - a smaller precision is thus often perfectly sufficient. On the hardware side, we have strived for perfect hardware which always produces correct results. Certain applications, however, are arguably robust to rare, random errors or noise. These could benefit from unreliable hardware and the acompanying energy reductions.
The idea of approximate computing is simple: deliberately reduce accuracy to save energy, memory and/or time, i.e. view reducing accuracy as an opportunity instead of a necessary evil. Different approximation techniques have emerged over the past years, exploring the space of possibilities: unreliable hardware, dynamic precision knobs, numerical approximations, loop perforation and neural network accelerators among others. One of the key challenges is how to make all these available in a principled way to the every-day-programmer while ensuring a certain level of necessary correctness.
This seminar aims to provide an overview of this fairly new field. It also presents a good opportunity to explore a variety of techniques from the programming languages, verification and hardware domains applied to this specific problem.
The current plan is to split the seminar into two parts. In the first part, we will read original research papers; depending on the background of the participants, we will include background sessions where needed. The aim of the second part is to try and explore some of the techniques seen in a hands-on approach and to critically evaluate their effectiveness and promise on real-world applications.
Registration is over, but if you wish to participate without credit, just send an email to the instructor.