This thesis proposes a framework to analyse the vulnerabilities of an image processing application concerning a set of faults. The domains we will pick our applications from are those of image classifications supervised machine learning which Convolutional Neural Networks are one expression of. When software engineers start developing an application, they seldom think that the computer might fail. They focus on software problems since the hardware will "operate correctly". But a memory cell may break or a line might become grounded due to a power surge, causing the application to behave incorrectly or worse, unpredictably. When working with safety-critical systems, whose failure entails potential human losses, or with computations so heavy that repeating the entire process corresponds to a consistent time, power and economic waste, it becomes paramount to be able to estimate/evaluate the effects of such faults and eventually introduce hardening solutions. The framework we propose is based on TensorFI, a plugin for the famous TensorFlow library, which adds a procedure to perform fault injection. We perform two orthogonal analyses to investigate the application vulnerability to such events: error analysis, which deals with numerical errors caused by the injection and usability analysis, which investigates the impact of the fault on the application outputs, to determine whether they can still be used or need to be discarded and possibly recomputed. One fault model has been here considered: the Single Event Upset, a fault model adopted typically in today's computing systems contexts, considering transient faults.
Questa tesi vuole proporre una metodologia per l'analisi delle vulnerabilità di un'applicazione di elaborazione di immagini rapportata ad un insieme di guasti. Le applicazioni in esame appartengono al dominio della classificazione di immagini e dell'apprendimento supervisionato cui una espressione sono le reti neurali convoluzionali. Quando un ingegnere del software avvia il progetto di una applicazione, raramente considera che il calcolatore potrebbe causare problemi. Ci si concentra sui potenziali problemi del software poiché si assumerà il correto funzionamento dell'hardware. Ma una cella di memoria può rompersi od una linea può essere messa a terra a causa di uno sbalzo di corrente, causando confusione nell'applicazione che inizierà a comportarsi in modo anormale, o peggio, imprevedibile. Lavorando con sistemi di critica importanza, il cui malfunzionamento implica perdite umane, o con computazioni così pesanti che ripeterle corrisponderebbe ad uno spreco consistente di tempo, potenza e denaro, diviene fondamentale l'essere in grado di stimare/valutare gli effetti di tali guasti per infine introdurre strategie di irrobustimento. La metodologia che proponiamo si fonda su TensorFI, un plugin della famosa libreria TensorFlow, a cui aggiunge una procedura per l'iniezione di guasti. Abbiamo implementato due analisi ortogonali fra loro: l'analisi degli errori, che tratta di differenze numeriche causate da un'iniezione e l'analisi di usabilità, che investiga l'impatto del guasto sui risultati dell'applicazione con lo scopo di determinare se questi possano essere ancora utilizzati o vi è la necessita di scartarli e possibilmente ricomputarli. Il modello di guasto che consideriamo è il Single Event Upset, un modello di guasto tipicamente adottato come guasto transiente nel contesto dei sistemi di computazione odierni.
A framework to evaluate application vulnerability to soft errors in the image processing context
CUGINI, LORENZO
2018/2019
Abstract
This thesis proposes a framework to analyse the vulnerabilities of an image processing application concerning a set of faults. The domains we will pick our applications from are those of image classifications supervised machine learning which Convolutional Neural Networks are one expression of. When software engineers start developing an application, they seldom think that the computer might fail. They focus on software problems since the hardware will "operate correctly". But a memory cell may break or a line might become grounded due to a power surge, causing the application to behave incorrectly or worse, unpredictably. When working with safety-critical systems, whose failure entails potential human losses, or with computations so heavy that repeating the entire process corresponds to a consistent time, power and economic waste, it becomes paramount to be able to estimate/evaluate the effects of such faults and eventually introduce hardening solutions. The framework we propose is based on TensorFI, a plugin for the famous TensorFlow library, which adds a procedure to perform fault injection. We perform two orthogonal analyses to investigate the application vulnerability to such events: error analysis, which deals with numerical errors caused by the injection and usability analysis, which investigates the impact of the fault on the application outputs, to determine whether they can still be used or need to be discarded and possibly recomputed. One fault model has been here considered: the Single Event Upset, a fault model adopted typically in today's computing systems contexts, considering transient faults.File | Dimensione | Formato | |
---|---|---|---|
2020_06_Cugini.pdf
accessibile in internet per tutti
Descrizione: Testo della tesi
Dimensione
7.21 MB
Formato
Adobe PDF
|
7.21 MB | Adobe PDF | Visualizza/Apri |
I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/10589/154506