Algoritos o sistólicos para la ultiplicació de atrices e FPGA s Algoritos o sistólicos para la ultiplicació de atrices e FPGA s Igacio Bravo, Pedro Jiéez, Mauel Mazo, José Luis Lázaro, J. Javier de las Heras Departaeto de Electróica. Uiversidad de Alcalá Capus Uiversitario. Ctra. Madrid Barceloa k.600. 8871 Alcalá de Heares (Madrid http://www.depeca.uah.es ibravo@depeca.uah.es Resue. Este trabajo evalúa diferetes algoritos de ultiplicació de atrices para FPGA s (Field Prograable Gate Array. Esta operació es uy habitual e uerosos algoritos de procesado de señales e iágees, por lo que su ábito de actuació es uy diverso. Detro de este aálisis o se recoge los basados e arquitecturas sistólicas ya que éstas cosue u elevado úero de ultiplicadores, siedo iviable su epleo para aplicacioes co taaño de atrices grades. 1. Itroducció La ultiplicació de atrices (M.M., es ua operació cada vez es ás habitual e uerosos algoritos de diferetes áreas de la igeiería. Por ejeplo, e el área de visió artificial cada iage equivale a ua atriz. Si ebargo, o sólo se cetra su ábito e esta área, sio que tabié e el procesaieto de señales tabié su uso es uy habitual. Noralete la M.M. lleva asociada u alto úero de operacioes aritéticas, por lo que hasta hace poco era iviable su ipleetació e u dispositivo recofigurable. Uo de los probleas pricipales, era la dificultad de ipleetar u ultiplicador hardware. Si ebargo, hoy e día las uevas failias de FPGA s posee hasta 00 ultiplicadores hw [1] []. Co este úero de recursos, es factible la ipleetació de ua arquitectura sistólica para la ipleetació de M.M. []. E la Figura 1 se uestra ua arquitectura sistólica clásica de M.M., dode se dispoe de u iterface para gestioar los datos de ua atriz de etrada A (iterface filas y de ua atriz de etrada B (iterface coluas. E este tipo de algoritos el úero de ultiplicadores suele coicidir co el taaño de la atriz a aejar, por lo que si las atrices a tratar posee taaños superiores al úero de ultiplicadores, se hace iviable su ipleetació. E el caso de M.M. e visió artificial, el taaño habitual de iágees aejados actualete (66, 11 ó 1010 píeles hace iviable el epleo de arquitecturas sistólicas. Esta causa justifica la búsqueda de alterativas para la M.M. e FPGA s. Por tato, a la hora de aejar taaños de atrices grades, es iposible ipleetar algoritos que cofore ua arquitectura puraete sistólica y por cosiguiete ua ejecució totalete e paralelo []. Por ello, el objetivo será ecotrar u algorito de M.M., dode el úero de recursos iteros sea suficiete y dode la ejecució de dicho algorito eplote al áio las posibilidades de cocurrecia e las FPGA s. El resto del artículo se divide de la siguiete fora: A cotiuació se describe las características de la M.M. para su paralelizació. El siguiete apartado describe el algorito clásico de M.M., para a cotiuació evaluar el algorito de Wiograd, Strasse y particioado de atrices. El artículo fializa co u apartado de resultados obteidos e diferetes pruebas así coo las coclusioes derivadas de este trabajo.. Paralelizació de los algoritos de ultiplicació. La M.M. tiee características uy específicas e lo que se refiere al diseño e ipleetació de u algorito paralelo: Cada eleeto c i,j de la atriz resultado (C, e pricipio es idepediete de todos los deás eleetos. Esto es suaete útil dado que perite u aplio grado de FPGAs: Metodologías, herraietas y aplicacioes Editores: Jua A. Góez Pulido, Jua M. Sáchez Pérez, Miguel A. Vega Rodríguez - Uiversidad de Etreadura ISBN-10: 8-611-11- ISBN-1: 978-8-611-11-9 Pág. 86
Algoritos o sistólicos para la ultiplicació de atrices e FPGA s fleibilidad e lo referete a la paralelizació. La catidad y el tipo de operacioes a realizar, es idepediete de los datos isos. Regularidad de la orgaizació de los datos y de las operacioes que se realiza sobre los datos: los datos está orgaizados e estructuras bidiesioales (las atrices isas y las operacioes so básicas (ultiplicació y sua. Figura 1. INTERFACE FILAS INTERFACE COLUMNA b i,j a i,j b i+1,j a i,j+1. b -1,j a i,-1 b,j a i, Sistea sistólico de M.M.. + + c i,j + MEMORIA La priera característica hace que la M.M. sea especialete apropiada para sisteas ultiprocesadores, dode u cojuto de eleetos de procesaieto, coparte ua isa eoria. Los algoritos paralelos para ultiprocesadores suele seguir las ideas básicas de descoposició o divisió de los datos a calcular. Las últias dos características hace que los algoritos propuestos para la M.M. e paralelo siga el odelo de cóputo paralelo SPMD (Sigle Progra Multiple Data, e el que u iso prograa se ejecuta e cada procesador de aera idepediete y evetualete se sicroiza y/o couica co los deás procesadores. E geeral, los algoritos se puede adaptar de ua aera ás o eos copleja a cada ua de las arquitecturas de procesaieto paralelo dispoibles. Por tato, e fució de la platafora hardware dode se ipleete el sistea de M.M., será ecesario realizar u algorito diferete. Eiste uerosas alterativas para eplotar las características ateriores (ver Tabla 1. E este trabajo sólo os cetrareos e tres de ellas: Wiograd, Strasse y particioado de atrices. Tabla 1. Método de ultiplicació de atrices Particioado directo Divide & Coquer recursivo Arrays sistólicos Cao Fo Resue algoritos M.M. e paralelo. Características ás iportates Varias uidades de procesado, dode cada uidad calcula ua parte de la atriz resultado. Probleas co los accesos a eoria copartida. Multiplicació ediate subatrices. Llaadas recursivas para la obteció de resultados. Aueto del taaño de eoria requerido. Array de procesadores de dos diesioes. Distribució siple de los cálculos detro del array. Requeriietos de eoria iguales para todos los procesadores. Arquitectura sistólica realietada. Distribució iicial de eleetos de etrada. Miiizació de los tiepos de ejecució. Siilar al de Cao. Mecaisos de broadcast por filas. Mayor requeriieto de eoria. Algorito clásico de ultiplicació de atrices A la hora de ultiplicar dos atrices iiciales A y B, de taaños l y l respectivaete (ver (1, ua fora uy secilla de obteer el producto de abas es acorde a la epresió (, deoiado a este étodo coo clásico. C = A l Bl (1 l i = 1... ( ci, j = ai, k bk, j j = 1... l La arquitectura hw asociada es bastate eleetal, presetádose e la Figura ua posible solució. E ésta se observa coo co u úico ultiplicador y u acuulador se cosigue ipleetar la epresió (. Obviaete el epleo de u úero reducido de recursos colleva u icreeto e el tiepo de ejecució, presetádose e ( el tiepo total de ejecució de esta alterativa (T EE. FPGAs: Metodologías, herraietas y aplicacioes Editores: Jua A. Góez Pulido, Jua M. Sáchez Pérez, Miguel A. Vega Rodríguez - Uiversidad de Etreadura ISBN-10: 8-611-11- ISBN-1: 978-8-611-11-9 Pág. 87
Algoritos o sistólicos para la ultiplicació de atrices e FPGA s MeA Aij Bjk Multiplier Accuulator Este úero de operacioes usualete se deoia coo coplejidad de la M.M. y deteria el tiepo de ejecució ecesario para ser resuelto. E este coteto, tabié lo usual es ecotrar que la M.M. sea O(, efatizado el tério doiate e la ecuació aterior. MeB. Algorito de Wiograd Figura. DATA_IN_A DATA_IN_B WRITE_A Figura. WRITE_B Cotrol MEM_IN ADDR_A ADDR_B Diagraa de bloques del sistea de ultiplicació clásico de atrices. DATA_OUT_A DATA_OUT_B BLOCK_D EN_MUL ALFA DATA_OUT MEM_ALFA BETA RESET_ACU FSM DATA_OUT MEM_BETA WR_ALFA DATA_OUT Diagraa de bloques del sistea de M.M. ediate el algorito de Wiograd. TE = l TMULT + l 1 TACC ( ( TEE = ( p T E ( dode, l y p so los ragos de las atrices A y B (ver (1, T E es el tiepo de ejecució de u eleeto de la atriz de salida, T MULT el tiepo de ua ultiplicació y T ACC el tiepo que tarda e ejecutarse la acuulació. Otra fora habitual de evaluar u algorito, es e fució del úero de operacioes aritéticas realizadas (véase (. OPS = ( r ( Particularizado para el caso de atrices cuadradas (que será la situació a evaluar e el resto de algoritos de orde, la epresió ( se trasfora e (6. = (6 OPS WR_BETA ADDR_ALFA ADDR_BETA El étodo clásico de M.M. posee coo pricipal problea el elevado úero de operacioes aritéticas a realizar. Wiograd [6] propuso que el cálculo de los eleetos de la atriz producto fial (c i,, se realizase e base a (7. c = d α β i,j = 1... (7 ij ij i j dij = ( ai,k + bk, ( ai,k + bk, αi = ( ai,k ai,k β j = ( bk, j bk, La pricipal vetaja de este algorito frete al clásico, es que el cálculo α y β sólo se realiza ua vez. Esto reduce a la itad el úero de ultiplicacioes requeridas, e coparació co las utilizadas e el étodo clásico. El gra icoveiete de este algorito, es su fuerte estructura secuecial, siedo uy coplicado coseguir algú tipo de paraleliso ya que es ecesario esperar a teer todos los eleetos de las atrices de etrada, para epezar a procesarlos. Adeás, el cálculo de d sólo se puede realizar si se tiee calculados los α y β correspodietes. A su vez, los eleetos de C o puede ser calculados hasta que o se tega los eleetos d. La úica fase dode se ha optiizado el procesado y por tato alcazado u grado de paraleliso pleo, ha sido e la del cálculo de α y β. El esquea geeral del sistea copleto se ha dividido e varios ódulos fucioales tal y coo se puede apreciar e la Figura. Por otra parte, los tiepos de ejecució de este algorito, se uestra e (8. TEE = TMEM + LMEMαβ + Tαβ + Lαβ _ dc + TdC (8 T L MEM MEMαβ = T = T ; Tαβ = 8 T L αβ _ dc ; T = 8 T dc = T dode T EE es el tiepo total, T MEM es el tiepo de escritura de los datos de etrada e la eoria, L MEMαβ es ua latecia para sicroizar FPGAs: Metodologías, herraietas y aplicacioes Editores: Jua A. Góez Pulido, Jua M. Sáchez Pérez, Miguel A. Vega Rodríguez - Uiversidad de Etreadura ISBN-10: 8-611-11- ISBN-1: 978-8-611-11-9 Pág. 88
Algoritos o sistólicos para la ultiplicació de atrices e FPGA s la escritura de datos e la eoria de etrada y el cálculo de α, β, T αβ es el tiepo cosuido por los bloques α y β, L αβ_dc es la latecia etre la geeració de los coeficietes α y β y la siguiete etapa y fialete T dc es el tiepo de ejecució de los bloques d y C.. Algorito de Strasse Este algorito propuesto por Strasse e 1969 [7], basa todo su fucioaieto e la descoposició de ua atriz de eleetos, e subatrices de eleetos. Así, ediate este algorito se reduce el úero de ultiplicacioes a.81. Para eplicar su fucioaieto, partaos de dos atrices iiciales de eleetos (A, B, siedo C la atriz resultate (ver (9. Los resultados parciales de ultiplicar cada ua de estas epresioes (S p, se puede epresar e fució de los eleetos de A y B (ver (10. C = A B (9 c11 c1 a11 a1 b11 b1 = c1 c a1 a1 b1 b1 S1 = ( a11 + a ( b11 + b (10 S = ( a1 + a b11; S = a11 ( b1 b S = a ( b1 b11; S = ( a11 + a1 b S6 = ( a1 a11 ( b11 + b1 S7 = ( a1 a ( b1 + b Así, cada uo de los eleetos que fora la atriz C se puede epresar coo: c11 = S1 + S S + S7 c1 = S + S (11 c1 = S + S c = S1 S + S + S6 A la hora de aejar atrices ayores de eiste básicaete dos variates: Botto-up: Para ultiplicar dos atrices de orde (= p dode p>1, se divide éstas e bloques de taaño q (q<p. Así, se obtiee ua atriz de taaño, dode = p-q. E la ultiplicació de los bloques de (algorito etero, se utiliza el étodo clásico, ietras que e la ultiplicació de las atrices parciales de q q (algorito itero, se eplea el de Strasse. Top-dow: Esta propuesta utiliza el étodo de Strasse coo algorito etero y el clásico coo itero. E [8] y [9] se propoe ua alterativa e dode el étodo clásico es sustituido por el algorito de Wiograd, alcazado u úero de ultiplicacioes igual a 0.7. La alterativa Botto-up es iviable detro de ua FPGA, ya que el úero de recursos iteros a utilizar es bastate elevado por lo que se epleará la seguda alterativa. E [9] se propoe ua variate de ésta (ver (1, que perite geerar coeficietes de salida si ecesidad de leer copletaete las atrices de etrada. Para ello, los térios etre parétesis de (10 so sustituidos por las variables α y β cuyo valor se uestra e (1. 1 1 1 (1 S ij = β S ij = α ik bk, S ij = ai, k β S ij = a i,k β S ij = bk, j 6 S ij = α ik β 7 S ij = α β ik 1 = ( ai, k + ai,k = ( ai,k + ai,k = ( ai, k + ai, k = ( ai,k ai, k = ( ai, k ai,k 1 β = ( bk, + bk, β = ( bk, j bk, β = ( bk, bk, β = ( bk, + bk, β = ( bk, bk, (1 TEE = ( T + ( T (1 La Figura uestra la propuesta de este algorito, cuyo diseño se ha realizado e VHDL. E ella se puede idetificar cada uo de los bloques que cofora el algorito, así coo ua eoria de etrada FIFO de doble puerto. Ua áquia de estados (FSM, se ecargará de sicroizar todo el sistea. La ipleetació del sistea de la Figura, tarda e ejecutarse la epresió ostrada e (1. FPGAs: Metodologías, herraietas y aplicacioes Editores: Jua A. Góez Pulido, Jua M. Sáchez Pérez, Miguel A. Vega Rodríguez - Uiversidad de Etreadura ISBN-10: 8-611-11- ISBN-1: 978-8-611-11-9 Pág. 89
Algoritos o sistólicos para la ultiplicació de atrices e FPGA s 6. Algorito de particioado de atrices. Derivado de la propuesta de Strasse, otra líea epleada para ultiplicar atrices es la basada e la descoposició de las atrices iiciales e subatrices de eleetos. La pricipal cualidad de este sistea es el epleo de u bloque ultiplicador de atrices de taaño. E [10] se preseta u sistea capaz de realizar dicha alterativa pero aplicada al producto de ua atriz por u vector. acuulació. El epleo de ultipleores perite reducir de 8 a el úero de ultiplicadores. Para la optiizació del tiepo de ejecució de esta alterativa, se ha segetado su fucioaieto e u pipelie de etapas (ultiplicació, acceso a eoria y sua. Así, el tiepo de ejecució total (T EE se uestra e (17, dode T MULT es el tiepo cosuido e la ultiplicació, T ADD el tiepo de sua y T MEM el tiepo de acceso a eoria. b b k+1j MATRI A MATRI B DataA DataB FSM FIFO A1 A B1 B EN WRRD EN EN EN EN EN EN EN EN ALPHA + BETHA alpha[1:] betha[1:] D_reg alpha1 alpha alpha alpha alpha betha1 betha betha betha betha D_reg S1 MODULE C S EN S S[1:7] S 7 S S6 S7 DOUT EN a ik a ik+1 a i+1k a i+1k+1 M U M U MU c ik c ik+1 c i+1k c i+1k+1 Figura. Diagraa de bloques del algorito de Strasse. La propuesta realizada se basa e el siguiete fucioaieto: deoiareos coo C a la atriz de salida cuyos valores a su vez puede ser agrupados e subatrices de eleetos (ver (1. Cada ua de las subatrices que fora C se obtedrá ediate el producto y sua de subatrices de A (A i,k y B (B k, (ver (16. C C... C (1 1,1 1, 1, c1,1 c1,... c1, c,1,,1c,... c C C... C, = =, C...... c,1c,... c1, C C... C,1,, c( i,( c( i, j Ci, j = = Aik B i, j = 1... c i,( j 1 c i, j TEE = ( TMEM + TMULT + TADD + 1 T (16 (17 E base a esto se ha diseñado u sistea que realiza la ultiplicació de subatrices de eleetos, cuya estructura itera se uestra e la Figura. Básicaete, está forada por ultiplicadores hw y uidades de sua y Figura. b k+1j MU b k+1j+1 Diagraa de bloques de u ultiplicador de subatrices de eleetos. Ua vetaja de esta alterativa es la ipleetació de varias uidades peritiedo así la geeració de varios datos de salida siultáeos. Otra alterativa eficaz a partir del circuito de la Figura sería la costrucció de uidades M.M. ayores, por ejeplo. 7. Resultados Las tres alterativas ha sido ipleetadas e VHDL sobre ua FPGA V00fg6- y se ha siulado teporalete. E todos los casos las atrices que se ha probado so atrices cuadradas y se ha realizado últiples pruebas co diferetes taaños, epleado e todos los casos ua frecuecia de reloj de la FPGA de 0 MHz. Se ha siulado los tres algoritos para atrices de etrada de 88,, 66, 1818, 66 y 11, co datos de 16 bits. El resultado teporal se puede observar e la Figura 6 y 7. Se verifica que la alterativa de FPGAs: Metodologías, herraietas y aplicacioes Editores: Jua A. Góez Pulido, Jua M. Sáchez Pérez, Miguel A. Vega Rodríguez - Uiversidad de Etreadura ISBN-10: 8-611-11- ISBN-1: 978-8-611-11-9 Pág. 90
Algoritos o sistólicos para la ultiplicació de atrices e FPGA s divisió o partició de las atrices es la ás rápida y la que ejores resultados preseta desde el puto de vista de recursos cosuidos. A edida que el taaño de las atrices de etrada aueta, este algorito acetúa sus resultados. El tiepo epleado por el algorito de Strasse y el de particioado, es el iso, si ebargo el úero de recursos cosuidos es casi el doble. Tie [s] Figura 6. Slices 10000 1000 100 1000 800 600 00 00 100 0 10 7 Tiepo de ejecució de la FPGA para los algoritos evaluados, co diferetes taaños de atrices. Figura 7. Recursos iteros de la FPGA cosuidos por los algoritos evaluados, para diferetes taaños de atrices. 8. Coclusioes 1 0,1 0,01 0,001 Eecutio ties Wiograd Divisio Strasse 88 66 66 11 Matri size Resources [Slices] Wiograd Divisio Strasse 89 1 9 98 8 81 Este trabajo ha evaluado tres algoritos de M.M., dode se ha itetado ipleetar arquitecturas que fucioe e paralelo. Si ebargo, sólo e el algorito de Strasse y particioado de atrices se ha alcazado altos iveles de cocurrecia. El algorito de divisió de atrices es el que ejores resultados ofrece, tato por el tiepo de ejecució coo por recursos cosuidos. Por otro lado, los tiepos de ejecució e los algoritos evaluados so superiores a los que eplearía arquitecturas sistólicas. Si ebargo, este tipo de 87 61 8 90 70 88 66 66 11 Matri size 980 arquitecturas o puede ipleetarse e las FPGA s actuales cuado el taaño de las atrices de etrada so superiores a 00, debido al úero de ultiplicadores iteros. Así, si se quiere aejar e FPGA s atrices superiores, hay que usar otros algoritos, o ta cocurretes coo los sistólicos. Esta ha sido la razó por la que e este trabajo se ha evaluado diferetes algoritos de ultiplicació o sistólicos. Agradeciietos Este trabajo ha sido posible gracias al proyecto Sistea de localizació y posicioaieto absoluto de robots. Desarrollo de u espacio iteligete del Miisterio de Ciecia y Tecología (ref: DPI00-0067. Referecias [1] Ipleetig Multipliers i FPGA Devices http://www.altera.co/products/devices/cycl oe/features/ultipliers/cy- ultipliers.htl [] Desigig High-Perforace Meories ad Multipliers. cell Joural Q-001. [] Jagadish, H.V., Kailath, T.K., A faily of ew efficiet arrays for Matri, IEEE Tras. o Coput., vol. 8, No. 1, pp 19-1. 1989 [] Choi, S., Prassaa, V.K., Tie ad Eergy Efficiet Matri Factorizatio usig FPGA s. Proc. Field Prograable Logic ad Applicatios (FPL, pp. -, 00. [] Modi J.J., Parallel Algoriths ad Matri Coputatio, Claredo Press Oford. 1998. [6] Wiograd, S. A ew algorith for ier product. IEEE Tras. Coput., C-18, 69-69. 1968. [7] Strasse V. Gaussia eliiatio is ot optial. Nu. Math. Vol. 1, pp.-6, 1969 [8] Elfiova L.D., Kapitoova Y. V. A fast algorith for atri ultiplicatio ad its efficiet realizatio o systolic arrays. Cyberetics ad Systes Aalysis, Vol. 7, pp. 109-11, 001. [9] Jelfiova L., A ew fast parallel versio of Strasse Matri Multiplicactio Algorith ad its efficiet ipleetatio o Systolic-Type Arrays. Proc. of rd It. Coferece o Massively Parallel Coputig Systes 1998. [10] Besaali F., Aira A., Bouridae A. A FPGA Based Coprocessor for Large Matri Product Ipleetatio. IEEE It. Cof. o Field- Prograable Tech. (FPT'0, pp. 9-9, 00. FPGAs: Metodologías, herraietas y aplicacioes Editores: Jua A. Góez Pulido, Jua M. Sáchez Pérez, Miguel A. Vega Rodríguez - Uiversidad de Etreadura ISBN-10: 8-611-11- ISBN-1: 978-8-611-11-9 Pág. 91