scieee Science in your language
[es] (orig)

Evaluación de rendimiento y eficiencia energética de procesos de inferencia en GPUs

Abstract

La compañía NVIDIA se sitúa como un referente de innovación y desarrollo de GPUs, colocándose entre las compañías que más están creciendo en estos últimos meses. Con la nueva gama de GPUs Blackwell publicada este mismo año 2024, vemos la importancia que se le está dando a este sector, como un gran proyecto de futuro. El uso de gran cantidad de datos procedentes del auge de la inteligencia artificial hace que estas máquinas tengan tanta importancia. Parte de las investigaciones que se llevan a cabo son formas de sacar el máximo partido de estas máquinas debido a la cantidad inmensa de procesadores que contienen. Es esta misma premisa lo que se intenta conseguir con este trabajo, haciendo uso del bechmark MLPerf. A través del modo de trabajo Offline que proporciona el banco de trabajo, se estudian una serie de modelos de inferencia que van desde el reconocimiento automático de voz hasta la división de imágenes en 3D para ´ámbito biomédico. Estos modelos ya entrenados se analizan en base a su rendimiento en cuanto a latencia, throughput 1 y rendimiento energético. La tecnología utilizada para contrastar resultados se basa en una NVIDIA A30 y una Jetson Orin AGX, haciendo uso de la herramienta nvpmodel que proporciona a esta última para limitar la potencia máxima consumida. Se ha conseguido ver cómo al aumentar el número de peticiones máximas que se le pasa al modelo, el número de muestras procesadas por segundo aumenta. Esto es debido a que las GPUs son capaces de paralelizar el gran número de peticiones entre sus los distintos cores. Por otro lado, se ha demostrado que la eficiencia energética mejora a medida que disminuye la potencia máxima de la máquina. Esto se debe a que en el proceso de inferencia no se está proporcionando una suficiente carga de trabajo, de forma que no se puede paralelizar en las máquinas de mayor potencia. Por último, cuando se estudia la latencia se ha contrastado que al aumentar el batch que se le pasa al modelo (i.e. el número de peticiones), cuando se fija el número de muestras esperadas al número de muestras resultantes, el tiempo de ejecución no varía.

Read accessible full text

Evaluación de rendimiento y eficiencia energética de procesos de inferencia en GPUs

Author: Isla Llave, Gonzalo
Year: 2024
Source: https://docta.ucm.es/bitstreams/0f02d182-4fdf-4327-98b7-fde2a84a90cf/download
Uni e sidad Complu ense de Mad id
Facul ad de In o m´
a ica
EVALUACI ´
ON DE RENDIMIENTO Y EFICIENCIA
ENERG´
ETICA DE PROCESOS DE INFERENCIA EN
GPUS
PERFORMANCE AND ENERGY EFFICIENCY
EVALUATION OF INFERENCE PROCESSES ON GPUS
T abajo Fin de G ado
G ado en Ingenie ´ıa In o m´a ica
Au o
Gonzalo Isla Lla e
Tu o es
F ancisco D. Igual Pe˜na
Jo ge Villa ubia El i a
Mayo 2024
Ag adecimien os
A mi u o , F an, po su in ini a
paciencia y ayuda en el abajo, y a mi
amilia y amigos po odo su apoyo.
Resumen
La compa˜n´ıa NVIDIA se si ´ua como un e e en e de inno aci´on y desa ollo de GPUs, coloc´ando-
se en e las compa˜n´ıas que m´as es ´an c eciendo en es os ´ul imos meses. Con la nue a gama de GPUs
Blackwell publicada es e mismo a˜no 2024, emos la impo ancia que se le es ´a dando a es e sec o ,
como un g an p oyec o de u u o. El uso de g an can idad de da os p oceden es del auge de la
in eligencia a i icial hace que es as m´aquinas engan an a impo ancia.
Pa e de las in es igaciones que se lle an a cabo son o mas de saca el m´aximo pa ido de es as
m´aquinas debido a la can idad inmensa de p ocesado es que con ienen. Es es a misma p emisa
lo que se in en a consegui con es e abajo, haciendo uso del bechma k MLPe . A a ´es del
modo de abajo O line que p opo ciona el banco de abajo, se es udian una se ie de modelos
de in e encia que an desde el econocimien o au om´a ico de oz has a la di isi´on de im´agenes en
3D pa a ´ambi o biom´edico. Es os modelos ya en enados se analizan en base a su endimien o en
cuan o a la encia, h oughpu 1y endimien o ene g´e ico. La ecnolog´ıa u ilizada pa a con as a
esul ados se basa en una NVIDIA A30 y una Je son O in AGX, haciendo uso de la he amien a
n pmodel que p opo ciona a es a ´ul ima pa a limi a la po encia m´axima consumida.
Se ha conseguido e c´omo al aumen a el n´ume o de pe iciones m´aximas que se le pasa al
modelo, el n´ume o de mues as p ocesadas po segundo aumen a. Es o es debido a que las GPUs
son capaces de pa aleliza el g an n´ume o de pe iciones en e sus los dis in os co es. Po o o lado,
se ha demos ado que la e iciencia ene g´e ica mejo a a medida que disminuye la po encia m´axima de
la m´aquina. Es o se debe a que en el p oceso de in e encia no se es ´a p opo cionando una su icien e
ca ga de abajo, de o ma que no se puede pa aleliza en las m´aquinas de mayo po encia. Po
´ul imo, cuando se es udia la la encia se ha con as ado que al aumen a el ba ch que se le pasa al
modelo (i.e. el n´ume o de pe iciones), cuando se ija el n´ume o de mues as espe adas al n´ume o de
mues as esul an es, el iempo de ejecuci´on no a ´ıa.
Palab as Cla e: NVIDIA, MLPe , In e encia, A30, AGX, n pmodel, endimien o, GPU. El
eposi o io con las apo aciones, sc ip s y esul ados ob enidos se encuen a en es e enlace.
1E iciencia compu acional
3
Abs ac
NVIDIA has become a leading inno a o in GPU de elopmen , posi ioning i sel among he
as es -g owing companies in ecen mon hs. Wi h he elease o he new Blackwell GPU se ies in
2024, we see he impo ance ha is being placed on his sec o , wi h a p omising u u e ahead. The
use o as amoun o da a d i en by he ise o a i icial in elligence highligh s he impo ance o
hese machines.
Pa o he ongoing esea ch ocuses on maximizing he pe o mance due o he massi e amoun
o co es hey ha e. This same p emise is ca ied h ough in his wo k, using MLPe . Wi h he O line
mode p o ided by he benchma k, a se ies o models a e s udied, anging om au oma ic speech
ecogni ion o 3D image segmen a ion o biomedical applica ions. These p e- ained models a e
analyzed o hei pe o mance in e ms o la ency, h oughpu and ene gy e iciency. The echnology
used o compa e he esul s is a NVIDIA A30 and a Je son O in AGX, using he n pmodel ool
p o ided by he la e o cap he maximum powe consump ion.
I has been obse ed ha as he maximum numbe o eques s passed o he model inc eases,
so does he a e o p ocessed samples pe second. This is due o he GPUs being able o pa allelize
he g ea numbe o eques s among hei di e en co es. On he o he hand, i has also been
obse ed ha he ene ge ic e iciency ises wi h dec easing maximum powe o he machine. The
eason o his is ha du ing he in e ence p ocess he e would no be a su icien ly high wo kload,
so pa alleliza ion in he highes powe machines is no op imized. Las ly, in s udying he la ency i
was appa en ha inc easing he ba ch size o he model (i.e., he numbe o eques s), and ixing
he numbe o expec ed samples o he numbe o esul ing samples, he execu ion ime does no
a y.
Key wo ds: NVIDIA, MLPe , In e ence, A30, AGX, n pmodel, bencham k, GPU. The eposi-
o y con aining he con ibu ions, sc ip s, and esul s ob ained is loca ed in his link.
4
´
Indice gene al
1 In oducci´on 9
1.1 Mo i aci´on ......................................... 9
1.2 Obje i os .......................................... 10
2 In oduc ion 12
2.1 Mo i a ion ......................................... 12
2.2 Objec i es .......................................... 13
3 A qui ec u as u ilizadas 14
3.1 NVIDIA A30 ........................................ 14
3.2 Je son AGX O in ...................................... 15
4 MLPe 16
4.1 Es uc u a gene al y escena ios .............................. 16
4.2 Modelos disponibles .................................... 18
4.2.1 BERT ........................................ 18
4.2.2 RNN-T ....................................... 19
4.2.3 3D-Une ....................................... 19
4.2.4 ResNe 50 ...................................... 20
4.2.5 Re inaNe ...................................... 20
4.2.6 GPT-J ........................................ 21
4.2.7 DLRMV2 ...................................... 21
5 Medici´on de po encia 22
5.1 Se ido ........................................... 22
5.1.1 NVIDIA A30 .................................... 22
5.1.2 Je son AGX ..................................... 24
5.2 Clien e ............................................ 26
6 Dise˜no de los expe imen os 28
6.1 Limi aciones ......................................... 31
7 Resul ados Ob enidos 32
7.1 Be ............................................. 32
7.1.1 Th oughpu ..................................... 32
7.1.2 E iciencia Ene g´e ica ................................ 33
7.1.3 La encia ....................................... 35
7.2 Resne 50 ........................................... 36
7.2.1 Th oughpu ..................................... 36
7.2.2 E iciencia ene g´e ica ................................ 36
7.2.3 La encia ....................................... 39
7.3 Rnn ............................................. 40
5

´
INDICE GENERAL
7.3.1 Th oug hpu .................................... 40
7.3.2 E iciencia ene g´e ica ................................ 41
7.3.3 La encia ....................................... 42
7.4 3D-Une ........................................... 43
8 Conclusi´on inal y abajo u u o 44
9 Conclusion and u u e wo k 45
A Sc ip pa a au oma iza MLPe 46
B Ejemplo de clien e PMLib u ilizando c ypes 48
6
´
Indice de igu as
4.1 Rep esen aci´on del modelo LoadGen. [1]......................... 16
4.2 Mapa concep ual de las ases del modelo BERT. [2]................... 19
4.3 Capas con olucionales del modelo 3D-Une . [3]..................... 20
4.4 Rep esen aci´on de ed pi amidal con las dos sub edes p opues a po Re inane . [4]. 21
6.1 Es uc u a de di ec o ios. ................................. 28
7.1 Th oughpu hallado po cada alo de ba ch en el modelo Be . ............ 32
7.2 Po encia consumida en cada ba ch po el modelo Be en NVIDIA A30. ....... 33
7.3 Po encia consumida en cada ba ch po el modelo Be en Je son O in AGX. ..... 34
7.4 Po encia consumida en cada ba ch po el modelo Be en Je son O in AGX con 15W
po encia m´axima. ...................................... 34
7.5 La encia en cada ba ch pa a el modelo Be . ....................... 35
7.6 Th oughpu hallado po cada alo de ba ch en el modelo Resne 50. ......... 36
7.7 Po encia consumida en cada ba ch po el modelo Resne 50 en NVIDIA A30. ..... 37
7.8 Po encia consumida en cada ba ch po el modelo Resne 50 en Je son O in AGX. . . 37
7.9 Po encia consumida en cada ba ch po el modelo Resne 50 en Je son O in AGX con
15W po encia m´axima. ................................... 37
7.10 E iciencia ene g´e ica consumida en cada ba ch po el modelo Resne 50. ........ 38
7.11 La encia en cada ba ch pa a el modelo Resne 50. .................... 39
7.12 Th oughpu hallado po cada alo de ba ch en el modelo Rnn . ........... 40
7.13 Po encia consumida en cada ba ch po el modelo Rnn en NVIDIA A30. ....... 41
7.14 Po encia consumida en cada ba ch po el modelo Rnn en Je son O in AGX. . . . . 41
7.15 Po encia consumida en cada ba ch po el modelo Rnn en Je son O in AGX con 15W
po encia m´axima. ...................................... 41
7.16 La encia en cada ba ch pa a el modelo Rnn . ...................... 42
7.17 Th oughpu hallado po cada alo de ba ch en el modelo 3D-Une . ......... 43
7
´
Indice de ablas
4.1 Ca ac e ´ıs icas de los modos de MLPe . [5]....................... 17
7.1 Compa aci´on de la encia en e di e en es m´aquinas y ama˜nos de ba ch pa a Be . . 34
7.2 Compa aci´on de la encia en e di e en es m´aquinas y ama˜nos de ba ch pa a Resne 50. 38
7.3 Compa aci´on de la encia en e di e en es m´aquinas y ama˜nos de ba ch pa a Rnn . . 42
8
Cap´ı ulo 1
In oducci´on
1.1. Mo i aci´on
Desde la in enci´on del p ime o denado se ha abajado pa a mejo a el endimien o del p o-
cesamien o de da os, y los en oques han sido muy a iados. Al inicio se lle ´o a cabo aumen ando
la ecuencia de eloj y, de o ma o almen e anspa en e al p og amado , se ob u o una mejo a
sus ancial. Sin emba go, debido a las co ien es de uga y el aumen o en la disipaci´on de calo que
p oduce aumen a la ecuencia, es e sis ema no puede lle a se a cabo de o ma inde inida. Po
o a pa e, siguiendo la amosa Ley de Moo e en 1965 [6], se ha conseguido du an e a˜nos educi
el ama˜no de los ansis o es a la mi ad cada 18 meses, pe o a su ez es a mejo a ambi´en es ´a
limi ada.
A ni el de unip ocesado hemos enido que oma o as ´ıas pa a mejo a los compu ado es,
op ando en p ime luga po la pa alelizaci´on a ni el de ins ucci´on (ILP). Es o in odujo as´ı ´e mi-
nos como cambio de con ex o opipelines y po an o, ´ecnicas que hicie on mejo a el endimien o
como la ejecuci´on ue a de o den (Ou o O den - OoO), las p edicciones de sal o, el cambio de la
je a qu´ıa de memo ia pa a hace accesos ecualescen es, e c.
M´as a de lleg´o el pa alelismo a ni el de h ead (TLP), consiguiendo ejecu a a ios hilos en
un s´olo n´ucleo. Al igual que con ILP, ambi´en ajo p oblemas pa a el p og amado a la ho a de
sinc oniza los da os (ca e as c ´ı icas, deadlocks, cohe encias de cach´e, e c.), aunque mejo ´o el
endimien o.
No ue has a inicios de los 2000 cuando se popula iz´o el uso de o denado es mul ico e, consi-
guiendo conec a a ios co es ´ısicos en e ellos po buses de al a elocidad. A˜nadi una memo ia
cach´e compa ida, di e en e de la indi idual, hizo que la la encia de acceso a memo ia bajase de
o ma d ´as ica y acili ase la comunicaci´on y po ende, el endimien o.
Como ´ul imo paso, a ni el de CPU, exis en los g ids, que son la in e conexi´on de p ocesado es
mul ico e a a ´es de ed, lo que nos pe mi e coo dina ecu sos de o ma no cen alizada, pa alela
y dis ibuida. Pese a odas es as mejo as cabe des aca que hay casos en los que po mucho m´as
co es que se a˜nadan, po na u aleza de la aplicaci´on, no es posible pa aleliza el p og ama.
Con el auge de los ideojuegos y con el alicien e po mejo a sus g ´a icos, nace en 1999 el
´e mino GPU (G aphics P ocessing Uni ), que conlle a la explo aci´on del pa alelismo a ni el de
da os. Debido a la can idad de ope aciones de ec o es de i adas del ende izado de im´agenes que
p oducen los ideojuegos, su gen las ins ucciones ec o iales o SIMD (Single Ins uc ion Mul iple
Da a).
A d´ıa de hoy, aunque las GPUs se siguen usando pa a el dise˜no de g ´a icos, an o el auge
de High Pe o mance Compu ing (HPC) como de Machine Lea ning han ocul ado su p op´osi o
inicial. G acias a que con ienen una can idad inmensa de co es y la memo ia es ´a dise˜nada pa a
pode accede de o ma ´apida y e icaz, se ob ienen mejo as como la pa alelizaci´on masi a de
ins ucciones. Adem´as, se consigue un g an ancho de banda pa a ae o lle a memo ia desde la
9
Cap´ı ulo 4
MLPe
En es e abajo se ha elegido u iliza el es ´anda de in e encia con MLPe publicado en 2020 po
MLCommons, un benchma k que complemen a el en enamien o de MLPe . Lanzada la pa e
de in e encia en 2019 [11], se han apo ado m´as de 3500 esul ados po pa e de la comunidad, con
m´as de 100 con igu aciones dis in as pasando po dis in as CPUs, GPUs, FPGAs y o o ipo de
acele ado es. Hecho pa a in es igaci´on, con iene una se ie de modelos de c´odigo abie o de dis in os
ipos como segmen aci´on de im´agenes en el ´ambi o m´edico, econocimien o au om´a ico de oz o
au ocomple ado de ases, en e o os, que nos pe mi e con as a endimien o. Es os son: Be ,
Rnn , 3d-Une , GPTJ, DLRMV2, Resne 50 y Re inane . En e las e siones disponibles, se ha
decidido u iliza la ´ul ima en el momen o de incia es e abajo, la 3.1.
4.1. Es uc u a gene al y escena ios
Si no se comen a nada, pa ece que MLPe es el enca gado de ealiza odo el abajo de in e en-
cia, pe o no es as´ı. Pa a pode medi el endimien o u iliza el modelo LoadGen [1] esquema izado
en la igu a 4.1, el cual, a pa i del sis ema sob e el que que emos ejecu a (Sys em Unde Tes o
SUT), escena io y con igu aci´on especi icada, gene a el ´a ico necesa io pa a la ejecuci´on del mo-
delo. Adem´as es el enca gado de medi cie os pa ´ame os como la encia o mues as po segundo.
El o den en el que abaja con el benchma k es que es e le dice el conjun o de da os del modelo
con el que abaja y LoadGen gene a las pe iciones con las mues as. Una ez acabado LoadGen
le esponde con los esul ados ob enidos.
Figu a 4.1: Rep esen aci´on del modelo LoadGen. [1]
16

MLPe
LoagGen o ece una se ie de escena ios que simulan dis in os en o nos de abajo donde se
puede aplica in e encia en nues o SUT: O line, Se e , SingleS eam y Mul iS eam. La di e encia
en e ellos es la o ma en la que eciben los da os de en ada (ba ch) y epo an el esul ado. O line
simula una aplicaci´on de p ocesamien o de mues as, ecibe una pe ici´on al sis ema con odas las
mues as y una ez ealizado el p oceso, de uel e el esul ado en cualquie o den. Ejemplo de
es o puede se encon a el n´ume o de pe sonas que hay en una o og a ´ıa. Pa a la medici´on de
endimien o se usan pe iciones p ocesadas po segundo (que ies pe second o qps).
En el modo Se e , en cambio, llegan los da os usando una dis ibuci´on Poisson, la cual se
asemeja a los da os ecibidos com´unmen e po un se ido , po lo que la unidad pa a medi iempo
uel e a se qps. Aqu´ı la la encia es impo an e, ya que al igual que hacemos consul as po in e ne
conec ´andonos a un se ido , que emos que aya ´apido. Po es o el SUT esponde a cada mues a
en un ango de 15 a 250 milisegundos, y s´olo un pe cen il de uno de las mues as p ocesadas pueden
pasa se del iempo m´aximo pa a que el esul ado siga siendo ´alido.
En SingleS eam llega una mues a po pe ici´on, la cu´al debe inaliza la ejecuci´on pa a que
se en ´ıe la siguien e. Debido a la impo ancia de la la encia, pa a medi el endimien o se mide con
el pe cen il 90 del iempo en el que se ha lle ado a cabo.
Po ´ul imo, en Mul ipleS eam llegan a ias mues as po pe ici´on con una ecuencia ijada
an es de empeza el p oceso. La in e encia se debe comple a en e 50 y 100 milisegundos depen-
diendo del modelo, po lo que se epo a la la encia de an as mues as como haya dado iempo a
ealiza se en el iempo aco dado. Se abaja po in e alos, de o ma que si se es ´a p ocesando la
pe ici´on an e io y se acaba el l´ımi e, las dem´as mues as sal an un in e alo. Pa a que la ejecuci´on
sea ´alida ocu e lo mismo que con Se e , s´olo un uno po cien o de las mues as pueden no cumpli
el plazo.
Scena io Que y Gene a ion Du a ion Samples
/ que y
La ency
Cons-
ain
Tail
La-
ency
Pe o mance
Me ic
Single
s eam
LoadGen sends nex
que y as soon as SUT
comple es he p e ious
que y
1024 que ies
and 60 se-
conds
1 None 90 % 90 %-ile mea-
su ed la ency
Mul iple
s eam
(1.1 and
ea lie )
LoadGen sends a new
que y e e y la ency
cons ain i he SUT
has comple ed he
p io que y, o he wise
he new que y is d op-
ped and is coun ed as
one o e ime que y
270,336 que-
ies and 60
seconds
Va iable,
see me-
ic
Benchma k
speci ic
99 % Maximum
numbe o
in e ences
pe que y
suppo ed
Mul iple
s eam
(2.0 and
la e )
Loadgen sends nex
que y, as soon as SUT
comple es he p e ious
que y
270,336 que-
ies and 600
seconds
8 None 99 % 99 %-ile mea-
su ed la ency
Se e LoadGen sends new
que ies o he SUT ac-
co ding o a Poisson
dis ibu ion
270,336 que-
ies and 60
seconds
1 Benchma k
speci ic
99 % Maximum
Poisson h-
oughpu
pa ame e
suppo ed
O line LoadGen sends all que-
ies o he SUT a s a
1 que y and
60 seconds
A leas
24,576
None N/A Measu ed h-
oughpu
Tabla 4.1: Ca ac e ´ıs icas de los modos de MLPe . [5]
17
MLPe
Los cua o modos de ejecuci´on cumplen una se ie de es icciones que deben cumpli pa a que
la ejecuci´on sea ´alida, encon adas en el iche o ex uning guide.md en la ca pe a de docu-
men aci´on. En odos ellos la du aci´on m´ınima (min du a ion) debe de se de 600 segundos, 60 si
se u iliza el lag ’-- as ’. Todos deben cumpli que, de o ma espec i a, los o line expec ed qps,
se e a ge qps, single s eam expec ed la ency ns y mul i s eam expec ed la ency ns sean ma-
yo es que los a˜nadidos en el iche o de con igu aci´on. Adem´as se deben de cumpli un n´ume o m´ınimo
de consul as ijado po de ec o en 24576 pa a O line, 270336 pa a Se e , 1024 pa a SingleS eam
y 270336 pa a Mul iS eam.
A pesa de es as es icciones, a´un exis e un conside able ma gen de op imizaci´on en la con i-
gu aci´on, pe mi iendo, po ejemplo, sac i ica algo de exac i ud a a o de meno la encia. MLPe
nos o ece dos ´ıas: closed, que es algo m´as es ingida pe o m´as ´acil de con igu a , y open, que
pe mi e mayo lexibilidad en los l´ımi es de cada modelo. En es e es udio se u iliza ´a la opci´on
closed.
MLCommons in en a asemeja se en odo lo posible a casos eales, po lo que di ide la calidad
de se icio en a ios sis emas: HPC, Edge, Da acen e , Tiny y Mobile. En nues o caso, al usa la
e si´on de la Je son O in-AGX en a en el ´ambi o de sis emas Edge, mien as que la A30 pe enece
a Da acen e .
Docke Tan o pa a la p epa aci´on del en o no como pa a ejecuci´on de los modelos, MLPe u iliza
Docke . Docke es una pla a o ma so wa e que, median e la c eaci´on de con enedo es, pa ecidos
a m´aquinas i uales, nos pe mi e ejecu a y depu a los e o es de o ma sencilla. Los ’Make ile’
que se nos p opo ciona ya es ´an c eados pa a u iliza es e so wa e, as´ı como el almacenamien o de
los modelos al que apun en la a iable de en o no MLPERF SCRATCH PATH necesa ias pa a la
ejecuci´on, como se indica en la documen aci´on.
4.2. Modelos disponibles
4.2.1. BERT
El modelo de lenguaje BERT (Bidi ec ional Encode Rep esen a ions om T ans o me s) [2],
ep esen ado en la igu a 4.2, enmasca a alea o iamen e cie as palab as del mensaje de en ada
que ecibe y, a a ´es del con ex o, in en a p edeci con la mayo exac i ud posible la palab a
enmasca ada. Es e modelo mejo a a o os de su mismo p op´osi o ya que usiona el con ex o izquie do
y el de echo, adem´as de abaja median e pa es de o aciones. Po el momen o s´olo abaja con
ex o en ingl´es. Es ´a compues o po dos ases: p e-en eno y ine- uning. El p e-en eno, a a ´es de
a eas di e en es gene a una se ie de da os; es os son pasados a la a ea ine- uning pa a consegui
ajus a el modelo.
18
MLPe
Figu a 4.2: Mapa concep ual de las ases del modelo BERT. [2]
4.2.2. RNN-T
RNN-T (Recu en Neu al Ne wo k-T ansduce ) [12] es un modelo de econocimien o au om´a i-
co de oz. El modelo p opues o po Alex G a es unciona secuencia a secuencia y es ´a o mado de
3 componen es: un codi icado ac´us ico que ecibe unos da os de en ada y gene a una ep esen a-
ci´on de al o ni el, una ed de p edicci´on y un mezclado que une los esul ados de los dos pasos
an e io es.
4.2.3. 3D-Une
El modelo 3D-Une [3] es una ed neu onal con olucional dise˜nada en 2015, usada pa a la di isi´on
de im´agenes en 3D en el ´ambi o biom´edico. Es o signi ica que la ed ecibe una se ie de im´agenes
pa a se en enada y, median e ope aciones ma em´a icas como pueden se ope aciones ma iciales,
p oduce un esul ado. Es o se asemeja mucho a la idea de aplica un il o a una imagen. Es ´a
o mada po 2 pa es, ambas con 4 capas de nodos: la codi icado a, a a ´es de la cual se eligen los
da os que nos in e esan, y la descodi icado a, que ha ´a las ope aciones in e sas de la con oluci´on
pa a la gene aci´on del esul ado. La capas con olucionales de es e modelo son esbozadas en la igu a
4.3.
19
MLPe
Figu a 4.3: Capas con olucionales del modelo 3D-Une . [3]
4.2.4. ResNe 50
ResNe -50 (Residual Ne wo k) [13] es una ed con olucional con 50 capas, capaz de clasi ica
o og a ´ıas en al ededo de 1000 ca ego ´ıas dis in as como puede se di e encia animales. Es ´a
o mada po 48 capas con olucionales, 1 capa MaxPool, basada en di idi la imagen y educi la
eligiendo el alo m´as al o de cada ec ´angulo, y una ´ul ima capa pool que saca el p omedio.
4.2.5. Re inaNe
Re inaNe [4] es un modelo de una sola ase de de ecci´on de obje os median e una ope aci´on de
p´e dida ocal. Usado pa a im´agenes a´e eas y de sa ´eli e, se ealiza una ed pi amidal (FPN) sob e
el esul ado de aplica ResNe a la imagen de en ada. Es a pi ´amide, ep esen ada en la igu a
4.4, es ´a compues a de ancho boxes [14]. Se a a de una ´ecnica usada en la de ecci´on de obje os
basada en una se ie de cajas o ancho boxes p ede inidas seg´un los da os de en ada, a los que el
modelo a ibuye una se ie de a ibu os como la p obabilidad de encon a el obje o. Despu´es se
ponen en ma cha o as dos sub edes: una clasi icaci´on de ancho boxes y una eg esi´on sob e las
capas de la pi ´amide.
20
MLPe
Figu a 4.4: Rep esen aci´on de ed pi amidal con las dos sub edes p opues a po Re inane . [4]
4.2.6. GPT-J
Gene ado po Eleu he AI, GPT-J (Gene a i e P e- ained T ans o me )[15] es un modelo con
c´odigo abie o de gene aci´on de ex o en ingl´es a pa i de un ex o de en ada. La complejidad del
modelo al con ene 28 capas, ene 6 mil millones de pa ´ame os y habe sido en enado po una
can idad masi a de da os (modelo de en enamien o llamado The Pile [16] de 825GiB), pe mi e
gene a ex o de o ma c ea i a. Cabe des aca que s´olo unciona pa a ex o en ingl´es y, aunque
u iliza la misma ecnolog´ıa de ans o maci´on de lenguaje, no es lo mismo que el amoso modelo
Cha GPT, ya que es e ´ul imo u iliza un n´ume o mucho meno de pa ´ame os (al ededo de medio
mill´on en el caso de Cha GPT-4).
4.2.7. DLRMV2
DLRM 2 (Deep Lea ning Recommenda ion Model) es un modelo de ecomendaci´on dise˜nado
pa a hace uso an o de da os num´e icos como ca eg´o icos. Es ´a dise˜nado pa a pode en ena
modelos que sean demasiado g andes pa a una sola GPU y abaja con cualquie ipo de conjun o
de da os.
Al ya conoce odos los modelos, podemos de ini a qu´e co esponde una pe ici´on o que ie en
uno de ellos. En caso de Resne , Re inane , 3d-une una consul a se e ie e a una sola im´agen,
mien as que en Be y GPT-J es una ase, en Rnn un audio de has a 15 segundos y en DLRMV2
has a 700 pa es de da os usua io-elemen o.
21

Cap´ı ulo 5
Medici´on de po encia
Pa a la medici´on de po encia se ha usado el so wa e PMLib (ejemplo en el ap´endice B)
p opo cionado po el depa amen o DACYA de la UCM, in eg ´andolo en la in aes uc u a de
MLPe . Dise˜nado como un sis ema clien e-se ido , PMLib es capaz de hace uso de di e sos
mecanismos de medici´on de consumo o medido es ex e nos de o ma anspa en e al usua io.
Espec´ı icamen e, PMLib despliega un se ido en la m´aquina des ino que, con p e ia con igu-
aci´on pa a su adap aci´on al sis ema de medici´on pe inen e, o ece median e socke s (po de ec o,
escuchando en el pue o 6521) los se icios necesa ios pa a es ablece con ado es de consumo. La
pa e clien e, que puede desplega se de o ma in e ac i a en cualquie equipo ex e no al de medi-
ci´on median e el comando pm in o, o bien ins umen ando c´odigo, ealiza las pe inen es conexiones
con a dicho se ido , ecogiendo los da os y p opo cionandolos en o ma de iche os de ex o que
pueden a pos e io i se analizados.
5.1. Se ido
En nues o caso, el se ido PMLib ha in e ac uado u ilizando dos mecanismos dis in os de
ecogida de mues as pa a medici´on de consumo, adap ´andose de o ma espec´ı ica a las he amien as
disponibles en cada una de las dos m´aquinas disponibles.
5.1.1. NVIDIA A30
La in aes uc u a p opo cionada po NVIDIA pa a la medici´on de consumo en GPUs disc e as
(como es la A30) es la biblio eca NVML (NVIDIA Managemen Lib a y). NVML p opo ciona una
API comple a pa a la in e acci´on desde p og amas (inicialmen e en lenguaje C) pa a ges iona
y consul a mul i ud de pa ´ame os p opo cionados po el panel de con ol n idia-smi. En e
es as ca ac e is icas, se encuen a la medici´on ins an ´anea de po encia. En nues o caso, ya que
la in aes uc u a PMLib es ´a desa ollada en Py hon, se ha hecho uso de la biblio eca pyNVML
p opo cionada po la p opia compa˜n´ıa.
Espec´ı icamen e, se ha desa ollado un plugin pa a PMLib que, de o ma cons an e (en unci´on
de la ecuencia de mues eo solici ada po el usua io), ealiza pe iciones al panel de con ol u i-
lizando la in aes uc u a NVML. P e iamen e al desa ollo del plugin, se ha a˜nadido un iche o
de con igu aci´on (se ings.py) en el que se de ine an o la m´aquina a u iliza , como el medido de
consumo (de ipo NVMLDe ice) del que se desea hace uso:
om daemon . d e ices impo ∗
om daemon . modules impo ∗
#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
22
Medici´on de po encia
# Gene al s e c i o n
#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
# IP and Po in which he daemon w i l l be l i s e n i n g ( d e aul : 6526)
IP=” 0 . 0 . 0 . 0 ”
PORT=6526
# Log i l e name ( d e a u l : ”/ a / l og /powe me e . l o g ”)
LOGFILENAME=” . / powe me e . l o g ”
pa h =”.”
#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
# Compu e s s e c i o n
#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
OCEJON = Compu e . Compu e ( name=”OCEJON” , ip=” 0 . 0 . 0 . 0 ” )
#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
# De ices s e c i o n
#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
A30 de = NVMLDe ice( name = ”NVMLDe ice” , compu e = OCEJON, u l=”” , max equency=100)
A30 de . a d d l i n e ( numbe =0, name=”NVML OCEJON” , ol ag e =12 , d e s c i p i o n=”NVML OCEJON” )
La clase NVMLDe ice ealiza la in e accion con la biblio eca NVML de o ma cons an e en su
m´e odo ead, que es in ocado pe i´odicamen e po la in aes uc u a. Espec´ı icamen e, obs´e ese en
el siguien e c´odigo c´omo se c ea una ´unica l´ınea de lec u a de po encia, cuyo alo es de e o no de
la in ocaci´on a la unci´on n mlDe iceGe Powe Usage p opo cionado po pyNVML:
#−∗− coding : u −8−∗−
#======================================================================
# NVMLDe ice c l a s s
#======================================================================
impo De ice
impo pexpec
impo ime
om pyn ml impo ∗
## An NVML d e ic e d e s c i p i o n
class NVMLDe ice( De ice . A achedDe ice ) :
## C ea es a NVML de i ce d e s c i p i o n and adds i o he d e i c es
## dic iona y
#
# @pa am [ in ] name The d e ic e name ( used o i d e n i i c a i o n , mus be unique )
# @pa am [ i n ] u l The u l o h i s d e ic e
# @pa am [ in ] max equency The maximum sample equency o he de ice
#
de i n i ( s e l , name , compu e , u l , max equency ) :
s e l . n l i n e s = 1
s e l . handle= [ 0 ] ∗s e l . n l i n e s
n mlIni ()
o iin ange ( 0 , s e l . n l i n e s ) :
s e l . handle [ i ] = n mlDe iceGe HandleByIndex ( i )
supe (NVMLDe ice , s e l ) . i n i (name , compu e , u l , max equency )
de ead ( s e l ) :
powe = [ 0 ] ∗s e l . n l i n e s
23
Medici´on de po encia
mues a = s e l . max equency ∗ ∗ −1
while s e l . unning :
1 = ime . ime ( )
powe [ 0 ] = n mlDe iceGe Powe Usage ( s e l . handle [ 0 ] )
y i e l d powe
w = mues a −( ime . ime ( ) − 1 )
i ( w >0 ) : ime . s l e e p (w)
A pa i de es e pun o, y as desplega el se ido en segundo plano, se ´a posible ealiza
una in e acci´on con el mismo, c eando con ado es de consumo sob e dicha l´ınea pa a consul a los
alo es de po encia ins an ´anea asociados a la NVIDIA A30.
5.1.2. Je son AGX
En es e caso, la in aes uc u a NVML no es ´a disponible pa a su uso. Sin emba go, NVIDIA
p opo ciona una se ie de disposi i os de medici´on de consumo (senso es de e ec o Hall INA 231 de
Texas Ins umen s), que se exponen a a ´es de iche os en el a bol de di ec o ios de Linux pa a su
consul a. Espec´ı icamen e, nues a soluci´on hace uso de los moni o izaci´on que o ecen las m´aquinas
NVIDIA [17], ealizando una ecopilaci´on de medidas de o ma pe i´odica sob e la m´aquina que se
le indique.
La Je son AGX con iene 2 moni o izaciones de 3 canaless I2C, abajando a a ´es de la lec u a
de una se ie de senso es a a ´es de unos iche os de ex o encon ados en los siguien es di ec o ios:
/sys/bus/i2c/d i e s/ina3221/1-0040/hwmon/hwmon[x]
/sys/bus/i2c/d i e s/ina3221/1-0041/hwmon/hwmon[y]
Los disposi i os 0x40 y 0x41 co esponden con las di ecciones donde se encuen an los moni o es
de po encia. Cada uno de es os iche os co esponden a una ’l´ınea’ o ipo de medici´on, siendo capaces
de pode con igu a qu´e l´ıneas lee desde el iche o se ings.py:
#======================================================================
# Powe Me e daemon s e i n g s
#======================================================================
om daemon . d e ices impo ∗
om daemon . modules impo ∗
#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
# Gene al s e c i o n
#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
# IP and Po in which he daemon w i l l be l i s e n i n g ( d e a u l : 6526)
IP=” 0 . 0 . 0 . 0 ”
PORT=6526
# Log i l e name ( d e a u l : ”/ a / l og / powe me e . l o g ”)
LOGFILENAME=” . / powe me e . l o g ”
pa h =”.”
#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
# Compu e s s e c i o n
#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ORIN = Compu e . Compu e ( name=”ORIN” , ip=” 0 . 0 . 0 . 0 ” )
24
Medici´on de po encia
#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
# De ices s e c i o n
#−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ORINAGX de = ORINAGXDe ice( name = ”ORINAGXDe ice” , compu e = ORIN, u l=”” ,
max equency=100)
ORINAGX de . a d d l i n e ( numbe =0, name=”AGX” , ol ag e =12, d e s c i p i o n=”AGX” )
ORINAGX de . a d d l i n e ( numbe =1, name=”AGX” , ol ag e =12, d e s c i p i o n=”AGX” )
ORINAGX de . a d d l i n e ( numbe =2, name=”AGX” , ol ag e =12, d e s c i p i o n=”AGX” )
ORINAGX de . a d d l i n e ( numbe =3, name=”AGX” , ol ag e =12, d e s c i p i o n=”AGX” )
ORINAGX de . a d d l i n e ( numbe =4, name=”AGX” , ol ag e =12, d e s c i p i o n=”AGX” )
ORINAGX de . a d d l i n e ( numbe =5, name=”AGX” , ol ag e =12, d e s c i p i o n=”AGX” )
ORINAGX de . a d d l i n e ( numbe =6, name=”AGX” , ol ag e =12, d e s c i p i o n=”AGX” )
ORINAGX de . a d d l i n e ( numbe =7, name=”AGX” , ol ag e =12, d e s c i p i o n=”AGX” )
ORINAGX de . a d d l i n e ( numbe =8, name=”AGX” , ol ag e =12, d e s c i p i o n=”AGX” )
ORINAGX de . a d d l i n e ( numbe =9, name=”AGX” , ol ag e =12, d e s c i p i o n=”AGX” )
ORINAGX de . a d d l i n e ( numbe =10 , name=”AGX” , ol ag e =12, d e s c i p i o n=”AGX” )
Obs´e ese que se a˜naden 11 l´ıneas que se ´an expues as a los usua ios. Espec´ı icamen e, es as
l´ıneas co esponden a mediciones de ol aje y ampe aje pa a cada uno de los posibles disposi i os
de in e ´es. V´ease la de inici´on de la clase ORINAGXDe ice pa a obse a c´omo se ex aen y combinan
dichas l´ıneas (obs´e ese que, en es e caso, la in e acci´on con los senso es se ealiza ab iendo y leyendo
cons an emen e iche os de ex o):
#−∗− coding : u −8−∗−
#======================================================================
# PDUDe ice c l a s s
#======================================================================
impo De ice
impo pexpec
impo ime
## An ORINNANO d e ic e d e s c i p i o n
class ORINAGXDe ice( De ice . A achedDe ice ) :
## C ea es a ORINAGX d e ic e d e s c i p i o n and adds i o he d e i ce s
## dic iona y
#
# @pa am [ in ] name The d e ic e name ( used o i d e n i i c a i o n , mus be
unique)
# @pa am [ i n ] u l The u l o h i s d e ic e
# @pa am [ in ] max equency The maximum sample equency o he de ice
#
de i n i ( s e l , name , compu e , u l , max equency ) :
s e l . n l i n e s = 11
supe (ORINAGXDe ice , s e l ) . i n i (name , compu e , u l , max equency )
de ead ( s e l ) :
powe = [ 0 ] ∗s e l . n l i n e s
mues a = s e l . max equency ∗ ∗ −1
while s e l . unning :
1 = ime . ime ( )
powe [ 0 ] = loa (open (”/ s ys / bus / i 2c / d i e s / ina3221 /1−0040/hwmon/hwmon3/
cu 1 inpu ”,” b” ) . ead ( ) )
powe [ 1 ] = loa (open (”/ s ys / bus / i 2c / d i e s / ina3221 /1−0040/hwmon/hwmon3/ i n 1 inpu
”,” b ” ) . ead ( ) )
powe [ 2 ] = loa (open (”/ s ys / bus / i 2c / d i e s / ina3221 /1−0040/hwmon/hwmon3/
cu 2 inpu ”,” b” ) . ead ( ) )
powe [ 3 ] = loa (open (”/ s ys / bus / i 2c / d i e s / ina3221 /1−0040/hwmon/hwmon3/ i n 2 inpu
”,” b ” ) . ead ( ) )
powe [ 4 ] = loa (open (”/ s ys / bus / i 2c / d i e s / ina3221 /1−0040/hwmon/hwmon3/
25
Cap´ı ulo 7
Resul ados Ob enidos
Como se ha comen ado, en el es udio se analiza el h oughpu , que en es e caso equi ale a los
qps, la la encia y el endimien o ene g´e ico en cada uno de los modelos.
7.1. Be
7.1.1. Th oughpu
En el caso del h oughpu nos enemos que hace la p egun a de d´onde es ´an los l´ımi es de las
pe iciones p ocesadas de cada m´aquina, si di ie en en e ellas y en cu´an o.
Figu a 7.1: Th oughpu hallado po cada alo de ba ch en el modelo Be .
32

Resul ados Ob enidos
En es e modelo nos encon amos con unos l´ımi es de endimien o muy cla os como se e en
la igu a 7.1, es abiliz´andose an es cuan o meno es la po encia m´axima. Adem´as emos un cla o
aumen o en los qps cuan o mayo es es a po encia, alcanzando 1531 qps en la A30 con un ba ch
70, 512 con ba ch 30 en la Je son O in AGX y 67 qps con ba ch 20 al limi a la AGX a 15W.
7.1.2. E iciencia Ene g´e ica
Aunque las GPUs no es ´en en uncionamien o sabemos que sigue habiendo un consumo es ´a ico
po es a conec ada a la co ien e. En el caso de la A30 es ´a en 31.5 W y, po pa e de la O in, la
suma de CPU, GPU y o as consumos onda los 6.5W, sin impo a que es ´e capada la po encia
m´axima.
Pa a halla la e iciencia ene g´e ica p ime o debemos conoce el gas o de po encia en cada una de
las m´aquinas con dis in os alo es de ba ch. Pa a es os alo es se han omado los siguien es alo es
de ba ch: 1, 20 y 70.
Figu a 7.2: Po encia consumida en cada ba ch po el modelo Be en NVIDIA A30.
33
Resul ados Ob enidos
Figu a 7.3: Po encia consumida en cada ba ch
po el modelo Be en Je son O in AGX.
Figu a 7.4: Po encia consumida en cada ba ch
po el modelo Be en Je son O in AGX con 15W
po encia m´axima.
As´ı como en la A30 ( e g ´a ica 7.2) se e como, po mucho que se a ´ıe el ba ch ecibido, la
po encia m´axima consumida es la m´axima con 165W, no pasa lo mismo en la AGX.
Y es que la po encia consumida en la AGX con m´axima po encia a ´ıa, y mucho, con espec o
al ba ch indicado, como se ap ecia en la igu a 7.3. Llega a pasa de al ededo de 30W de media con
ba ch 1, subiendo ´apidamen e a los 50W con ba ch 10. No se alcanza el m´aximo de 60W ya que hay
que eco da que se ienen las o as dos l´ıneas de consumo: medici´on de CPU y de subsis ema de
memo ia. En cambio, al capa la m´aquina a 15W no se dispone de mucho ma gen de mejo a debido
a que, de o ma m´as d ´as ica que el caso an e io , el consumo de las o as dos l´ıneas de consumo
limi an la po encia consumida. A´un as´ı se puede ap ecia una peque˜na mejo a de al ededo de un
wa io en e las ejecuciones con ba ch 1 y 70. Es o se obse a en la igu a 7.4.
Ya is os los gas os de po encia, pasamos a lo que nos in e esa: la e iciencia ene g´e ica. Pa a
ello se c ea la abla 7.1, en la que se disponen los dis in os n´ume os de ba ch de e e encia en cada
una de las m´aquinas u ilizadas.
Ba ch M´aquina
NVIDIA A30 Je son O in AGX Je son O in AGX 15W
1666.422 / 163.842 = 4.068 185.116 / 29.985 = 6.173 38.389 / 5.781 = 6.640
20 1469.62 / 164.123 = 8.957 502.88 / 51.551 = 9.755 65.5127 / 6.580 = 9.955
70 1531.75 / 164.097 = 9.9337 534.112 / 53.787 = 9.931 66.8021 / 6.589 = 10.138
Tabla 7.1: Compa aci´on de la encia en e di e en es m´aquinas y ama˜nos de ba ch pa a Be .
De aqu´ı se sacan dos conclusiones: en p ime luga , pa a un ama˜no de ba ch peque˜no da lo
espe ado, la NVIDIA A30 es menos e icien e al no ene su icien es da os a analiza y consumi la
m´axima po encia. Pe o, so p enden emen e, los da os que se mues an al u iliza un ba ch de g an
ama˜no indican que el aumen o de los qps en la NVIDIA A30 no es su icien e pa a con a es a la
po encia consumida.
34
Resul ados Ob enidos
7.1.3. La encia
Siendo Be el ´unico modelo en el que no se ha u ilizado la opci´on -- as pa a acele a el c´ompu o
en la AGX, la di e encia de la encia en e las m´aquina es m´ınima como se e en la 7.5.
Figu a 7.5: La encia en cada ba ch pa a el modelo Be .
35
Resul ados Ob enidos
7.2. Resne 50
7.2.1. Th oughpu
Al igual que con el modelo Be , Resne 50 no a ´ıa en la exis encia cla a de unos l´ımi es ma cados
po el endimien o de la m´aquina ( e igu a 7.6). Es os es ´an ma cados al ededo del ba ch 200
pa a el caso de la A30, alcanzando m´as de 19000 qps; con un ba ch 70 en cuan o a AGX con 6100
pe iciones po segundo y ba ch 7 con apenas 1340 al limi a a 15W.
Figu a 7.6: Th oughpu hallado po cada alo de ba ch en el modelo Resne 50.
7.2.2. E iciencia ene g´e ica
En cambio, Resne 50 iene una singula idad con los dem´as modelos es udiados como se ap ecia
en la im´agen 7.7, y es que a ´ıa la po encia consumida en la A30. Es o quie e deci que debido a
la implemen aci´on del modelo, con un n´ume o muy peque˜no de pe iciones po segundo no necesi a
u iliza la po encia m´axima disponible.
36
Resul ados Ob enidos
Figu a 7.7: Po encia consumida en cada ba ch po el modelo Resne 50 en NVIDIA A30.
Figu a 7.8: Po encia consumida en cada ba ch
po el modelo Resne 50 en Je son O in AGX.
Figu a 7.9: Po encia consumida en cada ba ch
po el modelo Resne 50 en Je son O in AGX
con 15W po encia m´axima.
Con la AGX emos la misma es uc u a que se e´ıa en el modelo Be con las igu as 7.8 y7.9.
Se ap ecia un mayo consumo de po encia al aumen a los qps has a el l´ımi e de 40W. De nue o
no hay un mayo consumo debido a que es ´a siendo usado po las o as dos l´ıneas de consumo.
Al calcula la e iciencia ene g´e ica di idiendo los qps en e po encia consumida en los pun os
de ba ch es udiandos, de nue o se ap ecia como una mejo e iciencia en la AGX capando a 15W.
Es a di e encia es mucho m´as d ´as ica que en Be , siendo m´as del doble de e icien e pa a ba ches
g andes, al ealiza se un mayo n´ume o de qps. Los c´alculos se disponen en la abla 7.2. Pa a e
la di e encia de o ma g ´a ica se dispone de la igu a 7.10.
37

Resul ados Ob enidos
Ba ch M´aquina
NVIDIA A30 Je son O in AGX Je son O in AGX 15W
11927.86 / 95.742 = 20.139 2931.51 / 18.873 = 155.308 1344.51 / 5.573 = 241.183
79213.47 / 136.516 = 67.506 5018.74 / 26.769 = 187.420 1731.59 / 6.196 = 279.470
70 18009.9 / 160.638= 112.097 6181.56 / 34.069 = 181.397 1703.14 / 6.230 = 273.408
200 19208.9 / 160.948 = 119.354 6328.86 / 35.729 = 177.202 1456.22 / 5.943= 245.059
Tabla 7.2: Compa aci´on de la encia en e di e en es m´aquinas y ama˜nos de ba ch pa a Resne 50.
Figu a 7.10: E iciencia ene g´e ica consumida en cada ba ch po el modelo Resne 50.
38
Resul ados Ob enidos
7.2.3. La encia
En la la encia de Resne 50, aunque se puede dis ingui un lige o aumen o en AGX con 15W de
po encia m´axima que en la AGX, no es ep esen a i a. La compa a i a de la AGX con la A30 no es
ep esen a i a al habe u ilizado el lag -- as , aco ando as´ı el iempo consumido po la m´aquina
al ealiza la in e encia. A´un as´ı se ap ecia c´omo al aumen a el ba ch has a llega a los l´ımi es, la
la encia no a ´ıa.
Figu a 7.11: La encia en cada ba ch pa a el modelo Resne 50.
39
Resul ados Ob enidos
7.3. Rnn
7.3.1. Th oug hpu
En el modelo Rnn ocu e un caso algo dis in o a los o os dos modelos. An e io men e hemos
is o que cuan o m´as po en e es la m´aquina se ob iene un mayo endimine o con un n´ume o de
ba ch mayo . Pe o es e no es el caso de Rnn como se ap ecia en la igu a 7.12. Lo que ocu e es
que debido al g an aumen o exponencial de qps en los ba ches peque˜nos de la A30, se llega an es
al l´ımi e en es a m´aquina que en la AGX con m´axima po encia. Es o no pasa al capa a 15W ya
que el escalado es m´ınimo.
Figu a 7.12: Th oughpu hallado po cada alo de ba ch en el modelo Rnn .
40
Resul ados Ob enidos
7.3.2. E iciencia ene g´e ica
Figu a 7.13: Po encia consumida en cada ba ch po el modelo Rnn en NVIDIA A30.
Figu a 7.14: Po encia consumida en cada ba ch
po el modelo Rnn en Je son O in AGX.
Figu a 7.15: Po encia consumida en cada ba ch
po el modelo Rnn en Je son O in AGX con
15W po encia m´axima.
Con Rnn pasa algo pa ecido que con Be , en la NVIDIA A30 ( e igu a 7.13) pa a cualquie
alo de ba ch se ob iene que se consume la m´axima po encia, mien as que en la AGX pa a ba ches
peque˜nos se gas a al ededo de la mi ad que con un ba ch de g an ama˜no, como se ap ecia en la
igu a 7.14. En el caso del consumo al capa a 15W, como se e en la igu a 7.3.2, en es e modelo
apenas se no a di e encia ene g´e ica al ejecu a con alo es di e en es de ba ch.
Al e la compa a i a de e iciencia ene g´e ica ( e igu a 7.3) se dedude que hay una p´esima
e iciencia pa a la A30 y Je son O in AGX con m´axima po encia pa a un ama˜no de ba ch peque˜no.
41
Ap´endice B
Ejemplo de clien e PMLib
u ilizando c ypes
om c ypes impo *
impo ime
so_ ile = "/ wo k / pmlib_o in . so"
pmlib = CDLL ( so_ ile )
p in ( ype( pmlib ))
p in (pmlib.pm_c ea e_coun e )
DOUBLE_10 = c_double * 10
CHAR_1 = c_cha * 1
CHAR_4 = c_cha * 4
CHAR_16 = c_cha * 16
## S uc u e de ini ion .
class PM_Measu esS uc ( S uc u e ):
_ ields_ = (
(" wa s_size " , c_in ),
(" wa s_se s_size ", c_in ) ,
(" wa s_se s " , POINTER ( c_in )) ,
(" wa s ", POINTER ( c_double )),
(" lines_len ", c_in )
)
class PM_Measu esWTS uc ( S uc u e ):
_ ields_ = (
("nex _ iming", c_in ) ,
(" iming", POINTER ( c_double )) ,
("ene gy", PM_Measu esS uc )
)
class LineS uc ( S uc u e ):
48

_ ields_ = [
("__bi s", c_cha * 16)
]
class De iceS uc ( S uc u e ):
_ ields_ = (
("name ", c_cha _p ),
(" max_ equency ", c_in ) ,
("n_lines", c_in ) ,
)
class Coun e S uc ( S uc u e ):
_ ields_ = (
("sock ", c_in ),
(" agg ega e ", c_in ) ,
(" lines ", LineS uc ),
#(" lines ", CHAR_16 ) ,
(" num_lines ", c_in ) ,
(" in e al ", c_in ),
("pm_measu es_w ", POINTER ( PM_Measu esWTS uc ))
)
class Se e S uc ( S uc u e ):
_ ields_ = (
(" se e _ip ", c_cha * 16) ,
("po ", c_in ),
)
# Main p og am
se ido = Se e S uc ()
con ado = Coun e S uc ()
lineas = LineS uc ( b ’1000000000000000’)
disp = De iceS uc ()
# S a pm_se _lines
_pm_se _lines = pmlib . pm_se _lines
_pm_se _lines . a g ypes = [ c_cha _p , POINTER ( LineS uc )]
_pm_se _lines . es ype = c_in
lines_s ing = c_cha _p (b’8 -10 ’)
_pm_se _lines ( lines_s ing , by e ( lineas ))
# End pm_se _lines
# S a pm_se _se e
_pm_se _se e = pmlib.pm_se _se e
_pm_se _se e . a g ypes = [ c_cha _p , c_in , POINTER ( Se e S uc )]
_pm_se _se e . es ype = c_in
ip = c_cha _p (b ’127.0.0.1 ’)
o ield_name , ield_ ype in se ido ._ ields_:
49
p in ( ield_name , ge a ( se ido , ield_name ))
_pm_se _se e (ip , 6526 , by e ( se ido ))
o ield_name , ield_ ype in se ido ._ ields_:
p in ( ield_name , ge a ( se ido , ield_name ))
# End pm_se _se e
# S a pm_c ea e_coun e
_pm_c ea e_coun e = pmlib.pm_c ea e_coun e
_pm_c ea e_coun e . a g ypes = [c_cha _p , LineS uc , c_in ,c_in ,
Se e S uc , POINTER ( Coun e S uc )]
_pm_se _se e . es ype = c_in
# de ice_name = c_cha _p (b ’ORINNANODe ice ’)
de ice_name = c_cha _p (b ’ORINAGXDe ice ’)
# de ice_name = c_cha _p (b ’NVMLDe ice ’)
_pm_c ea e_coun e ( de ice_name , lineas , 0, 0, se ido , by e (
con ado ))
# End pm_c ea e_coun e
# S a pm_s a _coun e
_pm_s a _coun e = pmlib.pm_s a _coun e
_pm_s a _coun e . a g ypes = [ POINTER ( Coun e S uc )]
_pm_s a _coun e . es ype = c_in
_pm_s a _coun e ( by e ( con ado ))
# End pm_s a _coun e
ime . sleep (1)
# S a pm_s op_coun e
_pm_s op_coun e = pmlib . pm_s op_coun e
_pm_s op_coun e . a g ypes = [ POINTER ( Coun e S uc )]
_pm_s op_coun e . es ype = c_in
_pm_s op_coun e ( by e ( con ado ))
# End pm_s op_coun e
# S a pm_ge _coun e _da a
_pm_ge _coun e _da a = pmlib.pm_ge _coun e _da a
_pm_ge _coun e _da a . a g ypes = [ POINTER ( Coun e S uc )]
_pm_ge _coun e _da a. es ype = c_in
_pm_ge _coun e _da a(by e (con ado ))
# End pm_ge _coun e _da a
# S a pm_p in _da a_cs
50
_pm_p in _da a_cs = pmlib.pm_p in _da a_cs
_pm_p in _da a_cs . a g ypes = [ c_cha _p , Coun e S uc , LineS uc ,
c_in ]
_pm_p in _da a_cs . es ype = c_in
ile_name = c_cha _p (b ’ es . cs ’)
_pm_p in _da a_cs ( ile_name , con ado , lineas , -1)
# End p in _da a_cs
# S a pm_s op_coun e
_pm_ inalize_coun e = pmlib.pm_ inalize_coun e
_pm_ inalize_coun e . a g ypes = [ POINTER ( Coun e S uc )]
_pm_ inalize_coun e . es ype = c_in
_pm_ inalize_coun e (by e (con ado ))
# End pm_s op_coun e
51
Bibliog a ´ıa
[1] A jun Su esh y Pablo Gonzalez. Loadgen. h ps://gi hub.com/mlcommons/in e ence/
ee/mas e /loadgen. ( isi ado 14-03-2024).
[2] Jacob De lin, Ming-Wei Chang, Ken on Lee, and K is ina Tou ano a. BERT: P e-
aining o Deep Bidi ec ional T ans o me s o Language Unde s anding. 2:16, May 2019.
h ps://pape swi hcode.com/me hod/be .
[3] Philipp Fische Ola Ronnebe ge and Thomas B ox. U-ne : Con olu ional ne wo ks o bio-
medical image segmen a ion. 1:8, No 2015.
[4] Tsung-Yi Lin P iya Goyal Ross Gi shick Kaiming He Pio Dolla . Focal loss o dense objec
de ec ion. page 10, Feb 2018.
[5] MLCommons. Scena ios and me ics o mlpe . h ps://mlcommons.o g/benchma ks/
in e ence-edge/. ( isi ado 24-05-2024).
[6] Go don E. Moo e. C amming mo e componen s on o in eg a ed ci cui s. Elec onics, 38(8):114–
117, 1965.
[7] NVIDIA. N idia a30. h ps://www.n idia.com/es-es/da a-cen e /p oduc s/a30-gpu/.
( isi ado 29-05-2024).
[8] N idia. N idia je son o in. h ps://www.n idia.com/es-es/au onomous-machines/
embedded-sys ems/je son-o in/. ( isi ado 01-05-2024).
[9] In el. P ocesado in el®xeon®sil e 4314. h ps://a k.in el.com/con en /www/xl/es/
a k/p oduc s/215269/in el-xeon-sil e -4314-p ocesso -24m-cache-2-40-ghz.h ml.
( isi ado 24-05-2024).
[10] NVIDIA. N pmodel. h ps://docs.n idia.com/je son/a chi es/
34.1/De elope Guide/ ex /SD/Pla o mPowe AndPe o mance/
Je sonO inNxSe iesAndJe sonAgxO inSe ies.h ml#suppo ed-modes-and-powe -e iciency.
( isi ado 30-04-2024).
[11] Reddi V.J. e al. Mlpe in e ence bencham k. page 14, may 2020.
[12] Alex G a es. Sequence ansduc ion wi h ecu en neu al ne wo ks. 1:9, No 2012.
[13] Shaoqing Ren Jian Sun Kaiming He, Xiangyu Zhang. Deep esidual lea ning o image ecog-
ni ion. page 12, Dec 2015.
[14] Ma hWo ks. Ancho boxes. h ps://es.ma hwo ks.com/help/ ision/ug/
ancho -boxes- o -objec -de ec ion.h ml. ( isi ado 03-05-2024).
[15] Ben Wang and A an Koma suzaki. GPT-J-6B: A 6 Billion Pa ame e Au o eg essi e Language
Model. h ps://gi hub.com/kingo lolz/mesh- ans o me -jax, May 2021.
52
[16] Sid Black Lau ence Golding T a is Hoppe Cha les Fos e Jason Phang Ho ace He Anish Thi e
Noa Nabeshima Shawn P esse Conno Leahy Leo Gao, S ella Bide man. The pile: An 800gb
da ase o di e se ex o language modeling. page 39, Dec 2020.
[17] NVIDIA. Canales de moni o izaci´on de po encia. h ps://docs.n idia.com/
je son/a chi es/ 34.1/De elope Guide/ ex /SD/Pla o mPowe AndPe o mance/
Je sonO inNxSe iesAndJe sonAgxO inSe ies.h ml#je son-agx-o in-se ies. ( isi ado
1-05-2024).
[18] Academic To en s. Imagene o en s. h ps://academic o en s.com/b owse.php?
sea ch=imagene &so _ ield=seede s&so _di =DESC. ( isi ado 05-04-2024).
53