scieee Open visual document viewer

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

Alventosa Rueda, Francisco Javier

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

Full text

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