T abajo Fin de G ado en G ado de Ingenie ía de Compu ado es
E aluación del endimien o de un plani icado de a eas sob e una
pla a o ma he e ogénea ARM+DSP de Texas Ins umen s
Realizado po
Be múdez Blanco, Ja ie
Di ec o
Igual Peña, F ancisco Daniel
T abajo Fin de G ado en Ingenie ía de Compu ado es
Au o ización de di usión
El abajo i man e Ja ie Be múdez Blanco, alumno en el G ado de Ingenie ía de Compu ado es,
au o iza a la Uni e sidad Complu ense de Mad id (UCM) a di undi y u iliza con ines
académicos, no come ciales y mencionando a su au o , el p esen e T abajo de Fin de G ado:
“E aluación del endimien o de un plani icado de a eas sob e una pla a o ma he e ogénea
ARM+DSP de Texas Ins umen s”, ealizado du an e el cu so académico 2015-2016, bajo la
di ección de F ancisco Igual Peña.
Así mismo au o iza a la Uni e sidad Complu ense de Mad id a que sea deposi ado en acceso
abie o en el eposi o io ins i ucional e-p in s complu ense con el obje o de inc emen a la di usión,
uso e impac o del TFG en In e ne y ga an iza su p ese ación y acceso a la go plazo.
2 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Índice de con enidos
Palab as cla e........................................................................................................5
Keywo ds...............................................................................................................6
Resumen................................................................................................................7
Abs ac .................................................................................................................7
1 In oducción y obje i os.......................................................................................9
In oduc ion and goals.......................................................................................10
Obje i os gene ales...........................................................................................12
2 Modelos de p og amación pa a a qui ec u as he e ogéneas...................................13
CUDA...............................................................................................................13
Ca ac e ís icas...............................................................................................13
Limi aciones..................................................................................................14
CUDA como modelo de p og amación............................................................14
Je a quía de h eads......................................................................................16
Espacios de memo ia.....................................................................................17
Ejemplo de código CUDA...............................................................................18
OpenCL............................................................................................................19
Ca ac e ís icas...............................................................................................19
P og amación en OpenCL...............................................................................20
Je a quía de h eads......................................................................................20
Ges ión de memo ia......................................................................................21
OmpSs..............................................................................................................24
Modelo de p og amación...............................................................................25
Plani icado de a eas ( un ime).....................................................................31
Ven ajas e incon enien es de cada modelo de p og amación............................31
Ejemplos de códigos OmpSs...........................................................................32
3 P oblema obje i o. De ección de bo des..............................................................33
Desc ipción del algo i mo y mo i ación..............................................................33
E apas..........................................................................................................33
P ocesamien o po bloques. Desc ipción de las a eas..........................................34
E apas..........................................................................................................34
Implemen ación u ilizando OmpSs......................................................................37
Visión gene al de la implemen ación..............................................................38
Pa alelismo a ni el de a eas y dependencias de da os....................................39
Esquema algo í mico y de alles de implemen ación..........................................40
4 Resul ados expe imen ales..................................................................................45
Desc ipción de las a qui ec u as obje i o............................................................45
Desc ipción de las CPU In el Xeon (Buja uelo)................................................45
Desc ipción de las GPU (Buja uelo)................................................................45
Desc ipción de las CPU ARM (K2H)................................................................46
3 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Desc ipción del DSP (K2H).............................................................................46
Resul ados expe imen ales y análisis...................................................................47
U ilización exclusi a de CPU (Buja uelo).........................................................47
U ilización exclusi a de GPUs (Buja uelo).......................................................56
U ilización conjun a de CPU y GPU (Buja uelo)...............................................64
U ilización exclusi a de co es ARM (K2H).......................................................65
U ilización conjun a de ARM y DSP (K2H)......................................................70
5 Conclusiones......................................................................................................73
Conclusions..........................................................................................................74
6 Bibliog a ía.......................................................................................................75
4 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Palab as cla e
•OmpSs
•CUDA
•OpenCL
•A qui ec u as he e ogéneas
•Pa alelismo a ni el de a eas
•Consumo ene gé ico
•P ocesado es G á icos (GPUs)
•P ocesado es Digi ales de Señal (DSPs)
5 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Keywo ds
•OmpSs
•CUDA
•OpenCL
•He e ogeneous a chi ec u es
•Task pa allelism
•Ene gy consump ion
•G aphics P ocesso s (GPUs)
•Digi al Signal P ocesso s (DSPs)
6 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Resumen
El p esen e abajo es udia la iabilidad a la ho a de aplica un modelo de p og amación basado en
la ex acción de pa alelismo a ni el de a eas sob e dis in as a qui ec u as he e ogéneas basadas en
un p ocesado mul inúcleo de p opósi o gene al acele ado con uno o más acele ado es ha dwa e. Se
ha implemen ado una aplicación comple a cuyo obje i o es la de ección de bo des en una imagen
(implemen ando el Algo i mo de Canny), y se ha e aluado en de alle su endimien o sob e dis in os
ipos de a qui ec u as, incluyendo CPUs mul inúcleo de úl ima gene ación, sis emas mul i-GPU y
una a qui ec u a obje i o basada en p ocesado es ARM Co ex-A15 acele ados median e un DSP
C66x de la compañía Texas Ins umen s. Los esul ados expe imen ales demues an la iabilidad de
es e ipo de implemen ación ambién pa a a qui ec u as he e ogéneas no edosas como es a úl ima, e
ilus an la acilidad de p og amación que in oduce es e ipo de modelos de p og amación sob e
a qui ec u as de p opósi o especí ico.
Abs ac
This wo k s udies he possibili y o applying p og amming models based on he ex ac ion o ask
pa allelism on di e en he e ogeneous a chi ec u es based on mul i-co e p ocesso s accele a ed
wi h one o mo e ha dwa e accele a o s. We ha e implemen ed a comple e applica ion o edge
de ec ion (Canny Algo i hm), and we ha e e alua ed in de ail he pe o mance on di e en
a chi ec u es, including no el mul i-co e CPUs, sys ems equipped wi h mul iple GPUs and a a ge
a chi ec u e based on ARM Co ex-A15 p ocesso s accele a ed h ough a C66x DSP manu ac u ed
by Texas Ins umen s. The expe mien al esul s alida e he usage o he a o emen ioned
p og amming models also o no el he e ogeneous a chi ec u es, and illus a e he ease o
p og amming in oduced by his kind o p og amming models on speci ic-pu pose a chi ec u es.
7 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
8 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
1 In oducción y obje i os
En es e capí ulo se de alla la mo i ación p incipal del abajo ealizado, así como los p incipales
obje i os plan eados pa a su desa ollo.
Du an e los úl imos años, las exigencias compu acionales dic adas po los p oblemas su gidos en
ciencia e ingenie ía han aumen ado la capacidad de cálculo de los p ocesado es, con el in de
ealiza cálculos y simulaciones cada ez más complejas, minimizando el iempo de espues a.
T adicionalmen e, la Ley de Moo e [2], que de e mina el núme o de ansis o es que es posible
in eg a en una misma supe icie de silicio, se ha complido has a la echa. Sin emba go, el
inc emen o en ecuencia que posibili a, haciendo cada ez más ápidos los p ocesado es, se io
enado en la pasada década, su giendo como espues a el concep o de p ocesado es mul inúcleo.
Es e ipo de p ocesado eplica la can idad de unidades de p ocesamien o, haciendo posible que
aquellos p og amas que puedan explo a es e ni el de pa alelismo ean aumen ado su endimien o
gene ación as gene ación.
Sin emba go, el uso de p ocesado es mul inúcleo ambién ha is o enado su desa ollo en los
úl imos años, siendo su consumo ene gé ico una de las p incipales ba e as de ca a a su e olución.
En espues a al c ecien e consumo ene gé ico de las a qui ec u as de al as p es aciones, en los
úl imos años ha su gido un g an in e és po el uso de pla a o mas he e ogéneas, con especial én asis
no sólo en el endimien o, sino en la educción del consumo ene gé ico y, po an o, en la mejo a de
la e iciencia ene gé ica de las a qui ec u as.
El uso de a qui ec u as he e ogéneas es, po an o, una endencia c ecien e de ca a a cons ui
g andes supe compu ado es que puedan esponde a las demandas compu acionales de la ciencia y
la ingenie ía. De en e es e ipo de pla a o mas, des aca el uso de acele ado es ha dwa e, que se
adap an de o ma óp ima a cie o ipo de aplicaciones, y acele an el cómpu o de cie as pa es de los
algo i mos. Un ejemplo conc e o es el uso de p ocesado es g á icos (GPUs), que en los úl imos
años ha eme gido como un es ánda a la ho a de ealiza implemen aciones de al o endimien o pa a
cálculo de p opósi o gene al.
Aún así, aunque más e icien es desde el pun o de is a compu acional y ene gé ico, el uso de
acele ado es y p ocesado es mul inúcleo cada ez más po en es (y po an o, consumiendo mayo es
po encias), ha hecho esu gi la p eocupación po la imposibilidad de cons ui g andes
supe compu ado es con un cos e ene gé ico asumible. De hecho, se calcula que, de segui la
endencia ac ual en la cons ucción de supe compu ado es basados en acele ado es ha dwa e, el
cos e ene gé ico asociado a cada cen o de da os en pocos años se á sencillamen e inasumible.
En espues a a es o, se es án es udiando nue as endencias a la ho a de cons ui es e ipo de
pla a o mas que combinen, a la ez, g an e iciencia ene gé ica y p es aciones azonables. Una de las
endencias es el uso de p ocesado es y acele ado es de bajo cos e y consumo, ípicamen e
desa ollados pa a el me cado mó il, eu ilizando y explo ando sus ca ac e ís icas pa a un uso
mucho más especí ico. Ejemplos de es a endencia son los p ocesado es ARM, acele ados con
p ocesado es g á icos de bajo consumo, u o o ipo de acele ado es como p ocesado es digi ales de
señal (DSPs). En la ac ualidad, exis e g an in e és en es udia la iabibilidad de es e ipo de
9 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Je a quía de h eads
Las GPUs N idia cons an de cien os (en algunos casos, miles) de unidades de cómpu o, ípicamen e
llamadas núcleos), cada uno dedicado a la ejecución de un lujo de ejecución independien e (hilo de
ejecución). Po lo an o, pe mi en, y explo an, un ele ado g ado de pa alelismo de g ano ino,
siendo es as sus ca ac e ís icas:
•Exis e un súpe g upo de bloques de h eads, llamado g id.
•Cada bloque de h eads es á o mado po un conjun o de h eads.
•Cada bloque den o de un g id se iden i ica de o ma
única median e un iden i icado uni, bi o
idimensional, en unción de las necesidades del
p oblema.
•Cada h ead den o de un bloque posee un
iden i icado único, nue amen e uni, bi o
idimensional. De o ma au omá ica, cada h ead
ins ancia la a iable h eadIdx, cuyas componen es
(x, y, z) iden i ican de o ma uní oca al hilo den o
de su bloque. El iden i icado global del h ead se
puede ob ene ácilmen e a pa i de dicha
in o mación, y del iden i icado del bloque al que
pe enece; po ejemplo, abajando en una dimensión,
un iden i icado único pa a un de e minado hilo
puede ob ene se median e exp esiones sencillas de
ipo:
in h eadX = h eadIdx.x + blockDim.x * blockIdx.x;
•Los h eads de la GPU son lige os, con poca o nula
sob eca ga de plani icación y p esen an cambios de con ex o ápidos; en cambio los h eads
de CPU son pesados, iene sob eca ga de plani icación y cambios de con ex o mucho más
len os.
•Dado un iden i icado global único, ípicamen e se u iliza dicha in o mación pa a ealiza un
epa o de aquellos da os o bloques de da os sob e los que abaja á el hilo de ejecución.
Desde es e pun o de is a, las GPUs siguen un pa adigma SIMD (Simple Ins uc ion
Mul iple Da a): cada hilo de ejecución ejecu a exac amen e la misma ins ucción en un
de e minado pun o de la ejecución, pe o abajando sob e dis in os da os en unción de su
iden i icado .
16 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Espacios de memo ia
Las GPUs compa ibles con CUDA p esen an dis in as zonas de memo ia, cada una de ellas
accesible a ni el de hilo, bloque o g id de ejecución:
•Regis os: Disponible y accesible únicamen e po el h ead al que es á asociada, en modo
lec u a/esc i u a.
•Memo ial local: Disponible y accesible en modo lec u a/esc i u a po odos los hilos que
componen un mismo bloque de hilos. Su la encia y ancho de banda es simila a la de los
egis os, aunque su amaño es á limi ado a pocos Kby es po mul ip ocesado .
•Memo ia global: Pa a lec u a/esc i u a desde cualquie bloque. Típicamen e de g an amaño,
pe mi e comunica hilos pe enecien es a dis in os bloques.
•Memo ia cons an e: Región de la memo ia global, sólo pa a lec u a y accesible desde
cualquie bloque de hilos.
•Memo ia ex u a: Región de la memo ia global, sólo pa a lec u a y accesible desde cualquie
bloque de hilos, cacheable y u ilizable a a és de APIs especí icas.
17 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Ejemplo de código CUDA
Se mues a a con inuación un ejemplo sencillo de ejecución de un código CUDA. El p og ama se
di ide en dos pa es: p og ama p incipal, ejecu ado en CPU y ke nel, ejecu ado en GPU po an os
hilos como se deseen. El p og ama p incipal, mos ado a con inuación, se di ide en es pa es
p incipales:
1. Rese a de un bu e de memo ia de amaño MEM_SIZE by es, an o en RAM como en
memo ia global, a a és de unciones especí icas en CPU y GPU.
2. Con igu ación de la ejecución (que en es e caso incluye un bloque de hilos o mado po un
único hilo), e in ocación del ke nel u ilizando sin axis CUDA.
3. Copia de los da os inicializados en GPU de uel a a memo ia RAM, p e ia a la imp esión
po pan alla del con enido del bu e .
P og ama p incipal:
Código GPU (ke nel):
18 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
OpenCL
OpenCL [1] son las siglas de Open Compu ing Language, lenguaje de compu ación abie o. Es el
p ime es ánda de p og amación e dade amen e abie o. Pe mi e c ea aplicaciones que pueden
ejecu a se an o en unidades cen ales de p ocesamien o como unidades de p ocesamien o g á ico.
Pa a muchos es conside ada la API que iene mayo p obabilidad de ejecu a se aplicaciones que
uncionen usando las GPUs, al se mul ipla a o ma y no ene es icciones an o de ha dwa e como
de sis ema ope a i o.
La p incipal di e encia con CUDA es que OpenCL puede se ejecu ado en cualquie disposi i o que
implemen e el es ánda ,siendo abie o no es únicamen e N idia. Es deci , que OpenCL además de
pode ejecu a se únicamen e en GPUs, puede se ejecu ado en CPUs.
OpenCL™ se desa olló en un comi é de es ánda es abie os con ep esen an es de los p incipales
p o eedo es de la indus ia y les o ece a los usua ios lo que han es ado eclamando: una solución
no de p opiedad exclusi a, de a ios p o eedo es, pa a acele a las aplicaciones en las CPU, GPU y
APU. AMD, un pa ocinado inicial de OpenCL™ e inno ado y p o eedo líde de CPU, APU y
GPU de al o endimien o, es á en una posición exclusi a en es a indus ia pa a o ece una
pla a o ma de acele ación comple a pa a OpenCL™.
Ca ac e ís icas
•Sopo e del modelo de p og amación pa alela a ni el de da os yde a eas
•Emplea un subconjun o del lenguaje de p og amación C99 + ex ensiones pa a p og amación
pa alela e icaz y segu a.
•Pe mi e la in e acción e icien e con APIs g á icas como OpenGL, OpenGLES y
Di ec Xen e o as.
•De ine equisi os numé icos basados en el es ánda IEEE 754.
19 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
P og amación en OpenCL
Todas las unciones de OpenCL se ag upan en los iche os llamados ke nels (al igual que en
CUDA), siendo iche os con la ex ensión “cl”, siendo el lenguaje basado en C. Concep ualmen e, el
modelo de p og amación es muy simila a CUDA.
Todas las unciones OpenCl lle an el ac ónimo __ke nel pa a se iden i icadas. Los pun e os deben
de lle a el ac ónimo __global si apun an a una zona de memo ia global, o __local si son zonas de
memo ia local. Po ejemplo:
__ke nel oid p ueba(in __global *a)
Los p og amas de OpenCL se compilan o mando código obje o pa a la CPU, y pa a la GPU. El
código obje o que se ejecu a en la CPU de e mina los ke nels (can idad mínima de código
ejecu able) a ejecu a en cada una de las GPUs o disposi i os compa ibles, compilándose és os en
iempo de ejecución. P ecisamen e en iempo de ejecución, OpenCL gene a un con ex o (Con ex )
que se asocia a la unidad que se enca ga á de ejecu a el p og ama. Es e con ex o se enca ga de
maneja los p og amas, los ke nels, los obje os de memo ia y las colas de comandos, y es á
ípicamen e asociado a un disposi i o conc e o.
Je a quía de h eads
A di e encia de CUDA, OpenCL pe mi e p og ama en odo ipo de disposi i os, en conc e o si
enemos una GPUs (pudiendo se o no, N idia),cons an de cien os de núcleos los cuales iene el
p ocesamien o de un hilo cada uno, po lo an o pe mi iendo un g ado de pa alelismo bas an e al o,
siendo es as sus ca ac e ís icas:
•Cada heb a es un wo k-i em.
•Cada wo k-i em se ejecu a en pa alelo en un núcleo siguiendo un pa adigma SIMD.
20 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
•El conjun o de wo k-i ems de un mismo núcleo se llama wo k-g oup (es deci , equi alen e
al concep o de bloque de hilos en CUDA).
•Cada wo k-g oup compa e memo ia local y pe mi e comunica y sinc oniza los wo k-
i ems que lo componen.
•Cada wo k-i em posee un iden i icado único en la con igu ación global de ejecución (es
deci , no es necesa io compu a lo explíci amen e, como sí ocu ía en CUDA).
Ges ión de memo ia
La di isión po wo k-g oup pe mi e ene memo ia p i ada pa a cada uno de ellos y a su ez
memo ia compa ida con los demás, siendo es as sus ca ac e ís icas:
•Memo ia p i ada: Disponible y accesible únicamen e po el wo k-i em al que es á asociada.
•Memo ial local: Pa a lec u a y esc i u a, accesible desde un único wo k-g oup ( a iables
compa idas po wo k-i ems den o de un wo k-g oup).
21 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
•Memo ia global: Pa a lec u a/esc i u a desde cualquie wo k-i em o wo k-g oup. Rep esen a
a la memo ia de cada disposi i o.
•Memo ia cons an e: Región de la memo ia global, sólo pa a lec u a desde wo k-i ems. Es
cons an e du an e la ejecución del ke nel, y puede se leída y esc i a po la aplicación hos .
•Memo ia del Hos : Memo ia asociada a la CPU que ac úa como hos .
Código de ejemplo OpenCL: p og ama p incipal.
Nó ese la complejidad del código OpenCL en su pa e hos equi alen e al desa ollado en CUDA.
Es a complejidad demues a el comp omiso en e po abilidad del código, que aho a es compa ible
con cualquie pla a o ma pa alela con sopo e OpenCL, y acilidad de p og amación. Aunque ue a
del alcance del p esen e abajo, cabe des aca la can idad de in ocaciones a la API de OpenCL
desde el hos pa a con igu a con ex os de ejecución, disposi i os, colas de comandos, c eación de
bu e s, ans e encias de da os y con igu aciones de ejecución del ke nel.
22 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
23 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Código ejemplo OpenCL: Ke nel
Nó ese la simili ud del código de ke nel desa ollado con espec o al equi alen e CUDA ( e
sección an e io ):
OmpSs
Como se ha de allado en las an e io es secciones, an o CUDA como OpenCL pe mi en p og ama ,
de o ma ela i amen e sencilla, disposi i os acele ado es compa ibles. Aunque su in oducción
como modelos de p og amación ha acili ado y popula izado en g an medida el uso de es e ipo de
ha dwa e, oda ía p esen an p oblemas g a es elacionados con la acilidad de p og amación:
1. Ambos modelos de p og amación equie en una in e ención explíci a po pa e del
p og amado a la ho a de ges iona an o la ese a y libe ación de memo ia, como la
ans e encia de da os en e espacios de memo ia.
2. OpenCL equie e el uso de APIs complejas pa a la con igu ación p e ia a la ejecución,
ípicamen e ocupando decenas de líneas. Es o suele conlle a e o es de p og amación en
muchos p og amas, independien emen e de su sencillez.
3. El uso de a ios acele ado es simul áneamen e es complejo u ilizando an o OpenCL como
CUDA.
4. La ges ión e icien e de las ans e encias de da os en e espacios de memo ia, in en ando
educi aquellas ans e encias innecesa ias esul a esponsabilidad del p og amado , y po
an o suele se especí ica pa a un p oblema en conc e o, y ípicamen e subóp ima.
En espues a a es as limi aciones han su gido nue os modelos de p og amación, de en e los que
des aca OmpSs. OmpSs [4] es un modelo de p og amación basado en la ex acción y explo ación de
pa alelismo a ni el de a eas desa ollado po el Ba celona Supe compu ing Cen e (BSC). El
24 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
obje i o p incipal de OmpSs es acili a la p og amación pa alela de aplicaciones, delegando la
ejecución pa alela a un componen e so wa e (comúnmen e denominado un ime o plani icado de
a eas) que, de o ma au omá ica, analiza las a eas ano adas po el usua io a a és de #p agmas en
el código, así como sus dependencias de da os, y las ejecu a de o ma concu en e en los dis in os
p ocesado es disponibles sin ningún ipo de in e ención po pa e del usua io.
Las en ajas de es e ipo de pa adigma son múl iples. En p ime luga , la labo del desa ollado se
limi a a iden i ica qué pa es del código (po ejemplo, unciones) son candida as a se conside adas
a eas, así como a indica qué da os de en ada ecibe la a ea y qué da os gene a. A pa i de es
pun o, el plani icado de a eas decide, en iempo de ejecución, cuándo ejecu a cada a ea
(ges ionando de o ma au omá ica las dependencias de da os) y sob e qué pla a o ma ejecu a la.
En sis emas he e ogéneos, además, OmpSs se enca ga, de o ma anspa en e, de ges iona las
ans e encias de da os en e espacios de memo ia siemp e que sea necesa io. En gene al, pues, un
código secuencial puede se aducido a OmpSs sin un g an es ue zo po pa e del p og amado .
Además, median e los pa áme os especí icos del plani icado , es posible modi ica las polí icas de
uso de p ocesado , algo i mos de plani icación o u ilización concu en e de dis in os ipos de
a qui ec u as, odo ello sin modi ica el código. Consegui una uncionalidad simila ealizando una
p og amación de meno ni el (po ejemplo, exclusi amen e basada en CUDA) eque i ía un
es ue zo mucho mayo .
Modelo de p og amación
Como se ha desc i o, el modelo de p og amación de OmpSs se basa en añadi pequeñas ano aciones
en o ma de #p agmas al código secuencial, de modo que se in o ma al plani icado de a eas de la
exis encia de una a ea. Una a ea es la unidad mínima de plani icación sob e cada ipo de
p ocesado disponible en el sis ema (po ejemplo, un núcleo o una GPU). De hecho, ya que dichos
p agmas son igno ados po el compilado sin sopo e pa a OmpSs, cualquie código ano ado con
p agmas puede unciona de o ma secuencial sin ninguna modi icación, y ice e sa.
OmpSs se basa en dos componen es undamen ales:
1. Compilado (Me cu ium). Se a a de un compilado especí ico uen e-a- uen e (es deci ,
ans o ma el código del usua io en un código con simila es ca ac e ís icas, pe o ampliado
pa a da sopo e al modelo de p og amación). Básicamen e, inse a in ocaciones a u inas
implemen adas en el plani icado (po ejemplo, pa a añadi nue as a eas a la cola de a eas,
ealiza sinc onizaciones, e c.)
2. Plani icado (Nanox). Se a a de un so wa e so is icado que, enlazado con nues o
p og ama y a a és de las in ocaciones a su API in oducidas po Me cu ium, es capaz de
plani ica de o ma dinámica y en iempo de ejecución las a eas ano adas po el usua io.
A con inuación se mues an los p agmas p incipales sopo ados po OmpSs, así como una b e e
desc ipción del uncionamien o del plani icado de a eas.
25 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Po con a, la p incipal des en aja es la necesidad de adap a los algo i mos al pa adigma de
pa alelismo a ni el de a eas (cosa no siemp e posible), y el meno con ol sob e la ejecución, ya
que és a es ges ionada au omá icamen e po el plani icado , con mínima in e ención pa a el
usua io.
Ejemplos de códigos OmpSs
Ompss + CUDA
Ompss + OpenCl
32 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
3 P oblema obje i o. De ección de bo des
En es e capí ulo se explica el algo i mo de Canny (e apa po e apa) y la mo i ación de ealiza lo.
Desc ipción del algo i mo y mo i ación
El algo i mo usado pa a nues as p uebas es Canny. El p og ama ha sido c eado o almen e desde 0,
en código C, y usando las he amien as a ás desc i as.
El algo i mo de Canny ue desa ollado po John F.Canny en 1986, donde se u iliza a ias e apas
pa a de ec a la mayo ía de bo des en una imagen dada. El p opósi o de es e algo i mo es el de
descub i bo des en las imágenes que se llega an a analiza con es e algo i mo.
Con la écnica de educción signi ica i a de da os en una imagen, p ese ando las p opiedades
es uc u ales de la imagen.
Es e algo i mo es a en ocado en los siguien es pun os:
•Buena de ección: El algo i mo debe ma ca el mayo núme o eal en los bo des de la imagen
como sea posible.
•Buena localización: Los bo des de ma ca deben es a lo más ce ca posible del bo de de la
imagen eal.
•Respues a mínima: El bo de de una imagen sólo debe se ma cado una ez, y siemp e que
sea posible, el uido de la imagen no debe c ea alsos bo des
Desde el pun o de is a del modelo de p og mación OmpSs, es e algo i mo esul a in e esan e,
pues o que:
1. P esen a dis in os ipos de a eas asociadas a cada e apa del algo i mo.
2. P esen a dependencias de da os en e a eas no i iales.
3. Las implemen aciones de cada a ea son ( ela i amen e) sencillas de implemen a .
4. Cada a ea es al amen e pa alela a ni el de da os, po lo que pe mi e una co ec a
explo ación de los acele ado es ha dwa e.
E apas
•Sua iza : Desen oque de la imagen pa a elimina el uido.
•Encon a g adien es: los bo des deben es a ma cados en los g adien es de la imagen que
iene magni udes g andes.
33 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
•No sup esión máxima: Sólo los máximos locales se debe ma ca como bo des.
•Umb alización doble: Los posibles bo des deben es a de e minados po umb alización.
•Seguimien o po his é esis: Los bo des inales se de e minan median e la sup esión de odas
las a is as que no es án conec ados a una muy de e minada bo de ( ue e).
P ocesamien o po bloques. Desc ipción de las a eas.
Pa a omen a el pa alelismo, la imagen es di ida en bloques o almen e independien es en e si en
una misma e apa, de al o ma que dos ozos de imagen dis in as se puedan ealiza
simul áneamen e.
El amaño de bloque es dinámico, es deci , el p og ama es capaz de descompone la imagen en
cualquie amaño de bloque dado po el usua io. Cada bloque de la imagen es p ocesado po cada
unción, siendo a su ez una a ea.
Algunas e apas como po ejemplo la p ime a, dado un pixel, u iliza los de su al ededo y lo
mul iplica po una ma iz dada pa a ob ene el alo esul ado de ese pixel. Es e paso puede da
e o en los pixeles ce canos a los limi es de la imagenes, pa a ello hemos ag andado la imagen
ellenado de ce os odos los limi es de la imagen. Es deci , si la imagen es de 15x15, la hemos
ag andado a 16x16 con ce os.
E apas
Se mues an a con inuación las e apas o ases p incipales que componen el p ocesamien o de la
imagen. En nues o caso, exis e una p ime a ase de p ep ocesado en la que la imagen a colo es
ans o mada en una imagen en escala de g ises, cuyos de alles de implemen ación se ob ian en la
siguien e desc ipción:
34 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
La siguien e ase consis e en limpia la imagen de uidos. Es ine i able que odas las imágenes
omadas desde una cáma a con engan cie a can idad de uido; el obje i o de es a e apa es e i a que
el uido in oducido se con unda con bo des. Pa a ello se le aplica un il o de Gauss (en nues o
caso, un il o de Gauss con una des iación es ánda de σ = 1,4). El il o de Gauss a ia en
amaño; en nues o caso de es udio se ha elegido un il o de amaño 5x5:
La siguien e igu a mues a un ejemplo de aplicación del an e io il o sob e una imagen de en ada
en escala de g ises:
A con inuación, el algo i mo de Canny encuen a básicamen e bo des, conside ando és os como
aquellas zonas de la imagen con a iación más ápida de la in ensidad. Es as á eas se encuen an
median e la de e minación de los g adien es de la imagen. Los g adien es en cada píxel en la
imagen sua izada se de e minan median e la aplicación de lo que se conoce como il o de Sobel:
el p ime paso es ap oxima el g adien e en las di ecciones x e y espec i amen e, aplicando el
ope ado de Sobel:
35 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Las magni udes del g adien e ( ambién conocidos como los pun os ue es de bo de) se pueden
de e mina calculando la a co angen e en e los pun os esul ados de x e y:
La siguien e imagen mues a el esul ado de la aplicación del il o de Sobel sob e la imagen de
en ada esul an e de la ase an e io :
Po úl imo, se aplica una ase llamada de de no sup esión máxima. El p opósi o de es e paso es
con e i los "enmasca ados" bo des en la imagen de las magni udes del g adien e a los " ue es"
bo des.
Básicamen e es o se hace median e la p ese ación de odos los máximos locales en la imagen de
g adien e, y la eliminacion del es o de in o mación. El algo i mo pa a cada píxel de la imagen de
g adien e es el siguien e:
1. Al ededo de la di ección del g adien e he a más ce cano a 45º.
2. Compa a la esis encia del bo de del píxel ac ual con la esis encia de los bo des en
di ección al píxel en el g adien e posi i o y nega i o. Es deci , si la di ección del g adien e
36 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
es el no e ( he a= 90º), po ejemplo, compa a con los píxeles hacia el no e y el su .
3. Si la esis encia del bo de del píxel ac ual es el más g ande; p ese a el alo de la
esis encia de los bo des. Si no es así, sup imi (es deci , elimina ) el alo .
La siguien e igu a mues a un ejemplo de aplicación de dicha ase sob e el esul ado de la
aplicación del ope ado Sobel:
Implemen ación u ilizando OmpSs
En es e capí ulo se in oduce de o ma de más p ecisa el desa ollo del p og ama desa ollado y su
adap ación a un pa adigma de pa alelismo a ni el de a eas, explicando en de alle el a amien o de
la imagen desde su o igen has a su des ino.
37 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Visión gene al de la implemen ación
El p og ama pa e de una imagen en colo es, y iene como obje i o de ec a los bo des de la misma.
Como se ha de allado an e io men e, la imagen es p e iamen e ans o mada a escala de g ises, pa a
a con inuación aplica las dis in as ases del algo i mo de Canny de o ma secuencial. En nues o
caso y como se explicó an e io men e, las dos úl imas ases se omi i án en la desc ipción, al no se
es ic amen e necesa ias (a pa i de la e ce a ase, no_máximos, la de ección de bo des ha sido
ealizada, siendo las es an es ases de mejo a de calidad de los bo des).
Pa a da una isión gene al del uncionamien o de la implemen ación, imaginemos que cada ase es
una caja neg a, la cual es a conec ada a la siguien e ase, y que cada e apa no puede con inua si la
e apa an e io no ha e minado.
Cada e apa ecibe un bu e de en ada y de uel e un bu e de salida, que con iene el esul ado de
la aplicación del a amien o co espondien e. Más conc e amen e:
•P ime a ase ( il o gaussiano):
◦Recibe como bu e de en ada, la imagen en escala de blanco y neg o.
◦La imagen es a ada y de uel a en un bu e de salida, el cual llama emos
bu e _gaussiano.
•Segunda ase ( il o Sobel):
◦Recibe como bu e de en ada, la imagen a ada po la ase gaussiana
(bu e _gaussiano).
◦La imagen es a ada y de uel a en un bu e de salida, el cual llama emos bu e _sobel.
•Te ce a ase (sup esión de máximos):
◦Recibe como bu e de en ada, la imagen a ada po la ase sobel (bu e _sobel).
38 Be múdez Blanco, Ja ie
Gauss Sobel Nomax
Blanco y neg o
Imagen esul ado
T abajo Fin de G ado en Ingenie ía de Compu ado es
◦La imagen es a ada y de uel a en un bu e de salida, el cual llama emos
bu e _no_max.
•Po úl imo, se esc ibe la imagen esul an e a disco.
Pa alelismo a ni el de a eas y dependencias de da os
Como se ha is o, cada ase equie e da os de la ase an e io . Más conc e amen e, en una
implemen ación no o ien ada a bloques, cada ase equie e que la e apa an e io haya inalizado
comple amen e (sob e oda la imagen) pa a p ocede . Es e p oceso alen iza el p ocesado de la
imagen en sis emas con múl iples p ocesado es, al se necesa io espe a a que la imagen sea a ada
comple amen e po la ase an e io . Pa a op imiza el abajo, se ha op ado po un p ocesamien o
o ien ado a bloques: la imagen se di ide en bloques de ilas de amaño con igu able, que se
iden i ica án como a eas a a és de los mecanismos p opo cionados po OmpSs y se asigna án, en
iempo de ejecución, a las dis in as unidades de p oceso exis en es en el sis ema.
Es e g ado de pa alelismo pe mi e ejecu a , de o ma concu en e, a ias a eas asociadas a una
misma ase, e incluso pe enecien es a ases dis in as, siemp e que las dependencias de da os hayan
sido sa is echas. Además, es e esquema pe mi e ejecu a cada a ea en dis in os núcleos del
p ocesado y en los acele ado es disponibles. Po ejemplo, si disponemos de seis a eas lis as pa a
se ejecu adas, pod ía pon encialmen e lanza se cua o de ellas a núcleos de CPU, y dos es an es a
GPUs disponibles (o a cualquie o o ipo de acele ado ).
Toda a ea que es lanzada a un núcleo de CPU p ocesa un bloque de la imagen de mane a
secuencial, pixel a pixel; en cambio las GPUs (u o os acele ado e) poseen múl iples núcleos,
siendo ap o echables pa a aumen a el ni el de pa alelismo. Pa a ap o echa es e hecho, cada a ea
que es lanzada a la GPU, es p ocesada en pa alelo, es deci , cada pixel del bloque de la imagen es
p ocesado po un núcleo de la GPU, ap o echando ya no solo el pa alelismo a ni el de a eas
(median e OmpSs), sino ambién de da os (median e CUDA u OpenCL). Desde es e pun o de is a,
los acele ado es son is os po OmpSs como “cajas neg as”, o unidades mínimas de asignación de
a eas; es el código in e no de cada a ea quien ex ae á pa alelismo a ni el de da os de o ma
in e na.
Algunas de las ases desc i as equie en, pa a calcula el alo de un pixel, los alo es de los pixeles
ce canos a él calculados en la ase an e io . Es o puede supone un p oblema al calcula los píxeles
en los ex emos de la imagen, ya que pueden se necesa ios alo es de pixeles que es én ue a del
ango de la imagen. La solución que se ha implemen ado c ea un halo ( ambién conocido como
padding o elleno) al ededo de la imagen o bo de co espondien e.
Al aplica es a écnica su gen dependencias en e a eas mayo es. Como se dijo an e io men e cada
bloque depende de algunos bloques an e io es. Al in oduci padding, cada bloque a a se mayo ,
aba cando alo es de o os bloques de su misma ase. Veamos un ejemplo: la aplicación del il o de
39 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
Sobel sob e el p ime bloque de la imagen eque i á no sólo los da os de en ada co espondien es a
dicho bloque (y ob enidos as la aplicación del il o gaussiano sob e el p ime bloque de la
imagen), sino ambién cie as ilas adicionales compu adas as aplica el il o gaussiano al segundo
bloque de la imagen. Po an o, exis e una dependencia de da os en e la a ea que aplica á el il o
Sobel al p ime bloque de la imagen, y las dos p ime as a eas que aplica án el il o gaussiano
sob e los dos p ime os bloques de la imagen.
A con inuación se mues a un ejemplo de dependencias en e bloques, pa a una imagen de
1024x1024, en bloques de 128, es deci , 8 bloques po ase:
La ges ión de es e ipo de dependencias de da os es ealmen e compleja en el caso de se ealizada a
mano, e ilus a las en ajas de u iliza un modelo de p og amación como OmpSs, como se e á a
con inuación.
Esquema algo í mico y de alles de implemen ación
En una implemen ación secuencial, el esquema algo í mico básico p ocesa ía cada una de las es
ases de o ma consecu i a: la inalización del p ocesado de una de ellas supond ía el inicio de la
siguien e. En un p ocesado po bloques, la aplicación de cada ase se ealiza a ni el de bloque de
ilas, ambién de o ma secuencial, como mues a el siguien e código.
40 Be múdez Blanco, Ja ie
Gaussiano Sobel No_máximos
Blanco y neg o
Imagen esul ado
T abajo Fin de G ado en Ingenie ía de Compu ado es
Cabe des aca dos obse aciones p incipales:
1. En es e caso, no exis e ningún ipo de pa alelismo a ni el de a eas; es deci , cada a ea se
ejecu a de o ma exclusi amen e secuencial, sin solapa su p ocesamien o con ninguna o a.
2. Las in ocaciones a cada unción de p ocesamien o de la imagen se ejecu an exclusi amen e
sob e CPU, sin u iliza en ningún caso ninguno de los posibles acele ado es disponibles.
Una mig ación de es e código pa a se acele ado median e uno o a ios acele ado es, eque i ía una
eesc i u a comple a del código. Sin emba go, median e el uso de OmpSs, es posible ealiza una
ans o mación del mismo con mínimos cambios. De hecho, los cambios p incipales se ían
básicamen e dos:
1. Desa ollo de ke nels especí icos (CUDA u OpenCL) pa a la implemen ación de cada ase en el
acele ado .
2. E ique ado de cada a ea median e p agmas, indicando sus da os de en ada y salida, y la
pla a o ma o pla a o mas en las que debe ejecu a se.
Es e úl imo caso es de especial in e és pa a el desa ollo del abajo p opues o. A con inuación, se
de alla el mecanismo de ano ación pa a una de las a eas (gaussiano) u ilizando #p agmas OmpSs.
Nó ese como, si dicho p agma es eliminado o no sopo ado po el compilado , el p og ama segui ía
uncionando de o ma co ec a (aunque secuencial):
41 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
•Tamaño de imagen 256x256, u ilizando en e 1 y 56 hilos de ejecución.
48 Be múdez Blanco, Ja ie
0 20 40 60 80 100 120 140
0
1000
2000
3000
4000
5000
6000
7000
8000
Tiempo
1
2
4
8
16
28
32
56
Bloque
Tiempo(mic osegundos)
0 20 40 60 80 100 120 140
0
500
1000
1500
2000
2500
3000
3500
Rendimien o
1
2
4
8
16
28
32
56
Bloque
MegaBi s/Segundo
0 20 40 60 80 100 120 140
0
0,5
1
1,5
2
2,5
3
3,5
Consumo
1
2
4
8
16
28
32
56
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
•Tamaño de imagen 512x512, u ilizando en e 1 y 56 hilos de ejecución.
49 Be múdez Blanco, Ja ie
0 50 100 150 200 250 300
0
5000
10000
15000
20000
25000
Tiempo
1
2
4
8
16
28
32
56
Bloque
Tiempo(mic osegundos)
0 50 100 150 200 250 300
0
1000
2000
3000
4000
5000
6000
Rendimien o
1
2
4
8
16
28
32
56
Bloque
MegaBi s/Segundos
0 50 100 150 200 250 300
0
2
4
6
8
10
12
Consumo
1
2
4
8
16
28
32
56
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
•Tamaño de imagen 768x768, u ilizando en e 1 y 56 hilos de ejecución.
50 Be múdez Blanco, Ja ie
16 32 64 128 256
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
Tiempo
1
2
4
8
16
28
32
56
Bloque
Tiempo(mic osegundos)
16 32 64 128 256
0
2000
4000
6000
8000
10000
12000
14000
Rendimien o
1
2
4
8
16
28
32
56
Bloque
MegaBi s/Segundos
16 32 64 128 256
0
5
10
15
20
25
Consumo
1
2
4
8
16
28
32
56
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
•Tamaño de imagen 1024x1024, u ilizando en e 1 y 56 hilos de ejecución.
51 Be múdez Blanco, Ja ie
0 100 200 300 400 500 600
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
Tiempo
1
2
4
8
16
28
32
56
Bloque
Tiempo(mic osegundos)
0 100 200 300 400 500 600
0
1000
2000
3000
4000
5000
6000
7000
Rendimien o
1
2
4
8
16
28
32
56
Bloque
MegaBi s/Segundo
0 100 200 300 400 500 600
0
5
10
15
20
25
30
35
40
45
Consumo
1
2
4
8
16
28
32
56
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
•Tamaño de imagen 2048x2048, u ilizando en e 1 y 56 hilos de ejecución.
52 Be múdez Blanco, Ja ie
0 200 400 600 800 1000 1200
0
50000
100000
150000
200000
250000
300000
350000
Tiempo
1
2
4
8
16
28
32
56
Bloque
Tiempo(mic osegundos)
0 200 400 600 800 1000 1200
0
1000
2000
3000
4000
5000
6000
7000
8000
Rendimien o
1
2
4
8
16
28
32
56
Bloque
MegaBi s/Segundo
0 200 400 600 800 1000 1200
0
20
40
60
80
100
120
140
160
Consumo
1
2
4
8
16
28
32
56
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
•Tamaño de imagen 4096x4096, u ilizando en e 1 y 56 hilos de ejecución.
53 Be múdez Blanco, Ja ie
0 500 1000 1500 2000 2500
0
200000
400000
600000
800000
1000000
1200000
1400000
Tiempo
1
2
4
8
16
28
32
56
Bloque
Tiempo(mic osegundos)
0 500 1000 1500 2000 2500
0
1000
2000
3000
4000
5000
6000
7000
8000
Rendimien o
1
2
4
8
16
28
32
56
Bloque
MegaBi s/Segundo
0 500 1000 1500 2000 2500
0
100
200
300
400
500
600
700
Consumo
1
2
4
8
16
28
32
56
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
•Tamaño de imagen 8192x8192, u ilizando en e 1 y 56 hilos de ejecución.
54 Be múdez Blanco, Ja ie
0 500 1000 1500 2000 2500 3000 3500 4000 4500
0
1000
2000
3000
4000
5000
6000
7000
8000
Rendimien o
1
2
4
8
16
28
32
56
Bloque
MegaBi s/Segundo
0 500 1000 1500 2000 2500 3000 3500 4000 4500
0
500
1000
1500
2000
2500
Consumo
1
2
4
8
16
28
32
56
Bloque
Julios
0 500 1000 1500 2000 2500 3000 3500 4000 4500
0
1000000
2000000
3000000
4000000
5000000
6000000
Tiempo
1
2
4
8
16
28
32
56
Bloque
Tiempo(mic osegundos)
T abajo Fin de G ado en Ingenie ía de Compu ado es
Discusión de esul ados
Al analiza una se ies de dis in os amaños pa a una misma imagen sob e es a a qui ec u a,
podemos ap ecia una se ie de endencias y obse aciones gene ales:
•Tiempo de ejecución
1. El uso de la ecnología Hype h eading implica que sólo an e el uso de an os h eads
como co es ísicos hay disponibles en el sis ema se alcance un endimien o óp imo.
Aumen a el núme o de hilos de ejecución po encima de dicho lími e deg ada el
endimien o pa a odos los amaños de p oblema.
2. En gene al, el endimien o aumen a sus ancialmen e a medida que el amaño de imagen
aumen a. Típicamen e, el p ocesamien o de imágenes de mayo amaño implica la
posibilidad de u iliza amaños de bloque mayo es, con mejo ap o echamien o de la
je a quía de memo ia.
•Tamaños de bloque
1. Al igual que en el apa ado an e io , sólo an e un núme o educido de bloques iene
sen ido u iliza un núme o educido de heb as. En gene al, como es lógico, sólo cuando
el núme o de bloques es conside able esul a bene icioso aumen a el núme o de heb as
de ejecución.
55 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
U ilización exclusi a de GPUs (Buja uelo)
Po limi aciones en la can idad de memo ia disponible en GPU, sólo ha sido posible es ea
imágenes de has a un amaño de 4096x4096.
•Tamaño de imagen 128x128, u ilizando 1, 2 y 3 GPUs.
56 Be múdez Blanco, Ja ie
16 32 64
0
500
1000
1500
2000
2500
3000
Rendimien o
1
2
3
Bloque
MegaBi s/Segundos
16 32 64
0
5000
10000
15000
20000
25000
30000
35000
Tiempo
1
2
3
Bloque
Tiempo(mic osegundos)
16 32 64
0
2
4
6
8
10
12
14
16
18
Consumo
1
2
3
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
•Tamaño de imagen 256x256, u ilizando 1, 2 y 3 GPUs.
57 Be múdez Blanco, Ja ie
16 32 64 128
0
10000
20000
30000
40000
50000
60000
70000
80000
90000
Tiempo
1
2
3
Bloque
Tiempo(mic osegundos)
16 32 64 128
0
1000
2000
3000
4000
5000
6000
7000
Rendimien o
1
2
3
Bloque
MegaBi s/Segundos
16 32 64 128
0
5
10
15
20
25
30
35
40
45
Consumo
1
2
3
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
U ilización conjun a de CPU y GPU (Buja uelo)
Ap eciaciones gene ales y obse aciones
Al combina CPU y GPU, se puede ap ecia un mayo ap o echamien o de los ecu sos, bajando los
iempos de ejecución, aumen ando signi ica i amen e el endimien o y educiéndose el consumo.
64 Be múdez Blanco, Ja ie
128 256 512 768 1024 2048 4092
0
200000
400000
600000
800000
1000000
1200000
1400000
Tiempo
16
32
64
128
256
512
1024
2048
Ma iz
Tiempo(mic osegundos)
128 256 512 768 1024 2048 4092
0
2000
4000
6000
8000
10000
12000
14000
16000
Rendimien o
16
32
64
128
256
512
1024
2048
Ma iz
MegaBi s/Segundos
128 256 512 768 1024 2048 4092
0
100
200
300
400
500
600
700
Consumo
16
32
64
128
256
512
1024
2048
Ma iz
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
U ilización exclusi a de co es ARM (K2H)
En es e caso, la limi ación de la máquina no pe mi e es ea con imágenes mayo es de 768x768.
•Tamaño de imagen 128x128, u ilizando 1, 2 y 4 co es.
65 Be múdez Blanco, Ja ie
16 32 64
0
5000
10000
15000
20000
25000
30000
35000
Tiempo
1
2
4
Bloque
Tiempo(mic osegundos)
16 32 64
0
500
1000
1500
2000
2500
3000
Rendimien o
1
2
4
Bloque
MegaBi s/Segundos
16 32 64
0
0,05
0,1
0,15
0,2
0,25
0,3
0,35
Consumo
1
2
4
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
•Tamaño de imagen 256x256, u ilizando 1, 2 y 4 co es.
66 Be múdez Blanco, Ja ie
16 32 64 128
0
20000
40000
60000
80000
100000
120000
Tiempo
1
2
4
Bloque
Tiempo(mic osegundos)
16 32 64 128
0
100
200
300
400
500
600
700
800
Rendimien o
1
2
4
Bloque
MegaBi s/Segundos
16 32 64 128
0
0,2
0,4
0,6
0,8
1
1,2
Consumo
1
2
4
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
•Tamaño de imagen 512x512, u ilizando 1, 2 y 4 co es.
67 Be múdez Blanco, Ja ie
16 32 64 128 256
0
50000
100000
150000
200000
250000
300000
350000
400000
450000
Tiempo
1
2
4
Bloque
Tiempo(mic osegundos)
16 32 64 128 256
0
50
100
150
200
Rendimien o
1
2
4
Bloque
MegaBi s/Segundos
16 32 64 128 256
0
0,5
1
1,5
2
2,5
3
3,5
4
4,5
Consumo
1
2
4
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
•Tamaño de imagen 768x768, u ilizando 1, 2 y 4 co es.
68 Be múdez Blanco, Ja ie
16 32 64 128 256
0
100000
200000
300000
400000
500000
600000
700000
800000
Tiempo
1
2
4
Bloque
Tiempo(mic osegundos)
16 32 64 128 256
0
20
40
60
80
100
Rendimien o
1
2
4
Bloque
MegaBi s/Segundos
16 32 64 128 256
0
1
2
3
4
5
6
7
8
Consumo
1
2
4
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
Ap eciaciones
Al analiza las se ies de expe imen os pa a dis in os amaños pa a una misma imagen, podemos
ap ecia una se ie de endencias:
•Tiempo de ejecución.
No exis e en es e caso una g an di e encia en e la elección de uno, dos o cua o h eads;
se puede ap ecia una pequeña mejo a con dos h eads, pe o no al aumen a has a cua o
h eads. La azón es iba en lo cos oso del p oceso de plani icación pa a amaños de
bloque de educidas dimensiones con espec o al b e e iempo de p ocesamien o.
•Rendimien o/consumo.
Compa a i amen e, el endimien o es mucho meno que en una máquina de al o
endimien o. Sin emba go, el consumo ene gé ico es mucho meno (y po an o la
e iciencia ene gé ica mayo ). Es e es uno de los p incipales pun os ue es de es e ipo de
a qui ec u as.
69 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
U ilización conjun a de ARM y DSP (K2H)
Ap eciaciones
En gene al, los iempos de ejecución no son signi ica i amen e mejo es al in oduci el uso del DSP
70 Be múdez Blanco, Ja ie
128 256 512 768
0
100000
200000
300000
400000
500000
600000
700000
800000
Tiempo
16
32
64
128
256
Bloque
Tiempo(mic osegundos)
128 256 512145,25 768
0
500
1000
1500
2000
2500
3000
Rendimien o
16
32
64
128
256
Bloque
MegaBi s/Segundos
128 256 512 768
0
1
2
3
4
5
6
7
8
Consumo
16
32
64
128
256
Bloque
Julios
T abajo Fin de G ado en Ingenie ía de Compu ado es
como cop ocesado . Sin emba go, la limi ación en la can idad de memo ia disponible hace que an o
el amaño de las imágenes como el amaño de bloque se ea se iamen e limi ado, y po an o el
endimien o ob enido no sea signi ica i amen e mejo . Se espe a, no obs an e, que dicho
endimien o mejo e pa a imágenes de mayo amaño (siemp e que el amaño de memo ia deje de
se una limi ación en u u as gene aciones).
71 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
72 Be múdez Blanco, Ja ie
T abajo Fin de G ado en Ingenie ía de Compu ado es
5 Conclusiones
En es e abajo se ha desa ollado una aplicación comple a pa a la de ección de bo des en imágenes
en colo explo ando pa alelismo a ni el de a eas. Aunque el obje i o gene al plan eado consis ió en
ealiza una implemen ación po able de dicho código sob e una a qui ec u a de p oposi o
especí ico o mada po p ocesado es ARM y acele ada median e DSP, el desa ollo del p oyec o ha
pe mi ido comp oba el uncionamien o y po abilidad de la misma, con ningún cambio en el
código, sob e o o ipo de a qui ec u as. És as incluyen p ocesado es de al o endimien o y
múl iples GPUs en un mismo sis ema.
Los p incipales hi os conseguidos se esumen en:
1. Se ha diseñado, implemen ado y e aluado el endimien o de una implemen ación del
algo i mo de Canny explo ando pa alelismo a ni el de a eas.
2. In e namen e, se han desa ollado ke nels u ilizando los pa adigmas CUDA y OpenCL pa a
explo a el pa alelismo in e no de cada ipo de acele ado .
3. Se ha po ado y e aluado, sin cambios en el código, dicha implemen ación a a qui ec u as
adicalmen e dis in as, basadas en GPUs y DSPs.
4. Se ha u ilizado el mecanismo p opo cionado po OmpSs pa a la ejecución concu en e de
a eas en CPU y acele ado de o ma anspa en e.
Los esul ados ob enidos demues an la posibilidad de explo a los DSPs como pla a o ma de
acele ación de código, y la posibilidad de u iliza un sis ema basado en plani icado de a eas
(OmpSs) sob e es e ipo de pla a o mas. Aunque los esul ados ob enidos no son alen ado es en
é minos de endimien o, muchos de ellos se basan en las limi aciones ac uales en cuan o a can idad
de memo ia de los DSPs de nue a gene ación. La e aluación de los mismos códigos sob e
pla a o mas simila es u u as esul a á i ial, pues o que no se á necesa io eimplemen a los
códigos. Cabe des aca que se a a de la p ime a expe imen ación sob e es e ipo de pla a o mas
u ilizando OmpSs encon ada en la li e a u a.
Como abajo u u o, se p opone la e aluación de o o ipo de implemen aciones que exhiban
pa alelismo a ni el de a eas, la u ilización de en o nos p ecisos de medición de consumo ene gé ico
y la op imización del código in e no de las a eas pa a acele a el iempo de ejecución indi idual de
cada una de ellas.
73 Be múdez Blanco, Ja ie