I risultati dello XOHW17 hanno visto ancora una volta il NECSTLab protagonista della competizione, infatti 7 progetti sono stati selezionati tra i finalisti e, per il secondo anno di fila, hanno vinto il premo nella categoria PhD con il team di bibbidi N-BObbiDY boo.
Ma conosciamo ora i gruppi che, purtroppo, non sono riusciti ad aggiudicarsi la finale.
BrainQube
Marta Brunetti: studente triennale in Ingegneria Biomedica;
Chiara Coletti: studente triennale in Ingegneria Biomedica;
Eleonora D’Arnese: studente magistrale in Ingegneria Biomedica.
BrainQube è un progetto che ha come obiettivo quello di andare ad accelerare in hardware su FPGA un algoritmo ad inferenza statistica per l’identificazione di reti neurali in soggetti in fase di Rest. L’identificazione di questi reti è importante a fini di ricerca, in quanto una maggiore comprensione del funzionamento cerebrale può apportare maggiori conoscenze nell’ambito delle malattie neurodegenerative.
Per quanto riguarda l’algoritmo statistico di analisi di immagini è stato scelto l’ ”Independent Component Analysis”, un particolare algoritmo iterativo per la separazione alla cieca delle sorgenti.
Questo algoritmo risulta molto adatto allo studio da noi preso in analisi, ma presenta un alto costo computazionale avendo così implementazioni su CPU poco efficienti. BrainQube propone quindi un’implementazione hardware su FPGA, della parte dell’algoritmo che occupa la percentuale maggiore di tempo in fase di computazione così da rendere più efficiente l’intera analisi.
Facebook: https://www.facebook.com/brainqubeatnecst
Twitter: https://twitter.com/BrainQube_NECST
Maddalena Andreoli: studente magistrale in Ingegneria Informatica;
Stefano Cagninelli: studente magistrale in Ingegneria Elettronica;
Alessandro Pappalardo: studente magistrale in Ingegneria Informatica.
Nel campo del riconoscimento d’immagine, lo stato dell’arte viene raggiunto dalle reti neurali convoluzionali (convNet); esse sfruttano l’operazione matematica di convoluzione tra matrici per ridurre le immagini ad un insieme di “features” che la rete è poi in grado di riconoscere. Questo processo è estremamente complesso e richiede grandi risorse sia in termini di computazione che di tempo. Convolve quindi si è proposta di implementare un livello di convoluzione da proporre come layer personalizzato per qualsiasi convNet, accelerando un algoritmo veloce di Winograd tramite implementazione sull’overlay FPGA della PYNQ.
Facebook: https://www.facebook.com/ConvolveatNECST
Twitter: https://twitter.com/ConvolveatNECST
YouTube: https://www.youtube.com/playlist?list=PLewc2qlpcOudI9zZtGsCdoAbwTvl6kqJd
FOCus
Matteo Foglio: studente magistrale in Ingegneria Informatica;
Andrea Milanta: studente magistrale in Ingegneria Informatica;
Guido Muscioni: studente magistrale in Ingegneria Informatica.
L’obbiettivo del progetto riguarda lo studio dell’accelerazione di alcuni algoritmi di computer vision della libreria open source OpenCV, con l’intento di portare alcuni di questi su FPGA.
Il crescente interesse commerciale per la computer vision ha portato il team FOCus a lavorare a stretto contatto con una startup italiana ed in particolare a cercare soluzioni concrete ad alcune delle tante sfide proposte dal mercato. Infatti, l’interazione di macchine con il mondo richiede alle prime di vedere e comprendere l’ambiente circostante, simulando un senso simile alla vista umana.
Lo studio ha inizialmente coinvolto gli algoritmi di “stitching”, quelli comunemente utilizzati sugli smartphone per ricostruire scene panoramiche che richiedono lo scatto di più di una immagine. Successivamente il progetto si è spostato verso la ricerca di algoritmi che permettessero la ricostruzione 3D di un oggetto.
Tutto il lavoro ha permesso di identificare le problematiche maggiori presenti nell’utilizzo di questi algoritmi, in particolare il riconoscimento degli stessi oggetti nelle differenti foto, passaggio necessario per ricostruire il modello 3D. FOCus identifica per questo problema una soluzione basata sull’utilizzo di guide laser, creando evidenti punti di riferimento comuni nelle differenti immagini.
Facebook: facebook.com/FOCusatNECST
YouTube: https://www.youtube.com/watch?v=NgylxgscRB4&list=PLewc2qlpcOud5AG9RyMZsW453J8GrHCCp
HIPSteR
Rolando Brondolin: dottorando in Ingegneria Informatica;
Giovanni Luca Favuzzi: studente triennale in Ingegneria Informatica;
Alberto Floris: studente triennale in Ingegneria Informatica.
In un mondo in corsa verso l’automazione e l’informatizzazione della vita quotidiana, fatta di oggetti, strumenti, dispositivi sempre più interconnessi, nasce il concetto di “Internet of Things”. Ad oggi i dispositivi che fanno parte dell’IoT dipendono dal Cloud, costituito da grandi servers dislocati a decine di chilometri di distanza dai “client” che li utilizzano. Questo approccio crea grandi problemi ad applicazioni sensibili alla latenza, richiede servers sempre più potenti per riuscire a gestire il corrispondente aumento incontrollato di dispositivi connessi e, inoltre, porta a saturare la banda fornita dalle infrastrutture di rete presenti nel territorio. La soluzione a tutto ciò è rappresentata dal Fog Computing: un’architettura distribuita, composta da numerosi “fog node”, unità di calcolo installate alla periferia della rete, che si occupano di effettuare la computazione in loco anziché su macchine fisicamente distanti.
I vantaggi sono evidenti: minor utilizzo di banda, minore latenza, minor sovraccarico dei servers. È in questo contesto che si inserisce il progetto HIPSteR, il cui scopo è implementare un “fog node” performante ma allo stesso tempo flessibile e dal ridotto consumo energetico. Il progetto prevede, dunque, di implementare un piccolo cluster di Xilinx PYNQ, in grado di sfruttare la potenza di calcolo delle FPGA attraverso una API di alto livello, sviluppata in C++, che permetta di coordinare e distribuire il lavoro delle singole logiche programmabili.
Facebook: https://www.facebook.com/HIPSteRatNECST
MaMa (Microchip automated for Microfluidic approach)
Nicholas Dascanio: studente triennale in Ingegneria Biomedica;
Gianluca Drappo: studente triennale in Ingegneria Biomedica.
Il progetto MaMa si inquadra nel campo della microfluidica, un approccio utile in molteplici studi biotecnologici. In questo progetto l’approccio microfludico è necessario per poter gestire una cultura cellulare, dove le varie cellule sono suddivise in camere raggiungibili attraverso una folta rete di canali, all’interno dei quali passa un fluido che viene correttamente direzionato grazie alla presenza di varie valvole poste sul chip.
Lo scopo di questo lavoro è quello di sviluppare il controllore di questo chip, o meglio, delle valvole su di esso ed implementarlo sulla PYNQ. Questo processo di “porting” (cioè l’affrontare lo stesso problema attraverso un’altra tecnologia) permette a MaMa di introdurre nel mondo dei controllori per chip microfluidici un sistema embedded che, a differenza di quelli presenti ora sul mercato, ha delle caratteristiche migliori.
La presenza dell’FPGA permette di aprire vari scenari futuri, come lo sviluppo come un single device che sia in grado di gestire il chip e allo stesso tempo effettuare l’analisi metabolica attraverso tecniche di imaging, processi che richiedono un’elevata potenza computazionale e che, quindi, verranno eseguiti su FPGA.
MaMa, oltre a proporsi come nuova alternativa ad i controllori presenti ora, è in grado di fornire un prospetto futuro dove con un singolo device si possano, contemporaneamente, analizzare e controllare una cultura cellulare, in real time, in modo da migliorare e velocizzare gli studi in questo campo di ricerca.
Facebook: https://www.facebook.com/MaMaatNECST
Youtube: https://www.youtube.com/playlist?list=PLewc2qlpcOufmTmoGazpwpBNEp0k5JgYm
Philippe Scorsolini: studente magistrale in Ingegneria Informatica;
Lorenzo Semeria: studente magistrale in Ingegneria Informatica;
Riccardo Vailati: studente triennale in Ingegneria Informatica.
Con “Fault Tolerance” si intende la capacità di un qualunque sistema di continuare il proprio funzionamento, anche in caso di guasto ad un suo componente. Uno degli approcci standard è il replicare più volte il sistema (solitamente tre volte) per far sì che, nel caso si dovesse rompere una delle copie, le altre possano continuare a funzionare, mentre la copia danneggiata possa essere riparata o sostituita, se possibile. Un approccio evidentemente molto costoso, dato che comporta una spesa tre volte maggiore per il sistema; per questo ci sono state proposte alternative, alle quali ci siamo ispirati per implementare una “proof of concept” di una delle possibili soluzioni.
Consiste non nel replicare l’intero sistema, ma solo alcune “unità funzionali” che lo compongono e che, all’occorrenza, possono sostituire quelle che si rompono. Ciò permette di tollerare molteplici guasti al costo di pochi “pezzi di ricambio” e una penalizzazione non troppo elevata delle performance, dovuta alla necessità di monitorare lo stato del sistema.
Facebook: https://www.facebook.com/NECSTolerance
Twitter: https://twitter.com/NECSTolerance
YouTube: https://youtu.be/SI_zMEcHhnQ
NECSTon
Claudio Montanari: studente triennale in Ingegneria Informatica;
Luca Napoletano: studente triennale in Ingegneria Informatica.
Al giorno d’oggi il mondo finanziario è fortemente improntato allo scambio di strumenti derivati, tra i quali (uno dei più commerciati) troviamo le Opzioni.
Esistono differenti contratti di questo tipo: opzioni Europee, Americane, Esotiche e molte altre. Per avere una strategia di investimento che abbia successo è richiesto uno strumento che permetta il la loro valutazione in termini di prezzo in maniera accurata e veloce.
Per descrivere le oscillazioni del prezzo di un’opzione, in funzione del tempo, vi sono numerosi fattori da prendere in considerazione e i modelli matematici che più si prestano in questo compito sono quelli a volatilità stocastica; uno dei migliori tra questi è il modello di Heston.
Questo modello presenta un’elevata complessità che lo rende irrisolvibile dal punto di vista analitico e che quindi obbliga a ricorrere a metodi di simulazione numerica, tra i quali il Metodo di Monte Carlo. Grazie all’estremo parallelismo che caratterizza questo algoritmo esso ha come naturale ambiente di sviluppo le FPGA.
Nel nostro progetto, perciò, ci siamo focalizzati sullo sviluppo di un algoritmo di “option pricing” su FPGA altamente efficiente sia dal punto di vista temporale che da quello energetico.
Facebook: https://www.facebook.com/NECSTonatNECST
YouTube: https://www.youtube.com/playlist?list=PLewc2qlpcOufVNA45inMz7RwjUYqMYirQ
Marco Bacis: studente magistrale in Ingegneria Informatica;
Stefania Deligia: studente triennale in Ingegneria Biomedica;
Serena Farina: studente triennale in Ingegneria Biomedica;
Identificazione di microaneorismi retinici tramite reti neurali.
La Retinopatia Diabetica (RD) è una patologia oculare che colpisce i vasi sanguigni della retina, una delle principali cause di cecità negli adulti. La sua diagnosi precoce è cruciale, al fine di impedire la comparsa di questo genere di disabilità. Uno dei sintomi appartenenti al primo stadio (retinopatia proliferativa) è la comparsa di anomalie sulla parete dei capillari retinici che, collassando, formano piccoli rigonfiamenti noti come microaneurismi. Una prima diagnosi può essere effettuata con l’identificazione di microaneurismi tramite Reti Neurali Convoluzionali (alias Convolutional Neural Networks – CNN). Le CNN sono in grado di classificare immagini di fundus camera e diagnosticare o meno la probabile presenza di retinopatia, oltre che sancirne il livello di danno.
In questo progetto si andrà ad implementare, in hardware, un algoritmo di detezione dei microaneurismi retinici su FPGA. Scopo del progetto è sfruttare le potenzialità della board dotate di Xilinx Virtex 7 al fine di ottenere un’architettura veloce ed efficiente. Quello che si vuole ottenere è l’accelerazione di un algoritmo di diagnosi di RD, offrendo un servizio ad alte performance di classificazione delle immagini.
Facebook: https://www.facebook.com/pg/NNEURaMAatNECST/
Twitter: https://twitter.com/nneurama
Chiara Crippa: studente magistrale in Ingegneria Biomedica;
Lorenzo Di Tucci: dottorando in Ingegneria Informatica;
Giulia Guidi: studente magistrale in Ingegneria Biomedica.
Uno degli obiettivi principali della genomica è identificare le variazioni nelle sequenze di DNA che contribuiscono all’insorgenza di una determinata patologia.
Grazie ai progressi tecnologici in materia di sequenziamento, la mole di dati genetici a disposizione è aumentata drasticamente, consentendo da un lato lo studio di varianti genetiche anche a bassissime frequenze, ma determinando dall’altro una richiesta di potere computazionale enorme e proibitivi tempi di elaborazione.
In questo contesto, Nomica propone un’accelerazione su FPGA dell’”Hidden Markov Model” alla base dell’algoritmo di variant calling. L’obiettivo è consentire un’interpretazione più veloce dei dati genetici, che costituiscono la base per ulteriori analisi cliniche nella previsione di malattie, valutazione delle prestazioni di farmaci etc.
Facebook: https://www.facebook.com/HUGenomics/
Letizia Clementi: studente triennale in Ingegneria Biomedica;
Matteo Crespi: studente triennale in Ingegneria Biomedica;
Claudio Scandella: studente magistrale in Ingegneria Informatica.
La farmacogenomica è lo studio del ruolo del genoma nella risposta dei singoli pazienti ai trattamenti farmacologici a loro somministrati. La comprensione della correlazione tra specifiche variazioni di DNA e i diversi effetti di una singola terapia su diversi individui apre la strada alla possibilità di elaborare trattamenti farmacologici ad hoc per i singoli pazienti. Questo approccio è chiamato anche “medicina personalizzata” e trova la sua principale applicazione nel trattamento del cancro e delle malattie croniche.
Per fare ciò è necessaria una profonda comprensione delle variazioni di DNA, parallelamente alla capacità di individuarle. Esistono numerose variazioni coinvolte nel metabolismo di farmaci, ma è stato osservato che le “Copy Number Variations” (CNV) siano le più rilevanti in questo ambito, per questa ragione è su di esse che noi concentriamo la nostra attenzione.
Al momento sono disponibili diversi software per l’identificazione di CNV. Tuttavia, sussistono numerose problematiche: in particolare, la grande quantità di dati che necessitano di essere analizzati e il tempo che ciò richiede rendono attualmente impossibile l’applicazione in pratica clinica. ResCUE propone quindi un sistema basato su FPGA che possa ridurre le tempistiche di individuazione di CNV.
Facebook: https://www.facebook.com/rescueatNECST/
YouTube: https://www.youtube.com/watch?v=wSd2W7p6law&list=PLewc2qlpcOuc2fBx9wVdmXHZav1UOt5yl
ROSA (Roofline OpenCL SDAccel)
Francesco Bertelli: studente magistrale in Ingegneria Informatica;
Enrico Migliorini: studente magistrale in Ingegneria Informatica.
Conoscere quali siano le prestazioni che una applicazione scritta potrà sostenere per essere eseguita su CPU o GPU (se implementata su FPGA) è un task tanto importante quanto difficile; lo stesso vale per l’ottimizzazione automatica di applicazioni che si devono implementare su FPGA.
La possibilità di avere entrambe queste cose presenti in un prodotto software apposito sarebbe un grande valore per innumerevoli progettisti e sviluppatori.
In questo senso, il progetto ROSA si propone proprio di realizzare una piattaforma di questo tipo: integrata, innovativa e che permetta in modo automatico di valutare le prestazioni di un’applicazione scritta in linguaggio OpenCL (se implementata su FPGA), utilizzando il modello Roofline dell’Università di Berkeley (CA) per la stima delle performance ed appoggiandosi al tool SDAccel prodotto Xilinx. Consente anche, eventualmente, di tradurre ed ottimizzare automaticamente l’applicazione stessa in un formato proprio per FPGA.
Facebook: https://www.facebook.com/ROSAatNECST/
SeNSE (Signal aNalysis of Synergies via sEmg)
Noemi Beretta: studente triennale in Ingegneria Biomedica;
Elisabetta Besana: studente triennale in Ingegneria Biomedica;
Giuseppe Franco: studente triennale in Ingegneria Biomedica.
Il progetto SeNSE ha come obiettivo la realizzazione di una protesi stampata 3D, leggera, a basso costo, controllata con il segnale elettromiografico e che permetta libertà di movimento e di essere riparabile e aggiornabile, sia a livello di hardware che a livello di componenti meccaniche. Per riuscire a garantire un’alta funzionalità alla protesi è stato sfruttato un algoritmo per l’analisi del segnale che prende il nome di “Non-Negative Matrix Factorization”. L’NMF è un algoritmo di fattorizzazione, utilizzato per la scomposizione del segnale elettromiografico in due componenti: una tempo invariante (data dalle sinergie muscolari) e una tempo variante (il coefficiente di attivazione temporale dei muscoli). Per il riconoscimento del movimento il classificatore utilizzato è il “Support Vector Machine”.
In particolare, si sfrutta la componente tempo invariante del segnale per identificare il movimento. Dopo il training del classificatore, eseguito su Matlab, i parametri estratti vengono utilizzati per la fase di predizione, che, così come l’intero algoritmo dell’NMF, è implementata sulla board PYNQ-Z1.
Grazie alla parallelizzazione degli algoritmi, implementati su logica riprogrammabile, si è riuscito ad ottenere un tempo totale per l’analisi e la classificazione del segnale inferiore ai 10 ms, con un fattore di accuratezza del 99% circa.
Facebook: https://www.facebook.com/SenseNecst/
Twitter: https://twitter.com/SeNSEatNECST
YouTube: https://www.youtube.com/watch?v=OG_3C9JgdnU&list=PLewc2qlpcOudnEsZVjLJIk2imAXiA1TdD
tReeSearch
Davide Sampietro: studente magistrale in Ingegneria Informatica;
Gabriele Termignone: studente magistrale in Ingegneria Informatica.
La finalità del progetto tReeSearch è accelerare in hardware lo “string matching”, ovvero la ricerca di pattern all’interno di un testo più ampio. Nonostante la generalità del problema, lo scenario di riferimento è quello della genomica, in virtù delle grandi sfide che ancora oggi pone in termini di volume di dati a disposizione. Studiando i carichi di lavoro in tale contesto, è stato sviluppato un approccio ibrido tra HW e SW che scali bene all’aumentare dei genomi da analizzare: partendo dal set di pattern, vengono generate in software delle tabelle di matching che vengono impiegate per processare in hardware i testi, come semplici flussi di dati. Tale soluzione consente di diminuire drasticamente le risorse richieste per produrre i risultati, sia per il tempo necessario che per l’utilizzo di memoria. I punti di forza dell’algoritmo scelto sono prevalentemente due: l’implementazione HW è indipendente dai pattern di ricercare e la struttura del set può variare in maniera flessibile, purché il numero totale di caratteri da ricercare sia al di sotto di una soglia prefissata.
Facebook: https://www.facebook.com/tReeSearchNECST/
Twitter: https://twitter.com/tReeSearchNECST
WhAlly
Riccardo Cavadini: studente triennale in Ingegneria Biomedica;
Guido Walter Di Donato: studente triennale in Ingegneria Biomedica;
Jessica Leoni: studente triennale in Ingegneria Biomedica.
Whally è un progetto che nasce con l’obiettivo di velocizzare la ricerca di piccole sequenze di basi azotate, denominate “reads”, all’interno di interi genomi, costituendo uno step fondamentale nell’ambito, ad esempio, della medicina personalizzata. Offre un modo efficiente per salvare in modo compresso, ma facilmente accessibile, i genomi di riferimento stessi. Il fine ultimo del progetto è quello di essere integrato in una piattaforma hardware e software, che potrà assistere medici e laboratori di ricerca nell’analisi e nello studio di DNA e delle relative proteine sintetizzate.
Facebook: facebook.com/WHALLYatNECST
Twitter: twitter.com/WHALLYatNECST
YouTube: https://www.youtube.com/playlist?list=PLewc2qlpcOufju8yEmQbjgdnGBRdgTuNK