Optimización de funciones de DSP para procesador con instrucciones SIMD
Loading...
Download
Official URL
Full text at PDC
Publication date
2008
Authors
Advisors (or tutors)
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citation
Abstract
CoolFlux es un DSP de ultra bajo consumo desarrollado por NXP que
se utiliza en reproductores de audio portátiles, audífonos o para el
procesamiento con fines biomédicos. Para los usos anteriormente
mencionados, el consumo tiene una gran importancia, por eso, en una
nueva revisión de este DSP, denominada CoolFlux Complex, se han
incorporado instrucciones SIMD. Este nuevo tipo de instrucciones
permiten aplicar una operación sobre dos datos al mismo tiempo, para
hacerlo, CoolFlux Complex, es capaz almacenar en una palabra de
memoria dos datos.
En este proyecto se han optimizado algunas de las funciones típicas
de los DSP mediante la utilización de instrucciones SIMD. Las
funciones optimizadas incluyen filtros FIR, filtros Biquad, la
transformada inversa discreta del coseno, así como varias operaciones
aritméticas básicas con vectores. El objetivo del proyecto es el de
evaluar el impacto en el rendimiento al utilizar el nuevo conjunto de
instrucciones. Un aumento del rendimiento del DSP implicaría un
menor consumo, al necesitar menos tiempo para procesar la misma
cantidad de datos. Esta optimización se ha llevado a cabo sobre la
mathlib de CoolFlux Complex, escrita en C. Ninguna de las funciones
que contiene la mathlib utiliza instrucciones SIMD así que las
funciones de partida están escritas para un tipo de datos llamado fix
(datos en punto fijo). En el caso de la transformada inversa discreta del
coseno, no existía ninguna función escrita para CoolFlux Complex así
que hubo que escribir una función para el tipo de datos fix para poder
hacer comparaciones de rendimiento con la versión que utiliza
instrucciones SIMD.
[ABSTRACT] CoolFlux is an ultra low power consumption DSP developed by NXP
used in portable audio players, hearing devices or biomedical
processing. For that kind of uses, consumption is very important, for
that reason in a new revision of this DSP, called CoolFlux Complex,
SIMD instructions have been added. This new set of instructions allow
to operate with two values at the same time, to do so, CoolFlux
Complex is capable of storing two values into one single memory word.
In this project some typical DSP functions has been optimized by
using SIMD instructions. The optimized functions include FIR filters,
filters biquad, inverse discrete cosine transform, as well as some basic
vector operations. The goal of this project is to evaluate the impact on
performance when using the new set of instructions. An increase in the
DSP performance implies minor power consumption as require less
time to process the same amount of data. This optimization has been
done on the CoolFlux Complex mathlib, written in C. None of the
functions contained in the mathlib uses SIMD instructions, so
optimized functions are based on the old functions written using fix
data type (fixed point data). In the case of inverse discrete cosine
transform, there was not any function written for CoolFlux Complex, so
a function that uses fix data type was needed and writen in order to
make performance comparisons beetwen the version that uses fix data
type and the one that uses SIMD instructions.
Description
Trabajo de clase de la asignatura Sistemas Informáticos (Facultad de Informática, Curso 2007-2008)