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).