The search for increment in computing power is the natural expression of the technological evolution. Accordingly, the hardware and software manufacturers are constantly busy introducing new systems realizing progressive improvements, considered that the parallel execution is the most established ambit to enhance the performances. The hardware platforms were at first improved under a single-core profile. Then, the idea was to replicate the single-core into a multiple core architecture, creating the so-called multi-core and many-core processors, where all the computation units work in parallel. In the meantime, the software methodologies need to adapt and improve, in order to exploit the made available resources. Specific framework, made of libraries, new extended programming languages and relative compilers, are born, offering an hardware-independent interface to the programmer. Among the most utilized framework there is OpenCL, ideated for writing programs across heterogeneous and parallel platforms. Made of OpenCL C, an extension of C99, and numerous APIs for control the platforms, OpenCL is a reference standard for parallel programming and the general-purpose programming on GPUs concept. The STHORM architecture, formerly named Platform 2012, conceived by STMicroelectronics, is an actual example of many-core processor. Composed of 4 clusters grouping 16 processing element cores, this device is used in embedded systems, DSPs and in a high-parallel applications. In this Master Thesis work, the realization of an OpenCL runtime library targeting the STHORM platform, implementing the basic functionalities of the considered framework, will be exposed. In order to use the runtime, the OpenCRun project, an OpenCL host runtime library implemented by the Politecnico di Milano, will be extended obtaining an interface completing the OpenCL system, coupling an host part to a device part. Finally, the OpenCL functionalities of the runtime will be illustrated followed by the analysis of the performances in typical test cases.

La ricerca dell'incremento della potenza di calcolo è la naturale espressione dell'evoluzione tecnologica. Di conseguenza, i produttori di hardware e di software sono costantemente impegnati nell'introdurre nuovi sistemi per realizzare progressivi miglioramenti, considerando che il concetto di esecuzione parallela è sicuramente l'ambito più consolidato per aumentare le prestazioni. Le piattaforme hardware sono state dapprima migliorate sotto il profilo single-core. Successivamente, si è pensato di replicare il core singolo componendo architetture denominate multi-core e many-core, dove le singole unità di esecuzione lavorano in parallelo. Nel contempo, le metodologie software devono adattarsi e migliorare, per permettere di sfruttare le risorse messe a disposizione. Specifici framework, composti da librerie, nuovi linguaggi di programmazione estesi e relativi compilatori, sono nati, cercando di mantenere l'interfaccia verso il programmatore indipendente dall'hardware sottostante supportato. Tra i framework più utilizzati rientra OpenCL, ideato per programmare piattaforme eterogenee e per computazione parallela. Formato da OpenCL C, linguaggio esteso dal C99, e da numerose APIs per controllare le piattaforme, OpenCL è uno degli standard di riferimento per la programmazione parallela ed il concetto di general-purpose computing on GPUs. L'architettura STHORM, precedentemente denominata Platform 2012, concepita da STMicroelectronics, è un esempio concreto di processore many-core. Composto da 4 cluster di 16 core di esecuzione, questo device è utilizzato in sistemi embedded, DSPs e in applicazioni ad alto livello di parallelismo. In questo lavoro di Tesi Magistrale verrà esposta la realizzazione di una libreria runtime OpenCL dedicata all'architettura STHORM, implementando le funzionalità base. Per utilizzare tale runtime, il progetto OpenCRun, una libreria host runtime per OpenCL implementata dal Politecnico di Milano, sarà esteso permettendone l'interfacciamento e completando il sistema OpenCL, accoppiando una parte host ad una device. Infine, saranno illustrate le funzionalità OpenCL del runtime e successivamente ne saranno analizzate le prestazioni in casi tipici.

Design and implementation of an OpenCL runtime for the STHORM platform

BONACINA, MARCO ALESSANDRO
2013/2014

Abstract

The search for increment in computing power is the natural expression of the technological evolution. Accordingly, the hardware and software manufacturers are constantly busy introducing new systems realizing progressive improvements, considered that the parallel execution is the most established ambit to enhance the performances. The hardware platforms were at first improved under a single-core profile. Then, the idea was to replicate the single-core into a multiple core architecture, creating the so-called multi-core and many-core processors, where all the computation units work in parallel. In the meantime, the software methodologies need to adapt and improve, in order to exploit the made available resources. Specific framework, made of libraries, new extended programming languages and relative compilers, are born, offering an hardware-independent interface to the programmer. Among the most utilized framework there is OpenCL, ideated for writing programs across heterogeneous and parallel platforms. Made of OpenCL C, an extension of C99, and numerous APIs for control the platforms, OpenCL is a reference standard for parallel programming and the general-purpose programming on GPUs concept. The STHORM architecture, formerly named Platform 2012, conceived by STMicroelectronics, is an actual example of many-core processor. Composed of 4 clusters grouping 16 processing element cores, this device is used in embedded systems, DSPs and in a high-parallel applications. In this Master Thesis work, the realization of an OpenCL runtime library targeting the STHORM platform, implementing the basic functionalities of the considered framework, will be exposed. In order to use the runtime, the OpenCRun project, an OpenCL host runtime library implemented by the Politecnico di Milano, will be extended obtaining an interface completing the OpenCL system, coupling an host part to a device part. Finally, the OpenCL functionalities of the runtime will be illustrated followed by the analysis of the performances in typical test cases.
SCANDALE, MICHELE
ING - Scuola di Ingegneria Industriale e dell'Informazione
29-apr-2015
2013/2014
La ricerca dell'incremento della potenza di calcolo è la naturale espressione dell'evoluzione tecnologica. Di conseguenza, i produttori di hardware e di software sono costantemente impegnati nell'introdurre nuovi sistemi per realizzare progressivi miglioramenti, considerando che il concetto di esecuzione parallela è sicuramente l'ambito più consolidato per aumentare le prestazioni. Le piattaforme hardware sono state dapprima migliorate sotto il profilo single-core. Successivamente, si è pensato di replicare il core singolo componendo architetture denominate multi-core e many-core, dove le singole unità di esecuzione lavorano in parallelo. Nel contempo, le metodologie software devono adattarsi e migliorare, per permettere di sfruttare le risorse messe a disposizione. Specifici framework, composti da librerie, nuovi linguaggi di programmazione estesi e relativi compilatori, sono nati, cercando di mantenere l'interfaccia verso il programmatore indipendente dall'hardware sottostante supportato. Tra i framework più utilizzati rientra OpenCL, ideato per programmare piattaforme eterogenee e per computazione parallela. Formato da OpenCL C, linguaggio esteso dal C99, e da numerose APIs per controllare le piattaforme, OpenCL è uno degli standard di riferimento per la programmazione parallela ed il concetto di general-purpose computing on GPUs. L'architettura STHORM, precedentemente denominata Platform 2012, concepita da STMicroelectronics, è un esempio concreto di processore many-core. Composto da 4 cluster di 16 core di esecuzione, questo device è utilizzato in sistemi embedded, DSPs e in applicazioni ad alto livello di parallelismo. In questo lavoro di Tesi Magistrale verrà esposta la realizzazione di una libreria runtime OpenCL dedicata all'architettura STHORM, implementando le funzionalità base. Per utilizzare tale runtime, il progetto OpenCRun, una libreria host runtime per OpenCL implementata dal Politecnico di Milano, sarà esteso permettendone l'interfacciamento e completando il sistema OpenCL, accoppiando una parte host ad una device. Infine, saranno illustrate le funzionalità OpenCL del runtime e successivamente ne saranno analizzate le prestazioni in casi tipici.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2015_04_Bonacina.PDF

accessibile in internet solo dagli utenti autorizzati

Descrizione: Testo della Tesi
Dimensione 4.35 MB
Formato Adobe PDF
4.35 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/107101