PACO: Paderborn CPU Core for Approximate Computing Supervisors Jun.-Prof. Dr. Christian Plessl Dr. Paul Kaufmann Presenter Tobias Kenter Credit: Communications of the ACM, Vol. 58 No. 5, Pages 12-14
Approximate Computing Approximate Computing (AC) is an emerging paradigm for designing computer systems Addresses most important challenges for future systems faster, more energy efficient, smaller Fundamental idea many applications can live with good-enough results compute only as accurately as required Promising domains computations involving human perception machine learning computationally hard problems? 2
AC is the The Hot New Thing Sampson et al.: "Good enough computing", IEEE Spectrum, Oct. 2013 APPROX 2014 First SIGPLAN Workshop on Probabilistic and Approximate Computing Edinburgh, Scotland L. Kugler: "Is 'good enough' computing good enough?" Comm. ACM, May 2015 WAX 2015 2015 Workshop on Approximate Computing Portland, Oregon Paderborn Workshop on Approximate Computing to be held in October 2015 3
Example: Approximate JPEG compression improve hardware implementation of JPEG with imprecise adder circuits exact adder (full bit-width) approximated solution (simplified adder circuit, error in LSBs) exact implementation (reduced bit-width) results: AC solution needs 33% less chip area, 53% lower power consumption similar benefits for reduced bit-width implementation but much better quality V. Gupta et. al. IMPACT: imprecise adders for low- power approximate computing. In Proc. Int. Symp. on Low Power Electronics and Design (ISPLED). 2011. 4
Project Group PACO Goal: develop CPU architecture for approximate computing Paderborn CPU Core for Approximate Computing (PACO) - RISC processor with approximate and nonapproximate functional units - AC-specific instruction set extensions - compiler extensions - evaluation with instruction set simulator - prototype on FPGA (possibly VLSI estimation) Scope of work can be adapted to group size and interests 5
Phase 1: exploration and prototypes, e.g. select suitable CPU soft core as basis for work instruction set simulator Preliminary Work Plan approximate ALU design and characterization (e.g. evolutionary algorithms, Monte Carlo tree search) integration of AC units in CPU exploration of code generation approaches benchmark selection (image processing, machine learning) Phase 2: refinement, implementation, evaluation, e.g. emulation of PACO on FPGA low-level code generation toolchain evaluation on FPGA prototype (optional) evaluation of PACO implementation as chip by simulation 6
Reasons for joining this project group work on a hot research topic interdisciplinary project: CS & CE build your own CPU work hard! achieve inaccurate results! and you will like it! get experiences with FPGAs learn how to develop a CPU simulator build your own compiler 7
Preconditions You should have a basic familiarity in some of these areas: computer architecture digital design hardware description languages low-level programming compilers Don t worry: Nobody will have all the required skills at the beginning Project group for CS and CE students CS students: regular 30 ECTS project group including seminar CE students: 18 ECTS project group + 4 ECTS seminar + workplan considering different expected effort 8
Are you interested? Talk to me after the presentation Register in PAUL and confirm your interest by email to christian.plessl@uni-paderborn.de Tell your friends Attend the first meeting for the PG (second week of winter term 2015/16 Questions, get in touch with Christian Plessl Paul Kaufmann Tobias Kenter 9