Xilinx & Google: due tappe imperdibili per il NGC17
Se la mattina dell’otto giugno l’appuntamento per il NECSTLab è stato al Campus di Facebook, nel pomeriggio le mete sono state ben due: Xilinx e Google.
Fondata nel 1984 da Ross Freeman e Bernie Vonderschmitt, due ingegneri specializzati nella progettazione dei circuiti integrati, ex dipendenti della Zilog, Xilinx è conosciuta principalmente per la produzione di dispositivi logici programmabili, come ad esempio gli FPGA. E’ inoltre considerata tra le aziende pionieristiche al mondo nel campo dei semiconduttori, grazie al modello fabless.
Con oltre 3500 brevetti, Xilinx continua ad essere all’avanguardia ed innovativa nel campo della nuove tecnologia programmabile, mettendo sempre i clienti al primo posto. I loro prodotti possono essere utilizzati in diversi campi applicativi, tra cui l’Embedded Vision, Industrial IoT ed il Cloud Computing.
Xilinx e Google
“Oggi, qui da Xilinx un bel po’ di nostri studenti faranno delle “pillole” o pitch di presentazioni dei nostri lavori, più brevi o più lunghi, a seconda dello stato attuale del lavoro” spiega Alberto Scolari, dottorando al Politecnico di Milano “Xilinx è per noi un po’ la nostra casa, è la realtà che crea la tecnologia su cui noi lavoriamo tutti i giorni! E’ per noi un partner di ricerca molto importante ed essere attivamente coinvolti nel loro university program è per noi fondamentale anche da un punto di vista “logistico”. Loro creano la tecnologia, noi la studiamo, la usiamo e cerchiamo di creare cose nuove attraverso la nostra ricerca.”.
Un esempio di quanto detto da Alberto è il lavoro fatto sulla nuova piattaforma PYNQ di Xilinx su cui il NECSTLab si è e si sta concentrato attivamente.
Il tutto iniziò grazie alla internship di Giuseppe Natale, ad oggi dottorando al secondo anno insieme ad Alberto, nel gruppo di architetture del Politecnico di Milano, la collaborazione è poi evoluta attraverso due Xilinx PYNQ Hackathon, di cui anche CUE aveva scritto a riguardo.
Ad oggi il NECSTLab stesso è coinvolto in prima linea nello sviluppo di questa piattaforma.
Dopo una introduzione da parte del coordinatore del NECSTLab, Marco Santambrogio “NECST at a Glance and the DReAMS Research Line” è stata la volta degli studenti, con l’inizio dei loro talk a cui molti dell’azienda hanno partecipato, ascoltando ed interagendo direttamente con loro con grande interesse.
Il primo talk è stato ad opera di Marco Rabozzi, dottorando in Architettura dei Sistemi al PoliMi, con il suo “CAOS: A CAD Framework for FPGA-Based Systems”. A seguire, due talk di Emanuele del Sozzo e Lorenzo di Tucci, rispettivamente “ Deep Learning Initiative @ NECSTLab” e “FPGA-enhanced Bioinformatics @ NECSTLab”.
L’obiettivo di questi talk era quello di fornire a Xilinx una visione su quelli che sono i lavori del NECSTLab all’interno della Research Line di DReAMS, che vede gli FPGA al centro di questa area. Il NECSTLab collabora ormai da anni con Xilinx, aspetto chiave dimostrato anche nei talk, pensati per aggiornare Xilinx sullo stato della ricerca all’interno del laboratorio per costruire basi forti per lavori comuni, in futuro.
Terminata questa prima sessione, il gruppo si è diviso in due: Marco Santambrogio, con Luca Cerina, Lorenzo Di Tucci e Anna Maria Nestorov sono stati intervistati per dare la loro testimonianza per il programma di Xilinx demonizzato “Powered by Xilinx”.
In parallelo, il resto del gruppo ha avuto una sessione di pitch, brevi interventi di circa 5 minuti in cui gli studenti hanno presentato i propri progetti. Il primo a parlare è stato Enrico Reggiani, studente magistrale in ingegneria elettronica al PoliMi, che ha presentato il suo lavoro “Pearson Correlation Coefficient acceleration for modeling and mapping of neural interconnections” a cui è seguito il pitch di Chiara Crippa, studentessa magistrale in ingegneria biomedica, la quale ha presentato il suo progetto di tesi magistrale “NOMICA”.
“ProFAX: a hardware acceleration of a protein folding algorithm” è invece l’argomento trattato dal pitch di Giulia Guidi, studentessa magistrale in ingegneria biomedical al PoliMi e visitor student alla Berkeley University, progetto di cui già precedentemente il NECSTLab aveva reso partecipi Biomedical.
A seguire, “CNN Dataflow implementation on FPGAs” di Marco Bacis, studente magistrale in ingegneria informatica al PoliMi, “Fast algorithms for quantised convolutional neural networks” di Alessandro Pappalardo, “Exploiting FPGAs from Higher Level Languages” e “numPYNQ: An accelerate version of NumPy for PYNQ platform” entrambi di Luca Stornaiuolo e “Roofline Model for FPGA: A tool for Performance Analysis and Application Optimization” di Francesco Bertelli, tutti studenti magistrali in ingegneria informatica al PoliMi.
A chiudere la sessione, il pitch “TiReX: a Tiled Regular eXpression matching architecture” in cui Davide Conficconi e Alessandro Comodi, studenti di laurea magistrale in ingegneria informatica, hanno presentato TiReX (Tiled regular expression matching architecture), un’architettura Hardware riconfigurabile in grado di aumentare le prestazioni in Regular Expressions matching. TiReX trova possibili applicazioni nel DNA Sequence Matching, nel filtraggio dei pacchetti e molte altre.
“Presentare in 5 minuti un lavoro caratterizzato da molti tecnicismi e riuscire a renderlo appetibile non è decisamente facile, quindi si, ero in tensione. Esporre il proprio lavoro ad un pubblico di ingegneri che di quegli argomenti praticamente “vivono” mette a dura prova, ma tutto sommato alla fine direi che è andata molto bene e spero di fare ancora meglio la prossima volta” spiega Davide Conficconi.
Lasciata la sede di Xilinx, il NECST Lab si è diretto verso la sede centrale di Google, azienda che praticamente tutti conosciamo. Google è il motore di ricerca più utilizzato al mondo in assoluto, così popolare da aver invaso anche il lessico di molte lingue, basti solo pensare al verbo “googlare”, utilizzato in molte lingue.
Il NECSTLab ha avuto la fortuna di avere tre guide particolari, Andrea Di Blas, George Kurian e Sachithra Hemachandra.
George e Sachithra sono amici dalla East Coast, ex colleghi di Marco ai tempi del MIT, e ora, rispettivamente, un ingegnere che collabora allo sviluppo delle Tensor Processing Unit (TPU), le architetture per il Machine Learning di Google, e un ingegnere nel team di Waymo, la divisione di Google che si occupa di macchine a guida autonoma.
Andrea, invece, è una conoscenza del NECSTLab e della NECST Group Conference di vecchia data. Andrea è la persona a cui i ragazzi del NECSTLab devono i primi passi all’interno di Oracle, dove lavorava prima di approdare a Google, dopo avere anche trascorso un periodo in Amazon.
Andrea è un concentrato di “Silincon Valley” allo stato puro! E’ un esperto di architetture di calcolatori, con un passato vissuto in diverse tra le più importanti aziende del settore. Oltre ad essere un apprezzatissimo ingegnere in Google, Andrea è anche docente a Stanford, dove tiene un corso sulle Architetture dei Calcolatori e, proprio per questa sua vicinanza al mondo accademico, è decisamente una tra le persone che non possono non essere incontrate durante una NGC!
Durante il tour di Google, abbiamo visitato il Googleplex (di cui inseriamo le foto qui sotto), ed è stato, come si suol dire, breve ma intenso.