Back to overview

ADApprox: Towards Application-Driven Approximate Logic Synthesis

Applicant Pozzi Laura
Number 188613
Funding scheme Project funding (Div. I-III)
Research institution Istituto del Software (SI) Facoltà di scienze informatiche
Institution of higher education Università della Svizzera italiana - USI
Main discipline Information Technology
Start/End 01.10.2020 - 30.09.2024
Approved amount 867'000.00
Show all

Keywords (3)

Design Space Exploration; Hardware Software Codesign; Approximate Computing

Lay Summary (Italian)

Approximate Computing (AC) postula che la realizzazione dell’hardware e del software di un sistema di elaborazione può essere ottimizzata lungo tre assi inter-dipendenti: il fabbisogno di risorse (area, energia), la performance di computazione e la qualità dei risultati ottenuti. Recentemente, svariate soluzioni in ambito AC sono state proposte, sia a livello applicativo che circuitale. Nonostante ciò, non vi sono al momento metodologie capaci di attuare ottimizzazioni inesatte che combinino vari livelli di astrazione, valutandone l’impatto nell’ambito di applicazione complesse. L’ambizione del progetto ADApprox è di colmare questa lacuna, ricercando nuovi approcci che leghino tecniche compilative e di sintesi hardware per la realizzazione di sistemi di elaborazione con alta efficienza, performance e affidabilità.
Lay summary

ADapprox si sviluppa su due assi di ricerca. Il primo mira a sviluppare nuove metodologie basate su compilatori per la selezione -- a partire dal codice sorgente di un’applicazione, delle sue parti più adatta ad essere accelerati su hardware, anche considerando il loro grado di approssimabilità. Il secondo ha come fine l'implementazione di tali hotspot come circuiti digitali, affrontando la sintesi approssimata dei loro operatori aritmetici e l'integrazione dei componenti risultanti in interi sistemi computazionali.
L’obiettivo ultimo del progetto è la realizzazione di un ambiente di sviluppo automatizzato per la caratterizzazione, selezione, implementazione e simulazione di sistemi digitali basati su Approximate Computing, con minori richieste di risorse e maggiori prestazioni rispetto alle loro controparti tradizionali, tenendo sotto controllo il degrado della qualità di servizio causata dalle approssimazioni del flusso computazionale.

Direct link to Lay Summary Last update: 16.07.2020

Responsible applicant and co-applicants


Project partner

Associated projects

Number Title Start Funding scheme
113812 Compiler Technology for Customisable Embedded Processors 01.10.2006 Project funding (Div. I-III)
156397 Magic ISEs: Enlarging the Scope of Automatic Instruction Set Extension 01.11.2014 Project funding (Div. I-III)


Across the computing landscape, many application domains are resilient, to a degree, towards lossy optimisations. Nonetheless, traditional electronics systems design practices, if at all considering the effect of approximations, are only concerned with ensuring that the correctness of an application outcome is not overly affected by quantisation errors.The emergence of the Approximate Computing (AC) paradigm challenges this stance, adopting instead aggressive tailoring strategies as a major avenue towards the maximisation of the performance and efficiency of computing systems. AC postulates that systems can be customised for a particular application field across three dimensions: run-time performance (latency or throughput), employed resources (area, energy) and Quality- of-Service (QoS). Moreover, AC states that these three metrics can be effectively traded-off against each other to accommodate different requirements.AC offers a path towards a sustained increase in computational performance independently of the low-level characteristics of the transistors used to implement digital integrated circuits. AC avenues are therefore nowadays of increasing relevance against a backdrop of diminishing returns from technology scaling, both in terms of operating frequencies and of energy efficiencies.Nonetheless, recent headways in AC have, for the most part, adopted a compartmentalised approach, offering solutions covering single abstraction levels (e.g., methodologies for approximate circuit synthesis, architectures, compiler-level transformations). The ambition at the foundation of the ADApprox project is instead to explore their synergies, developing a conceptual strategy, as well as a prototype framework embodying it, able to judiciously harness approximation opportunities while spanning multiple hardware and software layers.I plan to assess the benefits of the ADApprox approach on state of the art heterogeneous systems comprising software-programmable processors and hardware accelerators realised on reconfigurable logic. Such platforms, termed Systems on Programmable Chips (SoPCs), are becoming increasingly popular in a variety of scenarios, thanks to their high performance and flexibility. This latter characteristic, in turn, makes them ideal candidates for a holistic assessment of the benefits deriving from an AC stance.Building on my expertise in the domains of compiler analysis, domain-specific systems and EDA (Electronic Design Automation), I plan to tackle this challenge by following two complementary research lines. The first ones will aim at devising new compiler-based methodologies for the characterisation and selection of acceleration candidates from the source code of applications, including their degree of approximability. By avoiding time-consuming synthesis, such early evaluation will be able to pinpoint the computational hotspots for acceleration as inexact accelerators. Goal of the second research avenue will reside in the inexact hotspots implementation, addressing the approximate synthesis of their arithmetic operators and the integration of the resulting components in entire systems.Ultimately, the culmination of these effort will result in a unified and automated cockpit for the approximation- aware characterisation, selection, implementation and simulation of inexact SoPCs, having lower resource requirements and higher performance with respect to their exact counterparts, while keeping in check the QoS degradation of the application outputs due to lossy optimisations.