scieee Science in your language
[Es] (orig)

Optimización de aplicaciones de procesado de señales digitales empleando como plataforma hardware NVIDIA Jetson TK1

Abstract

[EN] Tablets and smart phones are equipped nowadays with low power processor architectures such as the ARMv7 and the ARMv8 series. These processors integrate powerful SIMD units to exploit the intrinsic data-parallelism of most media and signal processing applications. In audio signal processing, there exist multiple applications that require the use of filtering operations such as equalizations or signal synthesizers, among others. Most of these applications can be executed today on mobile devices via efficient exploitation of computer resources such as CPU’s, GPU’s and CPU feature SIMD (simple-Instruction Multiple-Data) units. In this paper, we target the implementation of multi-channel filtering of audio signals on ARM architectures. To this end, three common audio filter structures are considered: FIR, IIRI and PIIR. In addition, an implementation has been developed in C of the algorithm Beamformer using libraries of high performance such as BLAS and LAPACK optimized (ATLAS), PLASMA and CUBLAS

Read accessible full text

Optimización de aplicaciones de procesado de señales digitales empleando como plataforma hardware NVIDIA Jetson TK1

Author: Alventosa Rueda, Francisco Javier
Publisher: Universitat Politècnica de València
Year: 2016
Source: https://riunet.upv.es/bitstream/10251/62633/1/Trabajo.pdf
Depa amen o de Sis emas
In o m´
a icos y Compu aci´
on
M´
ASTER EN COMPUTACI´
ON PARALELA Y DISTRIBUIDA
TESIS DE M´
ASTER
Op imizaci´
on de aplicaciones de p ocesado de
se˜
nales digi ales empleando como pla a o ma
ha dwa e NVIDIA Je son TK1
VALENCIA,A21 DE SEPTIEMBRE DE 2015
TESIS DE M´
ASTER PRESENTADA POR:
DIRIGIDA POR:
FRANCISCO J. ALVENTOSA RUEDA
PEDRO ALONSO JORD´
A
Resumen
Hoy en d´
ıa, las able as y los sma phones es ´
an equipados con p ocesado es de bajo consumo
ene g´
e ico, como las se ies de a qui ec u as ARM 7 y ARM 8. Es os p ocesado es ienen una unidad
de SIMD po en e, que pe mi en explo a el pa alelismo in ´
ınseco de los da os que ienen la mayo ia de
aplicaciones mul imedia y de p ocesamien o de la se˜
nal. En el p ocesamien o de la se˜
nal ac´
us ica, exis en
m´
ul iples aplicaciones que equie en el uso de ope aciones de il ado como son en e o os, las ecualiza-
ciones o los sin e izado es de se˜
nal. La mayo ´
ıa de es as aplicaciones se pueden ejecu a en disposi i os
m´
o iles, sin emba go, una co ec a ges i´
on de los di e en es ecu sos compu acionales CPU’s and GPU’s,
as´
ı como las unidades SIMD (Simple Ins uc ion - Mul iple Da a) que inco po an es os, se con ie e en
una a dua a ea pa a el p og amado . En es e documen o, hablamos sob e la ejecuci´
on e icien e de il-
ado mul i-canal de se˜
nales de audio. Con es e in, analizamos es es uc u as comunes de il ado de
audio: FIR, IIRI y PIIR. Adem´
as, se ha desa ollado una implemen aci´
on en C del algo i mo Beam o me ,
empleando lib e ´
ıas de al as p es aciones como el BLAS y LAPACK op imizado (ATLAS), el PLASMA y el
CUBLAS.
Palab as cla e
P ocesado es de bajo consumo, ARM 7, ARM Co ex-A15, in insics NEON, p ocesamien o de audio,
´
algeb a lineal densa, compu aci´
on de al o endimien o, Je son TK1.
Abs ac
Table s and sma phones a e equipped nowadays wi h low powe p ocesso a chi ec u es such as
he ARM 7 and he ARM 8 se ies. These p ocesso s in eg a e powe ul SIMD uni s o exploi he in in-
sic da a-pa allelism o mos media and signal p ocessing applica ions. In audio signal p ocessing, he e
exis mul iple applica ions ha equi e he use o il e ing ope a ions such as equaliza ions o signal
syn hesize s, among o he s. Mos o hese applica ions can be execu ed oday on mobile de ices ia e i-
cien exploi a ion o compu e esou ces such as CPU’s, GPU’s and CPU ea u e SIMD (simple-Ins uc ion
Mul iple-Da a) uni s. In his pape , we a ge he implemen a ion o mul i-channel il e ing o audio sig-
nals on ARM a chi ec u es. To his end, h ee common audio il e s uc u es a e conside ed: FIR, IIRI
and PIIR. In addi ion, an implemen a ion has been de eloped in C o he algo i hm Beam o me using
lib a ies o high pe o mance such as BLAS and LAPACK op imized (ATLAS), PLASMA and CUBLAS.
Key wo ds
Low Powe P ocesso s, ARM 7, ARM Co ex-A15, NEON In insics, Audio P ocessing, Dense linea
algeb a, High-pe o mance compu ing, Je son TK1.

Ag adecimien os
Las sisuien es l´
ıneas, las quie o dedica pa a da un since o ag adecimien o a las pe sonas que han
pues o odo su empe˜
no, dedicaci´
on y apoyo pa a que es e abajo haya podido hace se ealidad:
Ped o Alonso Jo d´
a
An onio Manuel Vidal Maci´
a
Albe o Gonz´
alez Sal ado
Gemma Pi˜
ne o Sip´
an
Jose An onio Belloch Rod iguez
Sin ol ida a mis pe sonas m´
as allegadas y en especial a mi pa eja Tama a Reig, que en es os meses
de in enso abajo me han ayudado y mos ado su apoyo incondicional.
G acias a odos.
´
Indice gene al
1. In oducci´
on gene al 11
1.1. Mo i aci´
on ............................................ 11
1.2. Mo i a i´
on pe sonal ....................................... 12
1.3. Obje i os ............................................. 12
1.4. Ha dwa e ............................................. 12
1.5. So wa e .............................................. 13
1.6. Lib e ias .............................................. 14
1.7. Es uc u a del abajo ...................................... 14
2. Pues a en ma cha y con igu aci´
on NVIDIA Je son TK1 17
2.1. Pues a en ma cha ......................................... 17
2.1.1. Conexiones ........................................ 18
2.1.2. Flashing .......................................... 18
2.1.3. Con igu aciones b´
asicas ecomendadas ......................... 19
2.1.4. Ins alaci´
on de CUDA ................................... 19
2.1.5. Ins alaci´
on de ATLAS ................................... 20
2.1.6. Ins alaci´
on de PLASMA .................................. 21
3. Fil ado de sonido: FIR, IIRI y PIIR 23
3.1. Fil os FIR ............................................. 23
3.2. Fil os IIR ............................................. 24
3.3. Con igu aci´
on del sis ema e implemen aci´
on .......................... 25
3.3.1. Con igu aci´
on del sis ema ................................ 25
3.3.2. Implemen aci´
on ..................................... 26
3.4. An´
alisis de esul ados ...................................... 28
4. Beam o me 33
4.1. Modelo de se˜
nal ......................................... 33
4.2. Algo i mos Beam o ming ..................................... 34
4.3. Con igu aci´
on del sis ema e implemen aci´
on .......................... 36
4.3.1. Con igu aci´
on del sis ema ................................ 36
5
12 CAP´
ITULO 1. INTRODUCCI´
ON GENERAL
cambio, pa a op imiza la aplicaci´
on de sepa aci´
on de se˜
nales, se ha abajado a un ni el supe io . En es e
caso se han empleado lib e ´
ıas de al as p es aciones como ATLAS [12], PLASMA [13] y CUBLAS [14]
con el in de mejo a el iempo de c´
ompu o empleando odos los elemen os compu acionales disponibles
en el disposi i o: co es CPU y la GPU. Resal a que la lib e ´
ıa ATLAS, hace uso en su implemen aci´
on de
las ins ucciones NEON.
1.2. Mo i a i´
on pe sonal
A ni el pe sonal, como es udian e de mas e en compu aci´
on pa alela y dis ibuida en la ama de
compu aci´
on cien ´
ı ica y u u o alumno de doc o ado en in o m´
a ica, la elecci´
on de es e TFM iene dada
po la inc e´
ıble opo unidad que se me dio du an e mis es udios de m´
as e de pode o ma pa e en un
g upo de in es igaci´
on como es el INCO2 del DSIC y pode inicia me de es e modo en el campo de la
in es igaci´
on. Dicho g upo de in es igaci´
on man iene una es echa elaci´
on con el ins i u o iTeam (Ins i-
u o de Telecomunicaciones y Aplicaciones Mul imedia), especializado en mejo a aplicaciones como las
que he a ado en es e abajo.
1.3. Obje i os
El obje i o p incipal de es a in es igaci´
on es el de emplea odas las ´
ecnicas y lib e ´
ıas de compu-
aci´
on de al as p es aciones con el in de educi al m´
aximo el iempo de p ocesamien o de dos aplica-
ciones pa icula es de p ocesado de se˜
nal. Es e obje i o p incipal se pod ´
ıa subdi idi y de alla en los
siguien es obje i os secunda ios:
Con igu a los disposi i os ha dwa e que se emplean, en es e caso el NVIDIA Je son TK1.
Ins ala y con igu a los paque es necesa ios pa a emplea las lib e ´
ıas de al as p es aciones: CU-
BLAS, ATLAS y PLASMA.
Reesc ibi y eo ganiza c´
odigo pa a mejo a el iempo de compu o. En pa icula , los c´
odigos
acili ados es ´
an esc i os en Ma lab y deben se eesc i os al lenguaje C/C++.
Emplea las ins ucciones SIMD de la a qui ec u a ARM (NEON) pa a educi el iempo de c´
ompu-
o.
Emplea lib e ´
ıas de compu aci´
on de al as p es aciones como CUBLAS, ATLAS, PLASMA, pa a e-
duci el iempo de c´
ompu o.
1.4. Ha dwa e
El ha dwa e empleado en la ealizaci´
on de es e p oyec o, han sido las nue as placas de NVIDIA
llamadas Je son [8]. Es as placas inco po an el chip Teg a K1 de NVIDIA (incluido en una g an a iedad
de disposi i os m´
o iles como la able a NVIDIA SHIELD) el cual incluye cua o n´
ucleos ARM Co ex-
A15, una GPU de 192 n´
ucleos Keple y un quin o n´
ucleo bas an e limi ado ARM pa a cuando la ca ga
del sis ema es muy baja educi al m´
aximo el consumo ene g´
e ico. Adem´
as, incluye dos GygaBy es de
memo ia p incipal compa ida po los p ocesado es ARM y la g ´
a ica, adem´
as de una g an a iedad de
conexiones, que se enume an con m´
as de alles a con inuaci´
on, con el in de hace al Je son de una
he amien a lo m´
as ´
u il posible. Todas es as ca ac e ´
ıs icas, hacen al NVIDIA Je son una he amien a
muy ´
u il pa a una g an a iedad de aplicaciones que necesi en de un buen endimien o compu acional
con un bajo consumo de ene g´
ıa.
A con inuaci´
on se ealiza una enume aci´
on de allada de las ca ac e ´
ıs icas de la placa NVIDIA Je son
TK1 que podemos obse a en la Figu a 1.1.

1.5. SOFTWARE 13
Figu a 1.1: NVIDIA Je son TK1.
Teg a K1.
•GPU Keple 192 n´
ucleos.
•CPU 4+1 p ocesado es ARM Co ex-A15 (ARM 7).
Memo ia P incipal 2GB.
Disco Du o 16GB eMMC.
1 mini-PCIE.
1 SSD/MMC.
1 HDMI.
1 USB 2.0 mic o AB.
1 USB 3.o.
1 RS232 se ie.
1 SATA3.
1 GigaE he ne .
1 ALC5639 Audio in/ou . . .
1.5. So wa e
Las aplicaciones desa olladas se han implemen ado en lenguaje C y se ha empleado el compilado
de GNU gcc, compilado com´
un en los sis emas ope a i os basados en unix como el que ope a en el
Je son. Tambi´
en se ha u ilizado el compilado n cc, compilado p opie a io de NVIDIA empleado pa a
la compilaci´
on del c´
odigo dise˜
nado pa a las GPUs de NVIDIA esc i o en el lenguaje CUDA [9] y ambi´
en
pa a compila c´
odigo que inco po a llamadas a u inas que hacen uso de es as GPUs.
14 CAP´
ITULO 1. INTRODUCCI´
ON GENERAL
1.6. Lib e ias
En el desa ollo de es e abajo, se han empleado cua o lib e ´
ıas de al as p es aciones con el in de
mejo a al m´
aximo las p es aciones de las aplicaciones desa olladas; es as lib e ´
ıas son: BLAS, LAPACK,
PLASMA y CUBLAS. Adem´
as, se ha empleado el paque e ATLAS pa a la ins alaci´
on op imizada de BLAS
y LAPACK.
BLAS [10] (Basic Linea Algeb a Subp og ams): Lib e ´
ıa que p o ee u inas que ealizan ope a-
ciones b´
asicas de ´
algeb a lineal num´
e ica sob e ec o es y ma ices. Las u inas de es a lib e ´
ıa
es ´
an ag upadas en es ni eles: BLAS1, que con iene ope aciones de cos e lineal sob e ec o es
unidimensionales; BLAS2, que con iene ope aciones de cos e cuad ´
a ico que in oluc an ma ices y
ec o es; y BLAS3, que con iene ope aciones de cos e c´
ubico sob e ma ices.
LAPACK [11] (Linea Algeb a PACKage): Lib e ´
ıa desa ollada pa a esol e p oblemas de ´
algeb a
lineal num´
e ica ales como esoluci´
on de sis emas de ecuaciones lineales, esoluci´
on de sis emas
de m´
ınimos cuad ados, esoluci´
on de p oblemas de alo es p opios y descomposiciones en alo-
es singula es. Las u inas de LAPACK u ilizan llamadas a las u inas de BLAS simpli icando su
implemen aci´
on y ap o echando la e iciencia del BLAS en caso de que se disponga de una imple-
men aci´
on op imizada.
ATLAS [12] (Au oma ically Tuned Linea Algeb a So wa e): No es una lib e ´
ıa p opiamen e dicha,
sino que pe mi e con igu a de o ma emp´
ı ica las lib e ´
ıas BLAS y LAPACK a las ca ac e ´
ıs icas del
ha dwa e sob e el que se es ´
an ins alando, maximizando as´
ı el endimien o de ambas y po lo
an o, educiendo el iempo compu acional de nues as aplicaciones.
PLASMA [13] (Pa allel Linea Algeb a o Scalable Mul i-co e A chi ec u es): Es una implemen a-
ci´
on mejo ada de la libe ´
ıa LAPACK, que pe mi e explo a las ca ac e ´
ıs icas de las a qui ec u as
mul i-n´
ucleos en las unciones con enidas en ella.
CUBLAS [14] (CUda Basic Linea Algeb a Sub ou ines): Lib e ´
ıa que implemen a las u inas de
BLAS pe o empleando la GPU como ha dwa e pa a los c´
alculos.
1.7. Es uc u a del abajo
La memo ia de la esis de m´
as e se es uc u a en los siguien es cap´
ı ulos:
Con igu aci´
on
En el Cap´
ı ulo 2se desc iben con de alle los pasos necesa ios pa a ac ualiza y con igu a de mane a
b´
asica el Sis ema Ope a i o que inco po a el NVIDIA Je son, la dis ibuci´
on Ubun u L4T de Linux.
Adem´
as, se exponen las ins alaciones y con igu aciones de las lib e ´
ıas empleadas en el desa ollo
de es a esis, as´
ı como los p oblemas que su gie on al ins ala las y con igu a las.
Fil ado
En el Cap´
ı ulo 3se desc iben dos es uc u as comunes empleadas pa a el il ado de se˜
nales, como
son el FIR (Fini e Impulse Response) y el IIR (In ini e Impulse Response). Adem´
as de han ealizado
dos implemen aciones di e en es de la es uc u a de il ado IIR: IRRI ( o ma di ec a I) y PIIR
( o ma pa alela). Las implemen aciones han sido ealizadas empleando ins ucciones ec o iales
NEON y es ipos de da os, dos que abajan con da os en e os y uno que abaja con n´
ume os
eales: INT16,INT32 yFLO32. Al inal del cap´
ı ulo se ealizan p uebas con las di e en es e siones
y se analizan los esul ados ob enidos.
1.7. ESTRUCTURA DEL TRABAJO 15
Beam o me
En el Cap´
ı ulo 4se desc ibe el algo i mo de Beam o me , empleado en se˜
nales digi ales pa a sepa a
una se˜
nal de o a/s de un conjun o en el que han sido mezcladas a ias de ellas po un medio de
ansmisi´
on con el obje o de ex ae la o iginal. Se han desa ollado di e en es e siones empleando
lib e ´
ıas y he amien as de compu aci´
on de al as p es aciones. Al inal del cap´
ı ulo se mues an los
esul ados ob enidos po las di e en es e siones y se analizan los mismos.
Conclusiones
En el Cap´
ı ulo 5se hace una ecopilaci´
on de las ideas m´
as ele an es ob enidas du an e la elabo a-
ci´
on de la esis, a ando de en a iza los aspec os m´
as in e esan es, los concep os ap endidos y la
apo aci´
on en la em´
a ica de p ocesamien o de se˜
nal digi al en iempo eal. Adem´
as al inal de es e
cap´
ı ulo, se exponen las posibles mejo as o ex ensiones ha ealiza en ambos abajos expues os en
es a esis, as´
ı como las u u as l´
ıneas de in es igaci´
on po las que podemos encauza nos a eno de
los esul ados ob enidos.
16 CAP´
ITULO 1. INTRODUCCI´
ON GENERAL
Cap´
ı ulo 2
Pues a en ma cha y con igu aci´
on
NVIDIA Je son TK1
ENes e segundo cap´
ı ulo se abo dan los p ime os pasos que se han de lle a a cabo una ez enemos en
nues as manos el Je son TK1 [15], an es de pasa a implemen a y ejecu a los c´
odigos que amos
a desa olla en los cap´
ı ulos 3y4.
A la ho a de con igu a el NVIDIA Je son TK1, nos hemos encon ado con un g an n´
ume o de p oble-
mas que nos han epo ado un iempo ex a pa a pode con igu a lo de o ma sa is ac o ia. Uno de los
p incipales p oblemas que nos hemos encon ado, es que el sis ema ope a i o del Je son es una e si´
on
incomple a del sis ema ope a i o Ubun u pa a esc i o io (L4T – Linux o Teg a), es o nos ha causado
algunos p oblemas a la ho a de con igu a lo e ins ala las lib e ´
ıas necesa ias, ya que al an algunos
iche os y/o paque es de so wa e que s´
ı que se encuen an en una e si´
on comple a de Ubun u.
Adem´
as, al se un p oduc o ela i amen e nue o, iene p oblemas de madu ez en el sis ema ope a i o
que los ´
ecnicos de NVIDIA an solucionando en e siones sucesi as seg´
un los an de ec ando o son
in o mados po pa e de la comunidad de usua ios. Todo es o sin nomb a que, al a a se de un p oduc o
nue o y en ase de adquisici´
on de usua ios y siendo la documen aci´
on bas an e escue a en algunos
apa ados, el eedback a los usua ios a´
un es bas an e escaso, lo que esul a en di icul ades a la ho a de
encon a soluciones a consul as ace ca de cualquie p oblema su gido con el Je son.
Pa a inaliza , comen a que no ´
unicamen e el so wa e del Je son ca ece de madu ez a la ho a de
u iliza lo, sino que adem´
as, las lib e ´
ıas y/o aplicaciones no se encuen an adap adas a´
un a algunas de
sus peculia idades po lo que su gen p oblemas a˜
nadidos al ins ala las (si es que se consiguen ins ala
co ec amen e en el Je son), p oblemas que no se p oducen en equipos con un Ubun u o Linux con en-
cional. Po comen a algunos casos, des aca que no se ha podido hace unciona co ec amen e ni el
compilado de ARM (a mcc) ni la lib e ´
ıa MAGMA que implemen a las u inas del Lapack haciendo uso de
odos los n´
ucleos compu acionales disponibles en el ha dwa e, an o CPU’s como GPU’s.
En lo e e en e a la lib e ´
ıa CUDA pa a el Je son, comen a que la ´
ul ima e si´
on disponible en el
momen o que se edac an es as l´
ıneas es la CUDA-6.5, mien as que pa a sis emas con encionales es ´
a
disponible ac ualmen e la CUDA-7.5. Adem´
as, ese˜
na que el paque e CUDA pa a el Je son no dispone
de la o alidad de las he amien as disponibles en una e si´
on CUDA con encional.
2.1. Pues a en ma cha
En es a p ime a secci´
on, se an a de alla los pasos b´
asicos pa a pone en ma cha el NVIDIA Je son, as´
ı
como pa a ob ene una con igu aci´
on b´
asica del mismo a pa i de la cual podamos empeza a abaja .
17

18 CAP´
ITULO 2. PUESTA EN MARCHA Y CONFIGURACI´
ON NVIDIA JETSON TK1
2.1.1. Conexiones
Conec a un ex emo del cable se ie al pue o se ie J1A2 UART4 de la placa NVIDIA Je son TK1,
y el o o ex emo a un equipo Linux (P e e en emen e el equipo Linux debe se Ubun u, que es el
sis ema Linux que inco po an los Je son, en caso con a io pueden su gi p oblemas adicionales a
los expues os en es e documen o).
Conec a el cable USB Mic o-B (incluido en la caja) a la placa Je son y po el o o ex emo USB al
equipo Linux.
Conec a eclado y a ´
on al pue o USB de la placa, como la placa ´
unicamen e dispone de un ´
unico
pue o USB, si se desea conec a ambos disposi i os es necesa io dispone de un adap ado que
saque m´
as de un pue o USB.
Conec a la salida HDMI de la placa Je son a un moni o HDMI.
Conec a un cable de ed al pue o E he ne de la placa po un ex emo y po el o o a un swi ch/-
ou e /e c que le p opo cione acceso a in e ne al Je son.
Conec a el cable de alimen aci´
on del Je son al pue o AC del mismo.
2.1.2. Flashing
La p ime a a ea que ealizamos una ez ecibidos los Je son, ue ac ualiza el sis ema ope a i o que
inco po an a la e si´
on m´
as ecien e disponible, a ea a la que llaman lashing. En es e pun o ´
unicamen e
hace un peque˜
no inciso, y es que en la gu´
ıa se nos indica que el lashing se puede ealiza desde cualquie
equipo Linux, pe o ap o echando nues a expe iencia, indica que los sis emas ope a i os OSX no si en
pa a al come ido, aunque bien sabemos que ambi´
en es ´
an basados en Linux (dis ibuci´
on Da win).
Po lo an o, decidimos inalmen e emplea un equipo donde en´
ıamos ins alado Ubun u como sis ema
ope a i o, que es el mismo sis ema ope a i o en el que se basa NVIDIA pa a dise˜
na el de los Je son. A
con inuaci´
on amos a de alla paso po paso el p ocedimien o a segui :
1. Desca ga la ´
ul ima e si´
on del so wa e pa a el Je son (L4T) de la u l h ps://de elope .
n idia.com/linux- eg a
2. Descomp imi el paque e desca gado en una ca pe a y ensambla el sis ema de iche os.
sudo a xp ${RELEASE NAME}
cd Linux_ o _Teg a/ oo s/
sudo a xp ../../Teg a_Linux_Sample-Roo -Filesys em_Rxx.x.x_a mh . bz2
cd ..
sudo ./apply_bina ies.sh
3. Copiamos el sis ema de iche os a la memo ia in e na eMMC del Je son.
a) Pone la placa Je son en Reco e y Mode pulsando los bo ones ese y eco e y de la placa y
pos e io men e sol ando el bo ´
on de ese .
b) Asegu a se que el equipo linux es ´
a conec ado a la placa con el cable USB pa a el lashing.
sudo ./ lash.sh -S 16GiB ${Je son- k1} mmcblk0p1
En unos minu os el sis ema del Je son ab ´
a sido eins alado po comple o.
4. Ins alamos el sis ema g ´
a ico, despu´
es de habe con igu ado la ed, y einiciamos el sis ema.
sudo ap -ge upda e
sudo ap -ge ins all ubun u-desk op
eboo
2.1. PUESTA EN MARCHA 19
2.1.3. Con igu aciones b´
asicas ecomendadas
Una ez enemos ealizado el lashing del Je son po comple o y el sis ema ha sido einiciado, p o-
cedemos a ealiza unas con igu aciones b´
asicas en el sis ema an es de p ocede a ins ala ning´
un o o
so wa e. Pa a ello, debemos ab i un e minal o consola del sis ema Ubun u del Je son y segui los pasos
siguien es:
1. Es muy impo an e que se le diga al comando ap que no sob esc iba el a chi o libglx.so si
amos a ac ualiza el sis ema. El a chi o libglx.so es un a chi o de con olado es g ´
a icos de
NVIDIA que pod ´
ıa se eemplazado po una e si´
on inco ec a al ac ualiza el sis ema Ubun u del
Je son, y es o causa ´
ıa que no pudie a se a ancado el en o no g ´
a ico del Je son. Po es a az´
on,
es con enien e ejecu a el comando sudo ap -ma k hold xse e -xo g-co e an es de conec a
a In e ne y/o ac ualiza el sis ema Ubun u del Je son.
2. A˜
nadi a la lis a de eposi o ios del sis ema Ubun u del Je son el eposi o io uni e se con los
comandos sudo ap -add- eposi o y uni e se ysudo ap -ge upda e, ya que es com´
un que
se equie an paque es con enidos en es e eposi o io cuando es amos desa ollando c´
odigos.
3. Ins ala el paque e bash-comple ion, pe mi e que se au o-comple e los comandos shell y e da
suge encias sob e los paque es a ins ala si se esc ibe un comando que no se encuen a en el
sis ema.
4. Ins ala los paque es g o an yg o an-mul ilib ya que las libe ias BLAS yLAPACK es ´
an
esc i as en el lenguaje Fo an po lo que es necesa io un compilado de o an pa a ins ala las
con el paque e ATLAS.
2.1.4. Ins alaci´
on de CUDA
Como siguien e paso una ez hecho el lashing del Je son a la ´
ul ima e si´
on de so wa e disponible,
se p ocede a ins ala las he amien as CUDA que nos pe mi i ´
an hace uso de la GPU inco po ada en el
chip TK1 del Je son. A con inuaci´
on de alla emos los pasos que se han se segui pa a dicha ins alaci´
on:
1. Desca ga la ´
ul ima e si´
on de CUDA disponible pa a sis emas L4T de la u l h p://de elope .
download.n idia.com/compu e/cuda/ elease_ e sion/ el/ins alle s/cuda- epo-l4 - XX.
X-X-X-p od_X.X-XX_a mh .deb.
2. A˜
nadimos el eposi o io desca gado al sis ema de paque es del Je son con el comando sudo dpkg -i
cuda- epo-l4 - XX.X-X-X-p od_X.X-XX_a mh .deb.
3. Ac ualizamos la lis a de paque es que hay en los eposi o ios con el comando sudo ap -ge upda e.
4. Ins alamos el paque e CUDA- oolki de la e si´
on desca gada con el comando sudo ap -ge ins all
cuda- oolki -X-X.
5. A˜
nadimos los usua ios que deban ene acceso a la GPU al g upo ideo pa a que as´
ı puedan accede
con el comando sudo use mod -a -G ideo usua io.
6. A˜
nadimos los pa h del CUDA ins alado en el iche o bash c de los usua ios, eca gamos el iche o
bash c pa a que se apliquen las ac ualzaciones y comp obamos que podemos accede al compilado
de NVIDIA n cc con los comandos:
echo ‘‘# Add CUDA bin & lib a y pa hs:’’ >> ~/.bash c
echo ‘‘expo PATH=/us /local/cuda/bin:$PATH’’ >> ~/.bash c
echo ‘‘expo LD_LIBRARY_PATH=/us /local/cuda/lib:$LD_LIBRARY_PATH’’ >> ~/.bash c
sou ce ~/.bash c
n cc -V
20 CAP´
ITULO 2. PUESTA EN MARCHA Y CONFIGURACI´
ON NVIDIA JETSON TK1
2.1.5. Ins alaci´
on de ATLAS
Una ez enemos ins alado el CUDA- oolki , p ocedemos a la ins alaci´
on del paque e ATLAS que nos
ha ´
a una ins alaci´
on ´
op ima pa a nues o equipo de las lib e ´
ıas BLAS yLAPACK. Pa a ello expond emos a
con inuaci´
on los pasos necesa ios pa a una co ec a con igu aci´
on y ins alaci´
on de la misma. ´
Unicamen e
comen a , que si pos e io men e se a ha hace uso de o as lib e ´
ıas como el PLASMA, es necesa io
ealiza la ins alaci´
on del ATLAS con la opci´
on ha d, es o a di e encia que la opci´
on so , indica que la
a qui ec u a dispone de unidades ha dwa e pa a ealiza las ope aciones con n´
ume os eales, mien as
que la opci´
on so es pa a las a qui ec u as que ca ecen de es e ipo de unidades implemen adas po
ha dwa e y lo que hacen es ealiza las ope aciones con n´
ume os eales po so wa e. En el caso del
Je son, el p ocesado dispone de es as unidades ha dwa e, po lo que no enemos mayo es p oblemas
pa a ins ala la lib e ´
ıa con una opci´
on u o a, pe o es necesa io ins ala la con la opci´
on ha d si amos a
u iliza o as lib e ´
ıas como en nues o caso el PLASMA.
A con inuaci´
on se de allan con esme o los pasos a segui pa a una co ec a con igu aci´
on e ins alaci´
on
del paque e ATLAS en el Je son:
1. Ac i a el modo pe o mance en el Je son
echo 0 > /sys/de ices/sys em/cpu/cpuquie / eg a_cpuquie /enable
echo 1 > /sys/de ices/sys em/cpu/cpu0/online
echo 1 > /sys/de ices/sys em/cpu/cpu1/online
echo 1 > /sys/de ices/sys em/cpu/cpu2/online
echo 1 > /sys/de ices/sys em/cpu/cpu3/online
echo pe o mance > /sys/de ices/sys em/cpu/cpu0/cpu eq/scaling_go e no
2. C ea una ca pe a y posiciona nos den o de ella
mkdi ATLAS
cd ATLAS
3. Desca ga el paque e ATLAS de la u l h p://sou ce o ge.ne /p ojec s/ma h-a las/ iles/.
4. Descomp imi iche o
a -xj a las3.XX.X. a .bz2
m - a las3.XX.X. a .bz2
5. Desca ga y con igu a opci´
on ha d
wge h p://ma h-a las.sou ce o ge.ne / ixes/a mha d p_a chde . a
a x a mha d p_a chde . a
m - a mha d p_a chde . a
i ./CONFIG/s c/a lcomp. x
:g/=so p/s//=ha d/g
6. Ins ala ATLAS con odas las unciones Lapack
wge h p://www.ne lib.o g/lapack/lapack-3.5.0. gz
7. Con igu a , cons ui , comp oba e ins ala ATLAS
mkdi s cATLAS
cd s cATLAS
../ATLAS/con igu e -D c -DATL_ARM_HARDFP=1 -Ss ADdi $CURRENT_PATH/ATLAS/ARMHARDFP
--wi h-ne lib-lapack- a ile=$CURRENT_PATH/lapack-3.5.0. gz
sudo make build
sudo make check
sudo make p check
sudo make ins all
2.1. PUESTA EN MARCHA 21
2.1.6. Ins alaci´
on de PLASMA
Pa a inaliza con las lib e ´
ıas ha ins ala , p ocedimos a la ins alaci´
on de la lib e ´
ıa PLASMA la cual
nos p opo ciona el pode ealiza las unciones que inco po a la lib e ´
ıa LAPACK, haciendo uso de los
cua o n´
ucleos compu acionales (CPU’s) del Je son, y no ´
unicamen e de uno. A con inuaci´
on mos amos
los comandos necesa ios pa a la con igu aci´
on e ins alaci´
on de la lib e ´
ıa PLASMA
1. Desca ga la lib e ´
ıa PLASMA desde la u l h p://icl.cs.u k.edu/p ojec s iles/plasma/pubs/
plasma-ins alle _X.X.X. a .gz.
2. Descomp imi la lib e ´
ıa
a -xz plasma-ins alle _X.X.X. a .gz
cd plasma-ins alle _X.X.X
3. Con igu aci´
on e ins alaci´
on
sudo ./se up.py --p e ix=/us /lib/ --build=/us /local --cc=gcc -- c=g o an
--c lags=‘‘-O2’’ --ld lags_c=-L/us /local/a las/lib/ --ld lags_ c=-L/us /local/
a las/lib/ --blaslib=‘‘-l 77blas -lcblas -la las’’ --lapacklib=‘‘-llapack’’
--lapclib=‘‘-llapacke’’ --nbco es=4
Pulsamos ‘‘d’’
Pulsamos ‘‘d’’
28 CAP´
ITULO 3. FILTRADO DE SONIDO: FIR, IIRI Y PIIR
Tabla 3.1: Ins ucciones NEON empleadas con una b e e desc ipci´
on.
Ins uc ion Desc ip ion
mo q_n_s32( alue) Ini ialize in 32x4_ ec o egis e s
mo q_n_s64( alue) Ini ialize in 64x2_ ec o egis e s
mo q_n_ 32( alue) Ini ialize lo32x4_ ec o egis e s
mo _n_s16( alue) Ini ialize in 16x4_ ec o egis e s
mo _n_s32( alue) Ini ialize in 32x2_ ec o egis e s
ld1_s16(*da a) Load in 16x4_ ec o egis e s
ld1_s32(*da a) Load in 32x4_ ec o egis e s
ld1q_ 32(*da a) Load lo32x4_ ec o egis e s
mls_s16(des ,da a1,da a2) Vec o mul iply sub ac , in 16x4_ des . ec o egis e s
mls_s32(des ,da a1,da a2) Vec o mul iply sub ac , in 32x2_ des . ec o egis e s
mlsq_ 32(des ,da a1,da a2) Vec o mul iply sub ac , lo32x4_ des . ec o egis e s
mlal_s16(des ,da a1,da a2) Vec o mul iply accumula e long, in 32x4_ des . ec o egis e s
mlal_s32(des ,da a1,da a2) Vec o mul iply accumula e long, in 64x2_ des . ec o egis e s
mlaq_ 32(des ,da a1,da a2) Vec o mul iply accumula e, lo32x4_ des . ec o egis e s
s 1_s16(des ,sou ce) S o e a single ec o in o memo y, *in 16_ [4] des . egis e s
s 1_s32(des ,sou ce) S o e a single ec o S o e a single, *in 32_ [4] des . egis e s
s 1q_ 32(des ,sou ce) S o e a single ec o in o memo y, * lo32_ [4] des . egis e s
ge _high_s32( eg) Spli ing ec o egis e s, in 32x2_ e u n ec o egis e s
ge _high_ 32( eg) Spli ing ec o egis e s, lo32x2_ e u n ec o egis e s
ge _low_s32( eg) Spli ing ec o egis e s, in 32x2_ e u n ec o egis e s
ge _low_ 32( eg) Spli ing ec o egis e s, lo32x2_ e u n ec o egis e s
padd_s32(da a1,da a2) Pai wise add, in 32x2_ des . ec o egis e s
padd_ 32(da a1,da a2) Pai wise add, lo32x2_ des . ec o egis e s
ge _lane_s32( eg,pos) Ex ac lanes om a ec o , in 32_ des . egis e s
ge _lane_s64( eg,pos) Ex ac lanes om a ec o , in 64_ des . egis e s
ge _lane_ 32( eg,pos) Ex ac lanes om a ec o , lo32_ des . egis e s
3.4. An´
alisis de esul ados
Como hemos comen ado con an e io idad, en es e an´
alisis de esul ados es udiamos es es uc u as
di e en es de il os: FIR, IIRI y PIIR, il os que hemos expues o al p incipio del cap´
ı ulo, empleando
como ama˜
nos de coe icien es del il o 52 y 256 alo es. Pa a pode ealiza una compa a i a equi-
a i a, elegimos los alo es de M y N id´
en icos (M=N). Todos los c´
odigos han sido compilados con el
compilado GNU GCC empleando las opciones de compilaci´
on -O3,-m pu=neon y-ma ch=a m 7. Pa a
au o- ec o iza un c´
odigo incluyendo u inas NEON in insics, se emplea la opci´
on - ee- ec o ize [22].
El p ime esul ado, plasmado en la Figu a 3.4, mues a el iempo de ejecuci´
on eque ido po los
es ipos de da os u ilizados: 16-bi y 32-bi in ege s y 32-bi loa s. Noso os compa amos la e si´
on
op imizada empleando ins ucciones in ´
ınsecas NEON con la e si´
on que emplea ope aciones comunes
(no ec o iales). El esul ado mos ado ecalca el bene icio en cos e compu acional que ob enemos si
u ilizamos el ipo de da os 16-bi i ege compa ado con el ipo de da os 32-bi loa .
Pa a compa a el speedUp ob enido empleando los di e en es ipos de da os, se ha elegido la com-
pa a i a en e los ipos de da os INT16 yFLO32, ya que se conside an los m´
as in e esan es de u iliza
dependiendo de las necesidades de la aplicaci´
on. En la Figu a 3.5, la pa e supe io del g ´
a ico ep esen-
a el speedUp alcanzado po el ipo de da os INT16, mien as que la pa e in e io ep esen a el speedUp
ob enido pa a el ipo de da os FLO32. En el caso del il o FIR, el speedUp ob enido es muy al o, ob enien-
dose unos alo es de 5 y 6,5 pa a un n´
ume o de coe icien es de 52 y 256, espec i amen e, cuando el
ipo de da os u ilizado es el INT16. En cambio, pa a el ipo de da os FLO32 y el mismo il o FIR, los a-

3.4. AN´
ALISIS DE RESULTADOS 29
0
10
20
30
40
50
60
10 20 40 80 160 320
Time (ms.)
Numbe o il e s
FIR o leng h 52
INT16
INT32
FLO32
0
50
100
150
200
250
300
350
10 20 40 80 160 320
Time (ms.)
Numbe o il e s
FIR o leng h 256
INT16
INT32
FLO32
0
5
10
15
20
25
30
10 20 40 80 160 320
Time (ms.)
Numbe o il e s
IIRI o leng h 52
INT16
INT32
FLO32
0
20
40
60
80
100
120
10 20 40 80 160 320
Time (ms.)
Numbe o il e s
IIRI o leng h 256
INT16
INT32
FLO32
0
10
20
30
40
50
60
10 20 40 80 160 320
Time (ms.)
Numbe o il e s
Pa allel IIR o leng h 52
INT16
INT32
FLO32
0
50
100
150
200
250
300
350
10 20 40 80 160 320
Time (ms.)
Numbe o il e s
Pa allel IIR o leng h 256
INT16
INT32
FLO32
Figu a 3.4: Rendimien o con espec o al ipo de da os.
Figu a 3.5: Speedup alcanzado usando in ´
ınsecas NEON.
lo es de speedUp ob enidos son de 3 y 3,5 ap oximadamen e pa a los mismos ama˜
nos de los ec o es de
coe icien es. Es os esul ados nos dicen que ob enemos un g an bene icio en cuan o a iempo de compu o
compa ado con la e si´
on au o- ec o izada po pa e del compilado gcc; ob eniendose un mejo bene-
icio cuando u ilizamos el ipo de da os INT16 en ez del FLO32, aunque p oduci´
endose un p´
e dida de
p ecisi´
on en los esul ados del p ime o compa ado con los del segundo (es a p´
e dida es dependien e del
ango de los da os de en ada de la aplicaci´
on).
Tambi´
en se han implemen ado e siones pa alelas de los c´
odigos (empleando OpenMP) pa a es os
es ipos de da os y es uc u as de il o. La escalabilidad ob enida en muy azonable en odos los
casos. Como se mues a en la Figu a 3.6, los speedUp ob enidos pa a el caso de emplea dos n´
ucleos
compu acionales (CPU), es de dos pa a ambas longi udes de los ec o es de coe icien es. En cambio pa a
30 CAP´
ITULO 3. FILTRADO DE SONIDO: FIR, IIRI Y PIIR
0
1
2
3
4
10 20 40 80 160 320
Speedup
Numbe o il e s
2 co es. Fil e leng h = 52
4 co es. Fil e leng h = 52
2 co es. Fil e leng h = 256
4 co es. Fil e leng h = 256
Figu a 3.6: Speedup del il o IIRI empleando 2 y 4 co es.
cua o n´
ucleos, el compo amien o es un poco m´
as i egula ob eniendose unos alo es de speedUp en e
es y cua o aunque en ando es os den o de la no malidad. Con cua o n´
ucleos ya no son an ideales
como con dos n´
ucleos, eniendo en cuen a que en ambos casos no se han con emplado dependencias
en e los da os de los di e en es n´
ucleos compu acionales. Es a di e encia en el endimien o debe ´
ıa
es a elacionada con alg´
un cuello de bo ella en el ha dwa e del Je son, p esumiblemen e en la memo ia
cach´
e de ni el dos (L2).
Se de ine bu como el in e alo de iempo que se a da en gene a dos bu e s consecu i os de
mues as de en ada a p ocesa . Tambi´
en se de ine p oc como el iempo que a da nues a aplicaci´
on en
p ocesa las mues as del bu e . Po lo an o, pa a que nues a aplicaci´
on uncione en iempo eal, las
mues as con enidas en el bu e ac ual han de se p ocesadas an es de que el siguien e bu e es ´
e lis o
pa a se p ocesado, es o es p oc < bu .
El obje i o de la Figu a 3.7 es el de mos a , pa a cada una de las es uc u as de il o y pa a los ipos
de da os INT16 y FLO32 empleando en ambos casos 52 y 256 como ama˜
no de los coe icien es del il o,
cu´
al es el n´
ume o m´
aximo de il os que nues a aplicaci´
on se ´
ıa capaz de p ocesa en iempo eal, es
deci , siendo p oc < bu .
En la Figu a 3.7 se puede ap ecia la e oluci´
on de p oc en unci´
on del n´
ume o de il os p ocesados.
Es a igu a compa a los ipos de da os INT16 y FLO32. Aho a amos a comen a po encima que l´
ımi es
se pueden ex ae de la g ´
a ica pa a cada una de las es uc u as de il o es udiadas en es e abajo, que
pe mi an a la aplicaci´
on que emplee es as es uc u as de il o abaja en iempo eal. Pa a la es uc u a
FIR los l´
ımi es pa a los ipos de da os INT16 y FLO32 con 256 coe icien es son de 170 y 260 il os,
espec i amen e. Pa a la es uc u a IIRI son de 80 y 125. Po ´
ul imo, pa a la es uc u a PIIR son de 50 y
25 il os aplicados en iempo eal.
3.4. AN´
ALISIS DE RESULTADOS 31
0
5
10
15
20
25
50 100 150 200 250 300
p oc(ms)
52 coe . - INT16
FIR
IIRI
PIIR
bu (ms)
0
5
10
15
20
25
50 100 150 200 250 300
p oc(ms)
256 coe . - INT16
FIR
IIRI
PIIR
bu (ms)
0
5
10
15
20
25
50 100 150 200 250 300
p oc(ms)
52 coe . - FLO32
FIR
IIRI
PIIR
bu (ms)
0
5
10
15
20
25
50 100 150 200 250 300
p oc(ms)
256 coe . - FLO32
FIR
IIRI
PIIR
bu (ms)
Figu a 3.7: E oluci´
on del iempo de compu o necesa io pa a el c´
alculo en iempo eal.
32 CAP´
ITULO 3. FILTRADO DE SONIDO: FIR, IIRI Y PIIR
Cap´
ı ulo 4
Beam o me
ESTE cap´
ı ulo abo da el desa ollo del algo i mo del beam o ming, algo i mo capaz de, a pa i de una
se˜
nal ecibida que ha sido al e ada po uido, e e be aciones y o as se˜
nales, limpia la y sepa a la
del uido a in de que ´
es a quede como o iginalmen e e a an es de habe sido ansmi ida y al e ada po
agen es ex e nos. Pa a ello, la cap u a de la se˜
nal a p ocesa se ealiza a pa i de un a ay de mic ´
o onos
que cap u an la se˜
nal desde di e en es pun os del espacio.
4.1. Modelo de se˜
nal
En el modelo p esen ado amos a asumi un sis ema compues o po Mal a oces que an a emi i M
se˜
nales di e en es: s1(k), s2(k), . . . , sM(k), y que an a se cap u adas conjun amen e po Nmic ´
o onos
si uados en o o espacio de la habi aci´
on di e en e al de los al a oces y que cap u a ´
an las Mse˜
nales
como una se˜
nal ´
unica que, adem´
as, se encon a ´
a al e ada po uido y e e be aciones de la habi aci´
on.
El p oblema que a a de soluciona es e algo i mo consis e en c´
omo sepa a cada una de las se˜
nales
s1(k),s2(k),...,sM(k)a pa i de las se˜
nales cap u adas po los dis in os mic ´
o onos del sis ema. En la
Figu a 4.1 se puede ap ecia un ejemplo con dos al a oces y es mic ´
o onos. El en oque adop ado en
es e documen o hace uso de algo i mos de p ocesamien o de se˜
nal pa a el dise˜
no del ancho de banda
beam o me s ( il os gnen la Figu a 4.1), una ez que odos los canales de espues a de la habi aci´
on
(hnm en la Figu a 4.1) son conocidos. Es e sis ema puede se modelado como un sis ema mul icanal
con dos en adas (al a oces) y es salidas (mic ´
o onos). La gene alizaci´
on a un sis ema de Mul iples
en adas - M´
ul iples salidas (MIMO, Mul iple Inpu - Mul iple ou pu ) puede se es udiado en [23].
De acue do con la Figu a 4.1, la salida del mic ´
o ono n h iene dada po la EQ 4.1:
xn(k) =
M
X
m=1
Lh
X
j=1
hnm(j)sm(k−j) + n(k),(4.1)
donde n= 1,2, . . . , N, siendo Nel n´
ume o de mic ´
o onos del sis ema, y m= 1,2, . . . , M, donde Mes
el n´
ume o de se˜
nales de en ada ( uen es) o n´
ume o de al a oces de la Figu a 4.1. El pa ´
ame o Lhes la
longi ud del canal de espues a ac´
us ico hnm m´
as la go de la habi aci´
on, mien as que n(k)es el uido
de la se˜
nal. En a as de apo a una mayo cla idad a la ecuaci´
on del p oblema, el ´
e mino que apo a
uido, n(k)en la EQ 4.1, no se conside a ´
a en el siguien e modelo de la se˜
nal EQ 4.2:
xn(k) =
M
X
m=1
hT
nmsm(k),(4.2)
siendo sm(k)el ec o columna de inido como:
sm(k) = [sm(k), sm(k−1) . . . sm(k−Lh+ 1)]T,
yhnm es el RLh×1 ec o del canal ac´
us ico del al a oz mal mic ´
o ono n.
33

34 CAP´
ITULO 4. BEAMFORMER
Figu a 4.1: Modelo de la se˜
nal pa a M=2 al a oces (en adas) y N=3 mic ´
o onos (salidas).
Conside ando aho a el p oblema de ecupe aci´
on de se˜
nales emi idas sm(k)a pa i de las se˜
nales
adqui idas po los mic ´
o onos xn(k), el il o beam o ming gnde la Figu a 4.1 iene que es a dise˜
nado
de o ma que la se˜
nal de salida y(k)cons i uya una buena es imaci´
on de la se˜
nal sm(k), es deci , que
y(k) = ˆsm(k−τ)nos p opo cione un e o m´
ınimo. Dada una longi ud m´
axima de Lg ija pa a cada uno
de los il os gn, el ancho de banda de la se˜
nal de salida se puede exp esa de o ma simila a la EQ 4.2:
y(k) =
N
X
n=1
gT
nxn(k),(4.3)
donde gnes el ec o RLg×1con eniendo o denadamen e los il os gnde la Figu a 4, y xn(k)es el ec o
columna de inido como xn(k) = [xn(k)xn(k−1) . . . xn(k−Lg+ 1)]T. Con el in de calcula el ec o
comple o xn(k)u ilizado en la EQ 4.3 de o ma ma icial, la EQ 4.2 ha enido que se eesc i a en o ma
compac a ede iniendo hnm como ma ices de Syl es e . Pa a m´
as de alles consul a [23].
4.2. Algo i mos Beam o ming
En [23], Benes y e al. p esen a un excelen e epaso de los p incipales algo i mos u ilizados en p o-
cesamien o de se˜
nal. Debido a que o ece un mejo endimien o, noso os nos cen amos en es e abajo
en un algo i mo basado en co elaci´
on de ma ices, como es el LCMV (Linea ly Cons ained Minimum
Va iance).
El Algo i mo LCMV calcula los il os beam o ming como se puede ap ecia en la EQ 4.4,
gLCMV =ˆ
R−1
xH:m[HT
:mˆ
R−1
xH:m]−1um,(4.4)
donde gLCMV es ´
a o mado po la conca enaci´
on de los il os gn, es o es, gLCMV = [gT
1. . . gT
N]T, la
ma iz H:mes una pa ici´
on de la ma iz de impulso del canal que solo incluye las espues as al impulso
de las uen es m h de los N mic ´
o onos [23] u ilizados en la ma iz de Syl es e pa a las dimensiones
[NLg·Lg +Lh −1]. La ma iz ˆ
Rxes la ma iz de co elaci´
on de las se˜
nales cap u adas y umes un ec o
de ce os a excepci´
on de una de las componen es del ec o con el in de compensa el e a do de la
espues a al impulso de la habi aci´
on.
Buscando la implemen aci´
on m´
as e icien e y p ecisa del LCMV, u ilizamos un m´
e odo basado en la
4.2. ALGORITMOS BEAMFORMING 35
descomposici´
on QR de la ma iz XT, siendo ´
es a de inida como X∈R[NLg·K]:
X=1
√k





x1(k)x1(k+ 1) . . . x1(k+K−1)
x2(k)x2(k+ 1) . . . x2(k+K−1)
.
.
..
.
.. . . .
.
.
xN(k)xN(k+ 1) . . . xN(k+K−1)





,(4.5)
donde K > NLges el n´
ume o de mues as u ilizadas.
Es a o ma, XT=Q·R, donde Qes una ma iz o ogonal y Res una ma iz iangula supe io ,
pe mi e la esoluci´
on ´
apida de sis emas algeb aicos lineales empleando las u inas de la lib e ´
ıa LAPACK.
Noso os cons u´
ımos di ec amen e la ma iz XTen la ep esen aci´
on Column Majo O de pa a pode
aplica di ec amen e es as u inas e icien es.
Conside ando la descomposici´
on QR de las obse aciones de los mic ´
o onos, se puede ede ini ˆ
Rx
como:
ˆ
Rx=X·XT=RT·QT·Q·R=RT·R.
Aho a noso os de inimos po con eniencia la ma iz Wcomo W=ˆ
R−1
xH:m, as´
ı que el il o beam-
o me LCMV (gLCMV ) de inido en la EQ 4.4 queda de la siguien e o ma:
gLCMV =W[HT
:mW]−1um.(4.6)
Se de ine la ma iz Zcomo la soluci´
on al sis ema lineal mos ado en la EQ 4.7:
RTZ=H:m,(4.7)
en onces, u ilizando la descomposici´
on QR de la ma iz X, enemos:
W=ˆ
R−1
xH:m= (RTR)−1H:m=R−1R−TH:m=R−1Z,
donde se puede ap ecia cla amen e que la ma iz Wes la soluci´
on al sis ema lineal RW =Z.
La soluci´
on pa a ob ene los il os beam o ming se ob iene de esol e el sis ema lineal de la EQ 4.8,
Abm=um,(4.8)
donde A=HT
:mW=HT
:mR−1Z=ZTZ. Tambi´
en aqu´
ı, la soluci´
on del sis ema lineal de la EQ 4.8 es
ob enida a pa i de la ac o izaci´
on QR, en es e caso, de la ma iz Z. Aho a, Z=Q0R0es la descom-
posici´
on QR de la ma iz Z, en onces, el ec o bmpuede se calculado esol iendo los dos siguien es
sis emas lineales iangula es que se mues an en la EQ 4.9 yEQ4.10.
R0Ty=um,(4.9)
R0bm=y . (4.10)
Finalmen e, es ´
acil deduci que el c´
alculo del il o beam o me de la EQ 4.6, puede se calculado
empleando los ´
ul imos c´
alculos ealizados, es o es, R,Zybmde la o ma que se mues a en la EQ 4.11,
gLCMV =R−1Zbm.(4.11)
Es os ´
u imos c´
alculos se esuel en ealizando un p oduc o ma iz- ec o y esol iendo un sis ema
lineal iangula .
36 CAP´
ITULO 4. BEAMFORMER
4.3. Con igu aci´
on del sis ema e implemen aci´
on
La placa NVIDIA Je son inco po a el chip Teg a K1 de NVIDIA, el cual, con iene a su ez una GPU
basada en a qui ec u a Keple . Po lo an o, podemos emplea una CPU mul i-co e (4+1) y una GPU
de 192 co es ensamblados en un ´
unico chip y que hacen uso de una memo ia RAM com´
un con 2 GB
de capacidad. Al es a inco po ada la GPU en el mismo chip y emplea la misma memo ia RAM, los
in e cambios de da os en e CPU y GPU son a p io i mucho m´
as ´
apidos que en las con igu aciones
adicionales donde la GPU se comunica con el hos a a ´
es del bus PCIe. Adem´
as, se a a de un
disposi i o de bajo consumo con un buen a io GFlop/wa io, lo que pe mi e desa olla aplicaciones
que despu´
es ayan a se empleadas en disposi i os m´
o iles.
4.3.1. Con igu aci´
on del sis ema
En es e abajo se han desa ollado di e en es implemen aciones del algo i mo pa a el c´
alculo de
los il os beam o me que emplean la CPU quad-co e Co ex-A15 a 2,32 GHz, la GPU Keple de 192
co es a 0,85 GHz o ambas unidades compu acionales (CPU y GPU). La dos unidades compu acionales
han sido con igu adas al m´
aximo de su po encial (modo pe o mance) pa a ob ene el meno iempo
compu acional posible en el c´
alculo de los il os beam o me . El in que se pe sigue con las di e en es
implemen aciones ealizadas pa a el c´
alculo de los il os beam o me es pode calcula los en iempo eal,
po lo que se han empleado lib e ´
ıas de al as p es aciones como LAPACK, PLASMA y CUBLAS. En o as
palab as, se han explo ado odas las posibilidades basadas en lib e ´
ıas exis ens de al as p es aciones
con el in de po encia el endimien o de la aplicaci´
on y la e iciencia de los n´
ucleos compu acionales
disponibles en el Je son.
La con igu aci´
on del sis ema desa ollado en las p uebas es un sis ema con dos al a oces si uados
en un luga de la habi aci´
on que emi en dos se˜
nales di e en es de la misma du aci´
on (si no uese as´
ı se
ala ga ´
ıa la m´
as co a ellenando el bu e con ce os), y es mic ´
o onos en o o luga de la habi aci´
on
que cap u an las se˜
nales emi idas po los al a oces.
Pa a inaliza con es a secci´
on, comen a que en es e abajo se analizan implemen aciones que em-
plean pa a el c´
alculo de los il os Beam o me : una sola CPU empleando la lib e ´
ıa LAPACK, a ias CPU’s
empleando la lib e ´
ıa PLASMA y, po ´
ul imo, con una CPU y la GPU con LAPACK y CUBLAS conjun a-
men e.
4.3.2. Implemen aci´
on
En las implemen aciones ealizadas enemos el ec o Xmic o, que es el ec o que nos p opo ciona
las se˜
nales cap u adas po los mic ´
o onos. A pa i de los da os con enidos en el ec o Xmic o, gene a-
mos la ma iz X(EQ 4.5), la cual a a se el pun o de pa ida pa a calcula los il os beam o me pa a
cada se˜
nal que se quie a sepa a . Seguidamen e enemos las ma ices H,ZyA, donde Hes la ma iz del
canal. Exis e una po cada al a oz (se˜
nal) que se emi a en el sis ema. La ma iz Zes la ma iz esul ado
de esol e el sis ema de ecuaciones con m´
ul iples ec o es independien es (EQ 4.7), siendo Rla QR de
ma ixX. La ma iz Aes el p oduc o ZTZ=A. Pa a inaliza , enemos los ec o es u,byg, siendo uun
ec o que iene ce os en odas sus componen es menos en la componen e Lg+ 1 que ale uno. El ec o
bes el ec o esul ado de esol e dos sis emas de ecuaciones lineales, EQ 4.9 yEQ4.10. El ec o g,
po su pa e, con iene los il os beam o me y hay an os ec o es gcomo se˜
nales engamos que sepa a .
Es os ec o es se calculan en median e la EQ 4.11.
Pa a ob ene el m´
aximo endimien o en el c´
alculo de los il os beam o me , se ha ap o echado el
hecho que di e encia el ipo de almacenamien o de los da os que hacen el lenguaje C y el lenguaje
Fo an, que es el que se emplea en las lib e ´
ıas LAPACK y BLAS. Manejando adecuadamen e el ipo de
almacenamien o hemos e i amos ene que aspone las ma ices XyZa la ho a de calcula la QR de las
mismas. Es o se consigue cons uyendo la ma iz Xdi ec amen e aspues a. Po o o lado, ambi´
en se
4.3. CONFIGURACI´
ON DEL SISTEMA E IMPLEMENTACI´
ON 37
Algo i mo 4.1 Realiza el cocien e de la a´
ız de k con cada uno de los alo es de Xmic o a u iliza en la ma iz X
equie e: ∗Xmic o,Lx,MICROS,Nda os
asegu a : ∗Xmic o
1: loa i aizk=1.0 sq (k);
2: loa *pXmic o = Xmic o;
3: o (i=0; i<MICROS; i++){
4: o (j=0; j<Nda os; j++){
5: pXmic o[j] *= i aizk;
6: }
7: pXmic o += Lx;
8: }
Algo i mo 4.2 Cons ui la aspues a de la ma iz X con los da os de Xmic o
equie e: ∗X,∗Xmic o,Lx,MICROS,Nda os,Lg
asegu a : ∗X
1: loa *pXmic o = Xmic o+Lg-1;
2: loa *pma ixX = ma ixX;
3: o (i=0; i<MICROS; i++){
4: loa *pXmic oaux = pXmic o;
5: o ( =0; <Lg; ++){
6: o (j=0; j<K; j++){
7: *pma ixX = *(pXmic oaux+j);
8: *pma ixX++;
9: }
10: pXmic oaux--;
11: }
12: pXmic o += lx;
13: }
debe ene almacenada la ma iz Hpo columnas, ya que Zse o ma a pa i de es as dos. En de ini i a,
hemos comenzado la op imizaci´
on del algo i mo po la base: ene un acceso e icien e a memo ia. A
con inuaci´
on desg ana emos paso a paso las dis in as implemen aciones ealizadas pa a el c´
alculo de los
il os beam o me en los algo i mos siguien es.
En el Algo i mo 4.1 se calcula el cocien e en e los alo es de los da os cap u ados po los mic ´
o onos
y la a´
ız de la a iable K. Se calcula la in e sa de la a´
ız de Kpa a as´
ı emplea mul iplicaciones en
ez de cocien es. Es o es debido a que las p ime as ienen un cos e compu acional meno . Se calculan
´
unicamen e los K+Lgp ime os da os de cada mic ´
o ono en caso de no se i e a i o el algo i mo, y
se le a˜
nade al alo an e io el p oduc o del n´
ume o de epe iciones del algo i mo po el alo de las
nue as mues as (solapamien o) que se p ocesan po i e aci´
on, es deci , K+Lg +NF ames ∗o e Lap.
A es e alo lo llamamos Nda os. Es e c´
alculo se ealiza en una unci´
on independien e debido a que,
a la ho a de o ma la ma iz X, se epi e a ias eces el mismo alo , po lo que se gana en e iciencia
al calcula los una ´
unica ez. El alo de la a iable Lx es el cocien e en e el ama˜
no de Xmic o y el
n´
ume o de mic ´
o onos MICROS.
Una ez ya enemos los da os de la ma iz Xmic o calculados co ec amen e, se p ocede a la cons uc-
ci´
on de la ma iz Xcon dichos alo es y, como hemos comen ado con an e io idad, dicha cons ucci´
on se
ealiza ´
a con la conside aci´
on de que la ma iz debe se aspues a an es de emplea la. Es o se mues a
en el Algo i mo 4.2.
El Algo i mo 4.3 mues a una unci´
on auxilia que si e pa a copia de o ma in e ida los elemen os
de un ec o en o o. Es os ec o es in e idos son de un ama˜
no dado po un in e alo, po lo que se
in ie en los da os que componen cada in e alo po sepa ado.
Pa a inaliza con el apa ado de implemen aci´
on, se mues an los algo i mos enca gados del c´
alculo
de los il os beam o me , la descomposici´
on QR de las ma ices que lo equie an, y la modi icaci´
on pa a
44 CAP´
ITULO 4. BEAMFORMER

Cap´
ı ulo 5
Conclusiones y abajo u u o
ENes a esis de m´
as e se han a ado dos p oblemas del p ocesado de se˜
nales digi ales ac´
us icas.
Ambos p oblemas, aunque di e en es, ienen en com´
un su impo ancia en la b´
usqueda de un mejo
ambien e sono o, pe o ambi´
en el disposi i o sob e el que se ha abajado.
Po un lado, se han implemen ado y es udiado es es uc u as de il ado (FIR, IIR y PIIR) pa a
se˜
nales digi ales. Las ope aciones de il ado son b´
asicas, es deci , ope aciones a i m´
e icas esenciales ea-
lizadas sob e ec o es de mayo o meno dimensi´
on. Pa a ealiza es as ope aciones de mane a e icien e
hemos u ilizado las ins ucciones in ´
ınsecas NEON de los p ocesado es ARM. Los esul ados compa a i-
os en e la au o ec o izaci´
on po pa e del compilado gcc y las implemen aciones ealizadas emplean-
do ins ucciones NEON mues an una g an mejo a en la implemen aci´
on u ilizando expl´
ıci amen e el
uso de las ins ucciones NEON en e a la au o ec o izaci´
on que p opo ciona el compilado . Es a mejo a
es impo an e, llegando a se en a ios casos supe io a 4 eces el iempo de la e si´
on au o ec o izada.
Es o iene que e con el hecho de que la au o ec o izaci´
on p opo cionada po el compilado gcc no
o ece una buena ganancia con espec o a la e si´
on no ec o izada. Nues a implemen aci´
on pe mi e su
u ilizaci´
on en iempo eal. Po ejemplo, se pueden aplica ap oximadamen e 125 il os IIRI y 260 FIR
pa a un n´
ume o de coe icien es de il o de 256 y con el ipo de da os INT16 an es de que es ´
e disponible
el siguien e ame de da os de en ada a p ocesa . Adem´
as, se mues a en los c´
odigos desa ollados que
el ipo de da os INT16 es m´
as e icien e que el ipo de da os FLO32, es o es debido a que el cos e compu-
acional de una ope aci´
on con n´
ume os eales es m´
as cos osa que una ope aci´
on con n´
ume os en e os.
A eno de es os esul ados, se pod ´
ıa conclui que es mejo emplea el ipo de da os INT16, siemp e y
cuando la p ecisi´
on en los c´
alculos nos lo pe mi a. Es o es as´
ı, no solo po que es m´
as e icien e en cuan o
a cos e compu acional que el ipo de da os FLO32, si no ambi´
en po que es el ipo de da os gen´
e ico pa a
o ma os de audio digi al como los CD’s de m´
usica.
Po o a pa e, se han desa ollado a ias implemen aciones del Algo i mo LCMV pa a el c´
alculo de
il os Beam o me . Es e caso es di e en e ya que las ope aciones que in oluc a el algo i mo son de m´
as
al o ni el, es deci , ope aciones de ´
algeb a lineal num´
e ica sob e ma ices (descomposiciones ma iciales,
esoluci´
on de sis emas lineales, e c.). En es e caso, lo ap opiado e a acudi a la u ilizaci´
on de lib e ´
ıas que
esuel en es e ipo de p oblemas de mane a e icien e sob e a qui ec u as pa ecidas basadas en mul ico e
y manyco e. Es o ha enido una implicaci´
on na u al en el abajo consis en e en la ins alaci´
on, adap aci´
on
y comp obaci´
on de las lib e ´
ıas sob e la m´
aquina obje o de es udio. La “inmadu ez” del disposi i o y,
especialmen e, de su so wa e, ha supues o un abajo de in es igaci´
on a˜
nadido nada desp eciable, pe o
ha pe mi ido, al mismo iempo, ob ene un buen endimien o de es e no edoso disposi i o en lo que se
e ie e a la soluci´
on de es e ipo de p oblemas. En pa icula , hemos comenzado po ealiza un es udio
del cos e compu acional de cada una de las pa es de las que se compone el algo i mo. Hemos concluido
que una g an pa e del cos e compu acional del algo i mo iene dado po el c´
alculo de las ac o izaciones
QR ma iciales p e ias a la esoluci´
on de los sis emas de ecuaciones lineales subsiguien es. En conc e o,
la ac o izaci´
on QR de la ma iz Xes la que mayo cos e iene, es ando es e cos e comp endido en e
un 60 % y un 70 % del cos e o al del algo i mo pa a un c´
alculo de dos il os Beam o me (g1yg2).
En is a de es os esul ados se han implemen an di e en es es a egias pa a calcula e icien emen e las
ac o izaciones QR, u ilizando los dis in os ecu sos compu acionales del NVIDIA Je son. Se concluye, a
45
46 CAP´
ITULO 5. CONCLUSIONES Y TRABAJO FUTURO
a´
ız de los iempos omados, que lo m´
as e icien e es emplea la lib e ´
ıa PLASMA que dispond ´
a de los
cua o n´
ucleos compu acionales ARM pa a calcula la.
En elaci´
on al Cap´
ı ulo 3y como l´
ınea u u a de in es igaci´
on, se pod ´
ıa es udia la con eniencia
de emplea el ipo de da os INT16 oFLO32 en a ias aplicaciones eales con di e en es equisi os de
p ecisi´
on y iempo compu acional, pa a pode conclui con una aplicaci´
on eal que ipo de da os es m´
as
con enien e y mos a esul ados conc e os pa a es as aplicaciones.
Con espec o al p oblema a ado en el Cap´
ı ulo 4, cabe deci que una de las a eas pendien es de
ealiza en es e apa ado es el ealiza un algo i mo que emplee odos los n´
ucleos compu acionales
disponibles, es deci , las cua o CPU’s ARM y la GPU Keple . Es o lo consegui emos conjugando el calculo
de las QR con PLASMA y el c´
alculo de la u ina la b en GPU; dicha implemen aci´
on no ha podido se
incluida en es a memo ia po al a de iempo, pe o ya se es a abajando en ella y en u u os abajos se
mos a an los esul ados. Adem´
as, como u u a l´
ınea de in es igaci´
on, se pod ´
ıa p opone un algo i mo
colabo a i o en e di e en es Je son que in e cambien in o maci´
on empleando el es ´
anda de in e cambio
de mensajes MPI, de al modo que los Je son colabo en en e si in e cambiando pa e de la in o maci´
on
p ocesada pa a mejo a la calidad y/o el iempo de p ocesado pa a la sepa aci´
on de la se˜
nal que se
quie e.
Bibliog a ´
ıa
[1] ARM NEON, www.a m.com/, (accessed 2015 Feb ua y 23).
[2] M. FLYNN,Some Compu e O ganiza ions and Thei E ec i eness, IEEE T ans. Compu C-21 (1972)
948–960.
[3] INTEL SSE, h ps://so wa e.in el.com/si es/landingpage/In insicsGuide/, (accessed
2015 Sep embe 17).
[4] J. R¨
AMO, V. V¨
ALIM¨
AKI AND BAL´
AZS BANK,High-P ecision Pa allel G aphic Equalize , IEEE T ansac-
ions on Audio, Speech and Language P ocessing 22 (2014) 1894–1904.
[5] J.C. RISSET,Compu e Music Expe imen s 1964, Compu e Music J. 22 (1985) 11–18.
[6] Y. HUANG, J. CHEN AND J. BENESTY,Inme se Audio Schemes, IEEE Signal P ocessing Magazine 28
(2011) 20–32.
[7] J. LORENTE, G. PI˜
NERO, A.M. VIDAL, J.A. BELLOCH AND ALBERTO GONZ´
ALEZ,19 h Eu opean Signal
P ocesing Con e ence, Pa allel Implemen a ions o Beam o ming Design and Fil e ing o Mic ophone
A ay Applica ions (29 Augus - 02 sep embe 2011).
[8] NVIDIA JETSON TK1, h ps://de elope .n idia.com/je son- k1/, (accessed 2015 Feb ua y
10).
[9] CUDA, h p://www.n idia.es/objec /cuda-pa allel-compu ing-es.h ml, (accessed 2015
Sep embe 17).
[10] BLAS Lib a y, h p://www.ne lib.o g/blas/, (accessed 2015 Feb ua y 15).
[11] LAPACK Lib a y, h p://www.ne lib.o g/lapack/, (accessed 2015 Feb ua y 15).
[12] ATLAS Lib a y, h p://ma h-a las.sou ce o ge.ne /, (accessed 2015 Feb ua y 15).
[13] PLASMA Lib a y, h p://icl.cs.u k.edu/plasma/, (accessed 2015 Ma ch 15).
[14] CUBLAS Lib a y, h p://docs.n idia.com/cuda/cublas/, (accessed 2015 Ap il 25).
[15] N idia Je son Quick S a Guide, h p://de elope .download.n idia.com/embedded/je son/
TK1/docs/2_Ge S a /Jes on_TK1_Use _Guide.pd , (accessed 2015 Sep embe 04).
[16] A. V. OPPENHEIM, A. S. WILLSKY,AND S. HAMID Signals and sys ems, P ocessing se ies. P en ice
Hall, 2nd edi ion, 1997.
[17] L. R. RABINER AND B. GOLD,Theo y and Applica ion o Digi al Signal P ocessing P en ice-Hall,
Englewood Cli s, New Je sey, USA, 1975.
[18] ARM NEON in insics, gcc.gnu.o g/onlinedocs/gcc-4.4.1/gcc/ARM-NEON-In insics.h ml,
(accessed 2015 July 12).
47
48 BIBLIOGRAF´
IA
[19] Ad anced Linux Sound A chi ec u e (ALSA), www.alsa-p ojec .o g/, (accessed 2015 Janua y
08).
[20] S einbe g Media Technologies GmbH, www.s einbe g.ne /, (accessed 2015 Aug. 14).
[21] S. B. HOLGERSSON,Op imising IIR il e s using ARM NEON, Mas e Thesis o Uni e si y o Danema k
(2012).
[22] ARM NEON au o- ec o iza ion, gcc.gnu.o g/onlinedocs/gcc/ARM-Op ions.h ml, (accessed
2015 July 22).
[23] D. THEODOROPOULOS, G. KUZMANOV AND G. GAYDADJIEV,Mul i-co e Pla o ms o Beam o ming
and Wa e Field Syn hesis IEEE T ansac ions on Mul imedia 99 (2010).
[24] Sou ce DGEQRF.c, h p://www.ne lib.o g/clapack/CLAPACK-3.1.1/SRC/dgeq .c, (accessed
2015 Sep embe 18).
[25] Sou ce DLARFT.c, h p://www.ne lib.o g/clapack/CLAPACK-3.1.1/SRC/dla .c, (accessed
2015 Sep embe 18).
[26] Sou ce DLARFB.c, h p://www.ne lib.o g/clapack/CLAPACK-3.1.1/SRC/dla b.c, (accessed
2015 Sep embe 18).
[27] QUARK Lib a y, h p://icl.cs.u k.edu/qua k/, (accessed 2015 Sep embe 18).
[28] QR ac o i a ion PLASMA, h p://www.ne lib.o g/lapack/lawnspd /lawn222.pd , (accessed
2015 Sep embe 18).
[29] QR ac o i a ion MAGMA, h p://www.ne lib.o g/lapack/lawnspd /lawn233.pd , (accessed
2015 Sep embe 18).