Abstract:
|
This Bachelor's Degree Final Project aims to analyze and implement another way to process digital signals, improving their performance and speed of execution. DSP and FPGA are the most commonly used elements for any kind of signal processing. This project focuses on the use of graphics cards (GPU) to exploit to the maximum the parallelism that is available today. Current processors (CPUs) have a few cores and work sequentially which can be very time consuming if large amounts of data are being processed. The advantage of GPUs is that they have thousands of cores, which, although they are less powerful individually, if they work simultaneously they can offer a remarkable acceleration compared to the CPU. The Least Mean Square algorithm, used in adaptive filters, is the one chosen to perform the parallelization. Its computational complexity is ideal for this optimization, because, as we have to find the adaptation coefficients through a large number of iterations, we will be able to perform all these multiplications at the same time with CUDA C, which is the language used in parallel computing for Nvidia graphics cards. |
Abstract:
|
Este Trabajo de Final de Grado pretende analizar y poner en práctica otra
forma de procesar señales digitales, mejorando su rendimiento y velocidad de
ejecución.
Los DSP y FPGA son los elementos más usados en la actualidad para
cualquier tipo de procesado de señales. Este proyecto se centra en el uso de
las tarjetas gráficas (GPU) para explotar al máximo el paralelismo del que se
dispone hoy en día.
Los procesadores actuales (CPU) cuentan con unos pocos núcleos y trabajan
secuencialmente lo que puede comportar elevado consumo de tiempo si se
está procesando cantidades muy grandes de datos.
La ventaja de las GPU es que disponen de miles de núcleos, que, pese a ser
menos potentes individualmente, si trabajan de forma simultánea pueden
ofrecer una notable aceleración respecto a la CPU.
El algoritmo Least Mean Square, usado en filtros adaptativos, es el escogido
para llevar a cabo la paralelización.
Su complejidad computacional es ideal para esta optimización, pues, como
hay que encontrar los coeficientes de adaptación mediante un gran número de
iteraciones, vamos a poder realizar todas estas multiplicaciones a la vez con
CUDA C, que es el lenguaje que se utiliza en computación paralela para
tarjetas gráficas de la marca Nvidia. |