9 resultados para LDPC, CUDA, GPGPU, computing, GPU, DVB, S2, SDR

em AMS Tesi di Laurea - Alm@DL - Università di Bologna


Relevância:

100.00% 100.00%

Publicador:

Resumo:

In accordo con la filosofia della Software Defined Radio è stato progettato un decoder LDPC software che utilizza una GPU per ottenere prestazioni migliori. Il lavoro, che comprende anche l'encoder e un simulatore di canale AWGN, può essere utilizzato sia per eseguire simulazioni che per elaborare dati in real time. Come caso di studio si sono considerati i codici LDPC dello standard DVB-S2.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Il presente lavoro di tesi, svolto presso i laboratori dell'X-ray Imaging Group del Dipartimento di Fisica e Astronomia dell'Università di Bologna e all'interno del progetto della V Commissione Scientifica Nazionale dell'INFN, COSA (Computing on SoC Architectures), ha come obiettivo il porting e l’analisi di un codice di ricostruzione tomografica su architetture GPU installate su System-On-Chip low-power, al fine di sviluppare un metodo portatile, economico e relativamente veloce. Dall'analisi computazionale sono state sviluppate tre diverse versioni del porting in CUDA C: nella prima ci si è limitati a trasporre la parte più onerosa del calcolo sulla scheda grafica, nella seconda si sfrutta la velocità del calcolo matriciale propria del coprocessore (facendo coincidere ogni pixel con una singola unità di calcolo parallelo), mentre la terza è un miglioramento della precedente versione ottimizzata ulteriormente. La terza versione è quella definitiva scelta perché è la più performante sia dal punto di vista del tempo di ricostruzione della singola slice sia a livello di risparmio energetico. Il porting sviluppato è stato confrontato con altre due parallelizzazioni in OpenMP ed MPI. Si è studiato quindi, sia su cluster HPC, sia su cluster SoC low-power (utilizzando in particolare la scheda quad-core Tegra K1), l’efficienza di ogni paradigma in funzione della velocità di calcolo e dell’energia impiegata. La soluzione da noi proposta prevede la combinazione del porting in OpenMP e di quello in CUDA C. Tre core CPU vengono riservati per l'esecuzione del codice in OpenMP, il quarto per gestire la GPU usando il porting in CUDA C. Questa doppia parallelizzazione ha la massima efficienza in funzione della potenza e dell’energia, mentre il cluster HPC ha la massima efficienza in velocità di calcolo. Il metodo proposto quindi permetterebbe di sfruttare quasi completamente le potenzialità della CPU e GPU con un costo molto contenuto. Una possibile ottimizzazione futura potrebbe prevedere la ricostruzione di due slice contemporaneamente sulla GPU, raddoppiando circa la velocità totale e sfruttando al meglio l’hardware. Questo studio ha dato risultati molto soddisfacenti, infatti, è possibile con solo tre schede TK1 eguagliare e forse a superare, in seguito, la potenza di calcolo di un server tradizionale con il vantaggio aggiunto di avere un sistema portatile, a basso consumo e costo. Questa ricerca si va a porre nell’ambito del computing come uno tra i primi studi effettivi su architetture SoC low-power e sul loro impiego in ambito scientifico, con risultati molto promettenti.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

La tesi descrive alcune applicazioni in ambito satellitare delle tecniche di radio cognitiva. In particolare si analizza la loro possibile implementazione in uno scenario dual-satellite in banda Ka nel quale l'utente primario si avvale dello standard DVB-S2 per la trasmissione. A seguire la verifica delle performance degli algoritmi di spectum sensing per la detection del segnale primario attraverso simulazioni in ambiente matlab con curve ROC e curve di probabilità di detection in funzione del rapporto segnale rumore.

Relevância:

100.00% 100.00%

Publicador:

Resumo:

Uno dei principali settori di studio nell’ambito della visione artificiale riguarda lo sviluppo e la continua ricerca di tecniche e metodologie atte alla ricostruzione di ambienti 3D. Una di queste è il Kinect Fusion, la quale utilizza il dispositivo Kinect per catturare ed elaborare informazioni provenienti da mappe di profondità relative a una particolare scena, per creare un modello 3D dell’ambiente individuato dal sensore. Il funzionamento generale del sistema “Kinect Fusion” consiste nella ricostruzione di superfici dense attraverso l’integrazione delle informazioni di profondità dei vari frame all’interno di un cubo virtuale, che a sua volta viene partizionato in piccoli volumi denominati voxel, e che rappresenta il volume della scena che si intende ricostruire. Per ognuno di tali voxel viene memorizzata la distanza (TSDF) rispetto alla superficie più vicina. Durante lo svolgimento di questo lavoro di tesi ci si è concentrati innanzitutto nell’analisi dell’algoritmo Voxel Hashing, una tecnica che mira a rendere l'algoritmo Kinect Fusion scalabile, attraverso una migliore gestione della struttura dati dei voxel allocando questi ultimi all'interno di una tabella di hash solo se strettamente necessario (TSDF inferiore a una soglia). In una prima fase del progetto si è quindi studiato in dettaglio il funzionamento di suddetta tecnica, fino a giungere alla fase della sua implementazione all’interno di un framework di ricostruzione 3D, basato su Kinect Fusion; si è quindi reso il sistema realizzato più robusto tramite l’applicazione di diverse migliorie. In una fase successiva sono stati effettuati test quantitativi e qualitativi per valutarne l'efficienza e la robustezza. Nella parte finale del progetto sono stati delineati i possibili sviluppi di future applicazioni.

Relevância:

60.00% 60.00%

Publicador:

Resumo:

Microprocessori basati su singolo processore (CPU), hanno visto una rapida crescita di performances ed un abbattimento dei costi per circa venti anni. Questi microprocessori hanno portato una potenza di calcolo nell’ordine del GFLOPS (Giga Floating Point Operation per Second) sui PC Desktop e centinaia di GFLOPS su clusters di server. Questa ascesa ha portato nuove funzionalità nei programmi, migliori interfacce utente e tanti altri vantaggi. Tuttavia questa crescita ha subito un brusco rallentamento nel 2003 a causa di consumi energetici sempre più elevati e problemi di dissipazione termica, che hanno impedito incrementi di frequenza di clock. I limiti fisici del silicio erano sempre più vicini. Per ovviare al problema i produttori di CPU (Central Processing Unit) hanno iniziato a progettare microprocessori multicore, scelta che ha avuto un impatto notevole sulla comunità degli sviluppatori, abituati a considerare il software come una serie di comandi sequenziali. Quindi i programmi che avevano sempre giovato di miglioramenti di prestazioni ad ogni nuova generazione di CPU, non hanno avuto incrementi di performance, in quanto essendo eseguiti su un solo core, non beneficiavano dell’intera potenza della CPU. Per sfruttare appieno la potenza delle nuove CPU la programmazione concorrente, precedentemente utilizzata solo su sistemi costosi o supercomputers, è diventata una pratica sempre più utilizzata dagli sviluppatori. Allo stesso tempo, l’industria videoludica ha conquistato una fetta di mercato notevole: solo nel 2013 verranno spesi quasi 100 miliardi di dollari fra hardware e software dedicati al gaming. Le software houses impegnate nello sviluppo di videogames, per rendere i loro titoli più accattivanti, puntano su motori grafici sempre più potenti e spesso scarsamente ottimizzati, rendendoli estremamente esosi in termini di performance. Per questo motivo i produttori di GPU (Graphic Processing Unit), specialmente nell’ultimo decennio, hanno dato vita ad una vera e propria rincorsa alle performances che li ha portati ad ottenere dei prodotti con capacità di calcolo vertiginose. Ma al contrario delle CPU che agli inizi del 2000 intrapresero la strada del multicore per continuare a favorire programmi sequenziali, le GPU sono diventate manycore, ovvero con centinaia e centinaia di piccoli cores che eseguono calcoli in parallelo. Questa immensa capacità di calcolo può essere utilizzata in altri campi applicativi? La risposta è si e l’obiettivo di questa tesi è proprio quello di constatare allo stato attuale, in che modo e con quale efficienza pùo un software generico, avvalersi dell’utilizzo della GPU invece della CPU.

Relevância:

40.00% 40.00%

Publicador:

Resumo:

The efficient emulation of a many-core architecture is a challenging task, each core could be emulated through a dedicated thread and such threads would be interleaved on an either single-core or a multi-core processor. The high number of context switches will results in an unacceptable performance. To support this kind of application, the GPU computational power is exploited in order to schedule the emulation threads on the GPU cores. This presents a non trivial divergence issue, since GPU computational power is offered through SIMD processing elements, that are forced to synchronously execute the same instruction on different memory portions. Thus, a new emulation technique is introduced in order to overcome this limitation: instead of providing a routine for each ISA opcode, the emulator mimics the behavior of the Micro Architecture level, here instructions are date that a unique routine takes as input. Our new technique has been implemented and compared with the classic emulation approach, in order to investigate the chance of a hybrid solution.

Relevância:

30.00% 30.00%

Publicador:

Resumo:

The aim of my thesis is to parallelize the Weighting Histogram Analysis Method (WHAM), which is a popular algorithm used to calculate the Free Energy of a molucular system in Molecular Dynamics simulations. WHAM works in post processing in cooperation with another algorithm called Umbrella Sampling. Umbrella Sampling has the purpose to add a biasing in the potential energy of the system in order to force the system to sample a specific region in the configurational space. Several N independent simulations are performed in order to sample all the region of interest. Subsequently, the WHAM algorithm is used to estimate the original system energy starting from the N atomic trajectories. The parallelization of WHAM has been performed through CUDA, a language that allows to work in GPUs of NVIDIA graphic cards, which have a parallel achitecture. The parallel implementation may sensibly speed up the WHAM execution compared to previous serial CPU imlementations. However, the WHAM CPU code presents some temporal criticalities to very high numbers of interactions. The algorithm has been written in C++ and executed in UNIX systems provided with NVIDIA graphic cards. The results were satisfying obtaining an increase of performances when the model was executed on graphics cards with compute capability greater. Nonetheless, the GPUs used to test the algorithm is quite old and not designated for scientific calculations. It is likely that a further performance increase will be obtained if the algorithm would be executed in clusters of GPU at high level of computational efficiency. The thesis is organized in the following way: I will first describe the mathematical formulation of Umbrella Sampling and WHAM algorithm with their apllications in the study of ionic channels and in Molecular Docking (Chapter 1); then, I will present the CUDA architectures used to implement the model (Chapter 2); and finally, the results obtained on model systems will be presented (Chapter 3).

Relevância:

30.00% 30.00%

Publicador:

Resumo:

Il segnale elettrico si propaga nel tessuto cardiaco attraverso gap-junctions che si trovano tra i miociti cardiaci e in ciascuno di essi si avvia un processo chiamato potenziale d'azione (PA). In questa tesi prenderò in considerazione il modello Luo-Rudy 1991 e il difetto oggetto di studio sono le Early Afterdepolarizations (EADs). Si analizzerà la propagazione del potenziale d’azione in un cavo di 300 cellule. Dopo alcune simulazioni preliminari è emersa l’utilità di trovare una soluzione che permettesse di ridurre i tempi di calcolo, il modello è stato quindi implementato in CUDA. Il lavoro è stato sviluppato nei seguenti step: 1) l’impiego dell’ambiente di calcolo MATLAB per implementare il modello, descrivendo ogni cellula attraverso il modello Luo-Rudy 1991 e l’interazione elettrica inter-cellulare, considerando un cavo di 300 cellule; 2) individuazione dei parametri che, adeguatamente modificati, sono in grado di indurre EADs a livello single cell; 3) implementazione del modello in CUDA, creando uno strumento che potrà essere utilizzato per aumentare notevolmente il numero delle simulazioni nell’unità di tempo; 4) messa a punto di un criterio per valutare in modo conciso la bontà (safety factor) della relazione source-sink. L’utilità di un simile criterio è quella di valutare, sia nel caso di propagazione di AP che in quello di eventuale propagazione di EADs, la propensione alla propagazione in un tessuto. Il primo capitolo descriverà il potenziale d’azione, il modello usato e la teoria del cavo. Il secondo capitolo discuterà l’implementazione del modello usato, descriverà CUDA e come il modello sia stato implementato. Il terzo capitolo riguarderà i primi risultati ottenuti dalle simulazioni e come la variazione dei parametri influisce sulla forma delle EADs. L’ultimo capitolo approfondirà i requisiti necessari per far avvenire una propagazione in un cavo.