Comparaci
´
on de Vitis-AI y FINN para
implementar redes neuronales convolucionales en
FPGA
Comparison of Vitis-AI and FINN for implementing convolutional neural networks on FPGA
Nicol
´
as Urbano Pintos
1
, H
´
ector A. Lacomi
2
y Mario B. Lavorato
3
Divisi
´
on Radar L
´
aser, CITEDEF
J. B. de la Salle 4397, Villa Martelli- Argentina
1
nurbano@frh.utn.edu.ar
Grupo ASE, UTN FRH
Par
´
ıs 532, Haedo- Argentina
2
hlacomi@citedef.gob.ar
Grupo TAMA, UTN FRH
Par
´
ıs 532, Haedo- Argentina
3
mlavorato@frh.utn.edu.ar
Resumen—Las redes neuronales convolucionales (CNN) son
esenciales para la clasificaci
´
on y detecci
´
on de im
´
agenes, y
su implementaci
´
on en sistemas embebidos resulta cada vez
m
´
as atractiva debido a su tama
˜
no compacto y bajo consumo
energ
´
etico. Los FPGA (Field-Programmable Gate Arrays) han
surgido como una opci
´
on prometedora, gracias a su baja
latencia y alta eficiencia energ
´
etica.
Vitis AI y FINN son dos entornos de desarrollo que
automatizan la implementaci
´
on de CNN en FPGA. Vitis AI
utiliza una unidad de procesamiento de aprendizaje profundo
(DPU) y aceleradores de memoria, mientras que FINN se basa
en una arquitectura de transmisi
´
on de datos (streaming) y
ajusta la paralelizaci
´
on. Ambos entornos implementan t
´
ecnicas
de cuantizaci
´
on de par
´
ametros para reducir el uso de memoria.
Este trabajo extiende comparaciones previas al evaluar
ambos entornos mediante la implementaci
´
on de cuatro modelos
con diferentes cantidades de capas en la plataforma FPGA
Kria KV260 de Xilinx. Se describe en detalle el proceso
completo, desde el entrenamiento hasta la evaluaci
´
on en FPGA,
incluyendo la cuantizaci
´
on y la implementaci
´
on en hardware.
Los resultados muestran que FINN proporciona menor
latencia, mayor rendimiento y mejor eficiencia energ
´
etica que
Vitis AI. No obstante, Vitis AI destaca por su simplicidad en
el entrenamiento de modelos y facilidad de implementaci
´
on en
FPGA. El hallazgo principal del estudio es que, al aumentar
la complejidad de los modelos con m
´
as capas, las diferencias
de rendimiento y eficiencia energ
´
etica entre FINN y Vitis AI
se reducen notablemente.
Palabras clave: FPGA; CNN; FINN; Vitis-AI; Cuantizaci
´
on.
Abstract— Convolutional neural networks (CNNs) are
essential for image classification and detection, and their
implementation in embedded systems is becoming increasingly
attractive due to their compact size and low power
consumption. Field-Programmable Gate Arrays (FPGAs) have
emerged as a promising option, thanks to their low latency
and high energy efficiency.
Vitis AI and FINN are two development environments that
automate the implementation of CNNs on FPGAs. Vitis AI
uses a deep learning processing unit (DPU) and memory
accelerators, while FINN is based on a streaming architecture
and fine-tunes parallelization. Both environments implement
parameter quantization techniques to reduce memory usage.
This work extends previous comparisons by evaluating both
environments by implementing four models with different
numbers of layers on the Xilinx Kria KV260 FPGA platform.
The complete process from training to evaluation on FPGA,
including quantization and hardware implementation, is des-
cribed in detail.
The results show that FINN provides lower latency,
higher throughput, and better energy efficiency than Vitis
AI. However, Vitis AI stands out for its simplicity in
model training and ease of implementation on FPGA.
The main finding of this study is that as the complexity
of the models increases (with more layers in the neural
networks), the differences in terms of performance and energy
efficiency between FINN and Vitis AI are significantly reduced.
Keywords: FPGA; CNN; FINN; Vitis-AI; Quantization.
I. INTRODUCCI
´
ON
Las redes neuronales convolucionales (CNN) son funda-
mentales en aplicaciones como la clasificaci
´
on y detecci
´
on
de im
´
agenes [1], debido a su capacidad para alcanzar pre-
cisiones de clasificaci
´
on altas mediante el uso de m
´
ultiples
capas y filtros complejos. Sin embargo, esta complejidad
conlleva un alto consumo de memoria y un gran n
´
umero
de operaciones en punto flotante, lo que supone un desaf
´
ıo
en escenarios donde la inferencia debe realizarse en tiempo
real y en dispositivos compactos y port
´
atiles [2].
Los sistemas embebidos han surgido como una opci
´
on
viable para la inferencia de este tipo de modelos de apren-
dizaje profundo [3]. No obstante, debido los recursos de
procesamiento y memoria limitados de estos dispositivos,
la ejecuci
´
on de estos modelos en tiempo real plantea una
dificultad significativa. Entre las t
´
ecnicas m
´
as utilizadas
para abordar este desaf
´
ıo se encuentra la cuantizaci
´
on de
los par
´
ametros de los modelos, que reduce el tama
˜
no de
los pesos y activaciones, normalmente entrenados en punto
flotante de 32 bits (FP32), a representaciones de menor
precisi
´
on. Algunos enfoques destacados incluyen el uso de
enteros de 8 bits [4], as
´
ı como cuantizaciones ternarias y
binarias [5].
Revista elektron, Vol. 8, No. 2, pp. 61-70 (2024)
ISSN 2525-0159
61
Recibido: 30/09/24; Aceptado: 11/11/24
https://doi.org/10.37537/rev.elektron.8.2.200.2024
Original Article
A pesar de los avances en hardware embebido, como
las GPU integradas en kits de desarrollo como es el caso
de la placa Jetson Nano fabricada por Nvidia [6], que
ofrecen aceleraci
´
on en operaciones tensoriales, el consumo
energ
´
etico sigue siendo un desaf
´
ıo cr
´
ıtico. En este contexto,
los dispositivos FPGA representan una alternativa destacada
para la inferencia de modelos de aprendizaje profundo, ya
que combinan una baja latencia con una alta eficiencia
energ
´
etica [7].
Entre los entornos de desarrollo automatizados para facili-
tar la implementaci
´
on de CNN en FPGA, podemos destacar
a: Vitis AI [8] y FINN [9], ambos desarrollados por Xilinx.
Vitis AI utiliza un enfoque secuencial para resolver las
operaciones de las CNN, en cambio, FINN utiliza se basa
en un flujo de datos, permitiendo operaciones en paralelo.
Estudios recientes han comparado la performance de estos
entornos [10] [11] utilizando par
´
ametros como la latencia,
el rendimiento y la eficiencia energ
´
etica, concluyendo que
FINN supera a Vitis AI, tanto en rendimiento como en
eficiencia. Estas comparaciones se realizan en modelos
espec
´
ıficos de CNN para tareas de clasificaci
´
on y detecci
´
on
de objetos.
El presente trabajo tiene como objetivo ampliar esta
comparaci
´
on, aportando una contribuci
´
on clave: el an
´
alisis
de la performance de modelos de CNN con diferentes
grados de complejidad (cantidad de capas). Para ello, se
evaluaron tres modelos que combinan capas convolucionales
y totalmente conectadas, junto con un modelo adicional
compuesto
´
unicamente de capas totalmente conectadas. Si
bien en la comparativa se observa que performance de
implementaciones en FINN son superiores a las del entorno
Vitis AI, una observaci
´
on fundamental de este estudio es
que, a medida que aumenta la complejidad del modelo, la
diferencia en rendimiento y eficiencia energ
´
etica entre FINN
y Vitis AI se reduce significativamente, aportando un nuevo
entendimiento sobre el comportamiento de estos entornos a
distintas escalas de complejidad.
Este art
´
ıculo detalla los pasos necesarios para la imple-
mentaci
´
on de cada modelo en ambos entornos, abarcando
desde la arquitectura, el entrenamiento, la cuantizaci
´
on y la
implementaci
´
on en la placa de desarrollo FPGA Kria KV260
[12]. Adem
´
as, se lleva a cabo un an
´
alisis exhaustivo de
las m
´
etricas obtenidas, en funci
´
on de la complejidad de los
modelos, destacando las fortalezas y debilidades espec
´
ıficas
de FINN y Vitis AI. Los autores han creado un repositorio
p
´
ublico poder evaluar los modelos estudiados en FINN y
VITIS AI en la placa de desarrollo Kria KV260. El mismo
se accede desde: https://github.com/nurbano/finn vs vitisai
kv260
El resto del documento est
´
a organizado de la siguiente
manera: en la secci
´
on II se detallan los antecedentes; en
la secci
´
on III se describe la metodolog
´
ıa utilizada; en la
secci
´
on IV se presentan los resultados; en la secci
´
on V la
discusi
´
on, en la secci
´
on VI se esbozan las conclusiones y por
´
ultimo en la secci
´
on VII se detallan las direcciones futuras
del trabajo.
II. ANTECEDENTES
II-A. Entornos de Desarrollo Automatizados para imple-
mentaci
´
on de CNN en FPGA
Vitis AI [8] es un entorno de desarrollo que implementa
un m
´
odulo optimizado para la inferencia de redes neuronales
convolucionales, basado en DPU (Deep-Learning Processing
Unit) [13] y aceleradores de memoria. La arquitectura del
DPU se compone de un planificador de trabajo, un m
´
odulo
matricial de c
´
omputo h
´
ıbrido y un m
´
odulo de memoria tipo
pool. El DPU realiza un enfoque secuencial a partir de la
ejecuci
´
on de un microc
´
odigo descripto en un archivo con
extensi
´
on xmodel, el cual es generado por el compilador de
Vitis AI. En la Fig. 1 se ilustra la arquitectura del DPU
implementado por Vitis AI.
El DPU busca instrucciones en la memoria externa (SD),
analiza y programa dichas instrucciones, y opera el motor
de c
´
alculo. Este motor de convoluci
´
on se encarga de eje-
cutar las operaciones de convoluci
´
on, as
´
ı como tambi
´
en del
agrupamiento y la normalizaci
´
on de lotes. Las operaciones
fundamentales, como multiplicaciones, sumas y acumula-
ciones, est
´
an implementadas en elementos de procesamiento
dedicados.
Figura 1: Arquitectura del DPU implementado en Vitis AI
El procedimiento de implementaci
´
on en Vitis AI se realiza
a trav
´
es de un contenedor Docker que opera en un sistema
Linux, preferentemente con distribuci
´
on Ubuntu. El modelo
puede ser entrenado en cualquier entorno de aprendizaje
profundo, como PyTorch [14], TensorFlow [15] o Caffe
[16]. Tras el entrenamiento, es necesario cuantizar el modelo
de punto flotante a INT8, un proceso que se lleva a cabo
en el entorno de PyTorch utilizando torch quantization.
Posteriormente, se compila el modelo cuantizado utilizando
la funci
´
on vai c xir, definiendo el modelo DPU compatible
con las diferentes familias de FPGA. Este proceso genera un
archivo con extensi
´
on xmodel que se copia en la memoria
SD de la placa de desarrollo de la FPGA. Para evaluar el
modelo, se crea una aplicaci
´
on, generalmente en Python, qu
´
e
instancia el DPU y carga el modelo utilizando el conjunto
de instrucciones del archivo xmodel.
Revista elektron, Vol. 8, No. 2, pp. 61-70 (2024)
ISSN 2525-0159
62
http://elektron.fi.uba.ar
Por otro lado, FINN utiliza una arquitectura de flujo de
datos y permite la implementaci
´
on de CNN mediante tres
componentes principales: una unidad de umbral vectorial
de matriz, una unidad de ventana deslizante y una unidad
de agrupamiento [17]. La configuraci
´
on de recursos en
FINN no es fija, sino que se determina en funci
´
on de
requisitos espec
´
ıficos, como el rendimiento (cuadros por
segundo) y la frecuencia de operaci
´
on. La Fig. 2 presenta
la arquitectura implementada por FINN. Los carriles SIMD
(Single Instruction Multiple Data) se utilizan para realizar
operaciones de multiplicaci
´
on y suma en paralelo sobre
m
´
ultiples datos de activaci
´
on y peso. Esto permite que
varias entradas sean procesadas simult
´
aneamente. Por otra
parte, los elementos de procesamiento (PE) son unidades de
c
´
omputo individuales dentro de la arquitectura de FINN que
ejecutan operaciones b
´
asicas, como la multiplicaci
´
on, suma
y comparaci
´
on de datos. Los PE reciben datos de los carriles
SIMD, realizan las operaciones asignadas y luego env
´
ıan los
resultados a las etapas siguientes del flujo de datos. FINN
permite ajustar la cantidad de PE disponibles en la FPGA
de acuerdo con los requisitos de rendimiento, lo que se
denomina “plegado” o “folding”. Un mayor n
´
umero de PE
aumenta la capacidad de procesamiento paralelo, reduciendo
la latencia y mejorando el rendimiento global, mientras que
un n
´
umero menor ahorra recursos de hardware.
Figura 2: Arquitectura tipo flujo de FINN
Para implementar redes CNN en FINN, se debe construir
el contenedor Docker FINN en un sistema operativo Linux,
preferentemente en una distribuci
´
on Ubuntu, y tambi
´
en es
necesario instalar los software de Xilinx Vivado y Vitis
HLS. Los modelos deben ser construidos y entrenados con
capas cuantizadas utilizando Brevitas [18], siguiendo un
entrenamiento de al menos 500
´
epocas. En esta etapa, se
define el tipo de cuantizaci
´
on, ya sea binaria, ternaria, INT4
o INT8. El modelo entrenado se exporta al formato ONNX
[19], y se evaluan los recursos utilizados de la FPGA, a
partir del constructor buil d dataflow, donde se definen
los par
´
ametros de dise
˜
no, como el tiempo de reloj y el
rendimiento en FPS deseado. Aunque el constructor ofrece
un “auto-plegado” o “auto-folding” para automatizar el
proceso, se pueden realizar ajustes manuales para optimizar
el rendimiento. Finalmente, se genera el c
´
odigo HLS, el ar-
chivo con extensi
´
on bit y el controlador ejecutando los pasos
completos del constructor build
d
ataflow. Estos archivos
resultantes se copian a la memoria SD de la placa. Una
vez en el sistema operativo Linux de la placa de desarrollo,
se despliega el archivo .bit y se codifica una aplicaci
´
on para
verificar y evaluar el comportamiento.
II-B. Trabajos Relacionados
En la literatura actual, varios estudios han explorado la
implementaci
´
on de modelos de CNN en entornos como
FINN y Vitis AI. Umuroglu et al. [9] implementaron tres
modelos de clasificaci
´
on basados en CNN utilizando FINN,
analizando los recursos empleados, la latencia, la potencia,
el rendimiento y la eficiencia energ
´
etica. En una FPGA
ZC706, FINN logra hasta 12.3 millones de clasificaciones
por segundo y 95.8 % de precisi
´
on en el conjunto MNIST, y
21,906 clasificaciones por segundo en CIFAR-10 y SVHN,
alcanzando precisiones de 80.1 % y 94.9 % respectivamente.
Por su parte, Ducasse et al. [20] experimentaron con
un perceptr
´
on multicapa (MLP- Multi Layer Perceptron)
entrenado en los conjuntos de datos MNIST [21] y Fashion-
MNIST [22], evaluando la implicancia de la cantidad de bits
de cuantizaci
´
on en activaciones y pesos en una FPGA Zynq
7020. Sus resultados indican que las implementaciones con
menor precisi
´
on pueden alcanzar una precisi
´
on comparable
a las de mayor precisi
´
on, siempre que se realice un entrena-
miento adecuado, manteniendo adem
´
as una baja utilizaci
´
on
de hardware y alta eficiencia.
Utilizando tanto FINN, Vitis AI y un acelerador ad hoc,
Machura et al. [10] implementaron dos modelos de detec-
ci
´
on de objetos basados en CNN, “YoloFINN” y “LittleNet”,
evaluando el uso de energ
´
ıa, el rendimiento y la precisi
´
on
en la detecci
´
on de objetos en una placa de desarrollo Avnet
Ultra96-V2 en el conjunto de datos VOT [23]. Sus hallazgos
sugieren que aunque el modelo personalizado proporciona
un mejor rendimiento, su desarrollo es considerablemente
m
´
as complejo.
Hamanaka et al. [11] analizaron el modelo de clasificaci
´
on
ResNet-8, una versi
´
on reducida de ResNet [24] implemen-
tado en una placa creada ad hoc que tiene montado una
FPGA SOM K26 de Xilinx, encontrando que FINN supera
al acelerador basado en Vitis AI en t
´
erminos de latencia,
eficiencia energ
´
etica y rendimiento.
Finalmente, Urbano Pintos et al. [25] implementaron una
red VGG16 [26] en Vitis AI, con el conjunto de datos
CIFAR10 [27]. Evaluando la precisi
´
on y el rendimiento. A
su vez, los mismos autores implementaron con Brevitas [18]
la red B-VGG16 [28], la misma no pudo ser compilada en
FINN para en Kria KV260, debido a que no alcanzan los
LUTs y/o BRAM disponibles.
III. METODOLOG
´
IA
La metodolog
´
ıa descripta en este estudio se centra en la
implementaci
´
on y evaluaci
´
on de diferentes arquitecturas de
clasificaci
´
on de im
´
agenes basadas redes neuronales convo-
lucionales y en redes de capas totalmente conectadas en
la FPGA Kria KV260. Cada modelo fue implementado a
partir de los entornos de desarrollo automatizados Vitis AI
y FINN, de principio a fin, esto se refiere al entrenamiento
del modelo, la cuantizaci
´
on, la compilaci
´
on y la evaluaci
´
on
de performance en la FPGA.
En este contexto, se seleccionaron tres modelos convo-
lucionales: CNV [9], VGG11 (versi
´
on reducida de VGG16
[29]) y mini CNN (mini CNN) junto con un modelo de capas
totalmente conectadas (LFC) [9]. En la tabla I se detalla
la cantidad de capas totalmente conectadas, la cantidad de
capas de convoluci
´
on y la cantidad capas totales de cada
Revista elektron, Vol. 8, No. 2, pp. 61-70 (2024)
ISSN 2525-0159
63
http://elektron.fi.uba.ar
modelo. Este enfoque permite analizar c
´
omo la variaci
´
on
en la profundidad de la red y la estructura arquitect
´
onica
impactan en el uso de recursos, el rendimiento, la eficiencia
energ
´
etica y la latencia.
Modelo LFC mCNN CNV VGG11
Capas totalmente conectadas 4 2 3 4
Capas de convoluci
´
on 0 6 6 8
Capas Totales 4 8 9 11
Tabla I: Cantidad de capas de cada modelo
El modelo mCNN, es un modelo sencillo de menor
cantidad de capas que fue desarrollado por los autores de
este trabajo con el fin de aumentar los modelos a comparar,
con los ya establecidos CNV y VGG11.
Aunque las redes totalmente conectadas no utilizan fil-
tros de convoluci
´
on, las capas totalmente conectadas son
fundamentales en la etapa de clasificaci
´
on de im
´
agenes en
las CNN. Por ello, se incluy
´
o el modelo LFC en nuestra
comparaci
´
on para ofrecer una perspectiva completa sobre las
capacidades de clasificaci
´
on de las distintas arquitecturas.
A continuaci
´
on, se detallan los conjuntos de datos utili-
zados, la arquitectura de cada modelo, los hiperpar
´
ametros
de entrenamiento, los procedimientos en FINN y VITIS-AI,
as
´
ı como los detalles para la preparaci
´
on de la placa Kria
KV-260 y las m
´
etricas empleadas en la comparaci
´
on.
III-A. Conjuntos de datos
Se utilizaron los conjuntos de datos CIFAR10 [27],
MNIST [21] y SVHN [30]. CIFAR10 contiene 60 mil
im
´
agenes color de 32x32 p
´
ıxeles de objetos y animales
en 10 clases diferentes. MNIST contiene 60 mil n
´
umeros
manuscritos del cero al nueve en escala de grises con un
tama
˜
no de 28x28 p
´
ıxeles. Y SVHN, contiene m
´
as de 120
mil im
´
agenes color de n
´
umeros de direcciones de casas
recortadas, del cero al nueve con un tama
˜
no de 32x32
p
´
ıxeles.
III-B. Arquitecturas
En las Fig. 3a, 3b, 3c y 3d se presentan las arquitecturas
de los modelos LFC, mCNN, CNV y VGG11 respectiva-
mente. Estas figuras destacan el n
´
umero y tipo de capas, y
el tama
˜
no de los filtros utilizados en cada arquitectura. Las
capas de convoluci
´
on y activaci
´
on se encuentran represen-
tadas en color azul, las capas de agrupamiento en rojo y
las capas totalmente conectadas en verde, por ejemplo en
la Fig. 3c, se observa que la primera capa “Conv1-64” es
una capa de convoluci
´
on de 64 filtros. A su vez, se indica
en cada arquitectura el conjunto de datos utilizado para el
entrenamiento con una im
´
agen de muestra.
El modelo LFC [9], representado en la figura 3a, tiene
como entradas im
´
agenes de 28x28 p
´
ıxeles y 1 canal, co-
rrespondientes al conjunto de datos MNIST. A diferencia
de los otros modelos, LFC est
´
a dise
˜
nado para trabajar con
im
´
agenes en escala de grises y una resoluci
´
on m
´
as baja
y tiene una arquitectura m
´
as simple, solamente con capas
totalmente conectadas.
El modelo mCNN, ilustrado en la figura 3b, est
´
a dise
˜
nado
para procesar im
´
agenes de 32x32 p
´
ıxeles y 3 canales,
espec
´
ıficamente del conjunto de datos SVHN. Esta red fue
creada por los autores de este trabajo ad hoc.
Por otro lado, el modelo CNV [9], representado en la
figura 3c, tambi
´
en acepta im
´
agenes de 32x32 p
´
ıxeles y 3 ca-
nales, y est
´
a optimizado para el conjunto de datos CIFAR10.
A diferencia de mCNN, CNV incorpora un mayor n
´
umero
de capas convolucionales, lo que permite una extracci
´
on m
´
as
profunda de caracter
´
ısticas.
Finalmente, el modelo VGG11 [29], mostrado en la figura
3d, sigue una arquitectura similar a CNV, con im
´
agenes de
entrada de 32x32 p
´
ıxeles y 3 canales. Sin embargo, VGG11
se distingue por su enfoque en capas convolucionales m
´
as
profundas y un uso m
´
as intensivo de capas de agrupaci
´
on.
En resumen, se observa que LFC es el modelo menos
complejo, solo tiene capas de clasificaci
´
on. En el caso de
mCNN y CNV, tienen una misma cantidad de capas de con-
voluci
´
on, pero CNV tiene mayor tama
˜
no de filtro, y adem
´
as
posee una capa totalmente conectada m
´
as. Por
´
ultimo, se
observa que VGG11 es la red de mayor complejidad, ya que
posee la mayor cantidad de capas de convoluci
´
on, con mayor
tama
˜
no de filtro. Adem
´
as, las capas totalmente conectadas
poseen m
´
as neuronas que los modelos antes descriptos. De
este modo, se observa la diversidad de complejidad de los
modelos analizados.
Figura 3: Arquitecturas implementadas
III-C. Procedimiento en FINN
El procedimiento en FINN se lleva a cabo en el contene-
dor Docker FINN 0.9 dev [31] en Ubuntu 18.04. Se utiliz
´
o
la versi
´
on 2022.2 de Vivado y Vitis HLS. En la Fig. 4 se
detalla el flujo de trabajo en FINN.
A continuaci
´
on se detalla cada uno de los pasos
Revista elektron, Vol. 8, No. 2, pp. 61-70 (2024)
ISSN 2525-0159
64
http://elektron.fi.uba.ar
Figura 4: Flujo de desarrollo en FINN
Construcci
´
on de modelo: Se realiza la construcci
´
on
del modelo utilizando capas cuantizadas de Brevitas
[18], de acuerdo a la arquitectura de los modelos ya
mencionados.
Entrenamiento: De acuerdo a las recomendaciones de
la documentaci
´
on de FINN, y debido a la cuantizaci
´
on
consciente del entrenamiento se entrena cada modelo
1000
´
epocas, en todas las implementaciones realizadas
para este trabajo en FINN se cuantiza de forma binaria.
Una vez entrenado, el modelo se almacena en un
archivo comprimido de extensi
´
on tar y es exportado al
formato ONNX con las herramientas que proporciona
la biblioteca Brevitas.
Compilaci
´
on: Dentro del contenedor de FINN, en
primer lugar, se realiza una estimaci
´
on de los recursos
(LUTs, BRAM, DSP y URAM) y del rendimiento
a partir del constructor build dataflow. Para este
paso se definen los par
´
ametros de dise
˜
no, c
´
omo el
tiempo de reloj, el dispositivo objetivo, y los cuadros
por segundo (FPS) deseados. Para todos los casos se
utiliz
´
o 10 ns como tiempo de reloj, KV 260 SOM
como dispositivo y 10000 FPS. Vale la pena aclarar
que los FPS definidos en esta es solo una condici
´
on
de dise
˜
no, los FPS resultantes del modelo depender
´
an
de la optimizaci
´
on de los recursos. Para este trabajo,
se utiliz
´
o el “auto plegado” o “auto folding” que
ofrece el constructor, el cual define la paralelizaci
´
on.
Aunque es posible mejorar el rendimiento de estos
aceleradores ajustando manualmente el plegado, este
trabajo se centra en el estudio de entornos de desarrollo
automatizados.
Por
´
ultimo, se llama nuevamente al constructor, pero
en este caso realizando todos los pasos (generaci
´
on de
c
´
odigo hls, generaci
´
on de IP, s
´
ıntesis de archivo .bit
y generaci
´
on del driver). Este proceso es totalmente
autom
´
atico y se obtiene un archivo de descripci
´
on de
hardware de extensi
´
on hwh y un archivo de extensi
´
on
bit. Para el caso de la red VGG11 fue necesario
habilitar la opci
´
on de mapear en memoria Ultra RAM,
ya que, los BRAM y LUTS distribuidos no alcanzaban
para implementar el modelo.
Evaluaci
´
on: Los archivos generados en el paso anterior
son copiados a la memoria SD de la placa y utili-
zando un cuaderno de Jupyter, y la biblioteca FINN-
EXAMPLE [32], se carga el archivo de extensi
´
on
bit generado por el compilador. Adem
´
as, es necesario
cargar del conjunto de datos utilizado para evaluar cada
modelo. Por
´
ultimo, se lleva a cabo la evaluaci
´
on de
la latencia, el rendimiento, y la medici
´
on potencia.
III-D. Procedimiento en Vitis-AI
En Vitis-AI, el procedimiento se llev
´
o a cabo en el
contenedor Docker Vitis-AI-2.5.0 en Ubuntu 18.04. En la
Fig. 5 se describe el flujo de trabajo de Vitis AI.
Figura 5: Flujo de desarrollo en Vitis AI
A continuaci
´
on se detallan cada uno de los pasos:
Construcci
´
on del modelo: Se construyo el modelo
con capas de Pytorch. En el caso de mCNN, CNV
y VGG11, se cargaron los par
´
ametros preentrenados
de VGG11 de Torchvision [33]. Para estos modelos,
se utiliz
´
o la t
´
ecnica de transferencia de aprendizaje
[34], que consiste en congelar las capas de convoluci
´
on
y entrenar solamente las capas de clasificaci
´
on, este
proceso permite obtener precisiones altas, entrenando
la red una menor cantidad de
´
epocas.
Cuantizaci
´
on: En esta etapa, dentro de Docker de Vitis
AI se carga el modelo de punto flotante generado en el
paso anterior y se realiza la cuantizaci
´
on a INT8 con
la funci
´
on torch quantization de PyTorch. Luego se
eval
´
ua la precisi
´
on modelo cuantizado.
Compilaci
´
on: Se compila el modelo cuantizado
para generar las instrucciones de la DPU uti-
lizando vai c xir. Para ello, es necesario defi-
nir el modelo del DPU, en este caso se utiliz
´
o
DPUCZDX8G ISA1 B4096 MAX [13], el cual es
compatible con la versi
´
on 2.5 de Vitis AI, y est
´
a
optimizada para la familia Zynq UltraScale+ MPSoC
de Xilinx a la cual pertenece la Kria KV260. En este
punto se genera un archivo extensi
´
on xmodel y se copia
en la memoria SD de la placa de desarrollo FPGA.
Evaluaci
´
on: La evaluaci
´
on se lleva a cabo en la placa
de desarrollo a partir del uso de un cuaderno Jupyter
y la biblioteca PYNQ-DPU [35]. En primer lugar, se
despliega el archivo de extensi
´
on bit del DPU en cues-
ti
´
on, y luego se carga el archivo de extensi
´
on xmodel.
A partir de los conjuntos de datos seleccionados para
cada modelo, se eval
´
ua la latencia, el rendimiento, y
la potencia utilizada.
Si bien Vitis AI ofrece Vitis AI Optimizer [36] para
reducir la complejidad del modelo, a partir de t
´
ecnicas
de poda, reduciendo pesos redundantes y manteniendo la
p
´
erdida de precisi
´
on lo m
´
as baja posible. Esta herramienta
no fue utilizada en este trabajo de comparaci
´
on, ya que al
podar el modelo se est
´
a cambiando la cantidad de filtros,
pesos y activaciones.
III-E. Preparaci
´
on de placa de desarrollo Kria KV260
Para evaluar ambos m
´
etodos en un mismo sistema ope-
rativo, se opt
´
o por instalar en la tarjeta SD de la placa de
desarrollo Xilinx Kria KV260 el sistema operativo Ubuntu
20.04.3 LTS, especialmente desarrollado para estas placas.
Revista elektron, Vol. 8, No. 2, pp. 61-70 (2024)
ISSN 2525-0159
65
http://elektron.fi.uba.ar
Adem
´
as, se instalaron las bibliotecas KRIA-PYNQ [37],
el cual contiene PYNQ-DPU [35], que permite instanciar
una DPU, cargando primero el archivo de extensi
´
on bit de
la DPU y el archivo con extensi
´
on xmodel compilado por
el Vitis AI. Y por
´
ultimo, se instal
´
o la biblioteca FINN-
EXAMPLES [32], la cual contiene los drivers para cargar
los overlays en extensi
´
on bit generados por FINN.
Es menester aclarar que para este trabajo se utiliz
´
o la
versi
´
on de Vitis AI 2.5, debido a que es la
´
ultima versi
´
on
que tiene compatibilidad con PYNQ-DPU.
III-F. M
´
etricas
Para la evaluaci
´
on de cada uno de los modelos implemen-
tados en cada entorno se utilizaron las m
´
etricas de precisi
´
on,
latencia, rendimiento y potencia media. A continuaci
´
on se
detalla cada una:
Precisi
´
on TOP1: Se calcula como el cociente de im
´
age-
nes para las cuales el modelo predice correctamente la
clase verdadera como la primera opci
´
on entre todas
las clases posibles y la cantidad total de im
´
agenes. Se
expresa en porciento ( %).
Latencia: Se mide el tiempo desde el inicio hasta el
final de la inferencia para una sola imagen, se expresa
en milisegundos (ms).
Rendimiento: Se define como la cantidad de im
´
agenes
que se infieren en un segundo. Para ello, se utilizaron
lotes de 10.000 im
´
agenes. Se expresa en Cuadros por
segundos (F P S).
Potencia media: Se calcula la potencia instant
´
anea a
partir de la lectura de los sensores de corriente y
tensi
´
on de la placa de desarrollo. Luego, se realiza
la inferencia completa del conjunto de datos de eva-
luaci
´
on correspondiente a cada modelo analizado y se
calcula la potencia media. Se expresa en Watts (W )
Eficiencia Energ
´
etica: Se calcula a partir del cociente
entre el rendimiento y la potencia media, se expresa
en cuadros por segundo sobre Watts (FPS/W).
Recursos Utilizados: Para cuantificar los recursos uti-
lizados, en el caso de FINN, se utiliz
´
o los informes
que proporciona el constructor build dataflow del
compilador de FINN, en donde se detalla la cantidad
de recursos utilizada en cada compilaci
´
on. En el caso
de VITIS AI, la cantidad de recursos fue extra
´
ıda de la
documentaci
´
on de Xilinx [13]. Adem
´
as, la cantidad de
recursos disponible de la placa KRIA KV260 se extrajo
de la hoja de datos del fabricante [12]. En todos los
casos, los recursos evaluados son LUTs, BRAM, DSP
y URAM.
IV. RESULTADOS
En la tabla II se observan los recursos utilizados para cada
modelo. En Vitis AI, todos los modelos son ejecutados en
el DPU (4096), en este caso se utiliza el 44 % de los LUTs
disponibles. La versi
´
on de DPU utilizada no utiliza BRAM,
pero utiliza el 45 % de los DPS y el 100 % de la URAM.
En la misma tabla se observan los recursos utilizados para
cada modelo en la implementaci
´
on de FINN.
En la Fig. 6a se observa que en FINN a medida que los
modelos tienen m
´
as capas, se requiere de m
´
as LUTs, en
cambio, como se dijo anteriormente, la cantidad de recursos
Disp. V
itis-AI
FINN
KV260 DPU mCNN CNV V
GG11
LFC
LUTs 117120 51843 25492 39589 71574 18445
BRAM 144 0 34 142 127 112
DSP 1248 566 0 0 0 0
URAM 64 64 0 0 33 0
Tabla II: Recursos disponibles y utilizados por cada modelo
que usa el DPU de Vitis AI es fija. De forma an
´
aloga, se
visualiza en la Fig. 6b los bloques BRAM utilizados para
cada modelo, donde se observa que VGG11 utiliza menos
bloques, eso se debe, a que al habilitar la opci
´
on de URAM,
balancea ambos recursos, tal como se observa en la Fig.
6d. En el caso de FINN, ning
´
un modelo utiliz
´
o DSP, en
cambio, el DPU de Vitis AI, si utiliza este recurso, tal
como se muestra en la figura 6c. Vale destacar que en FINN
solo se utilizan LUTs y BRAM, aunque tambi
´
en existe la
posibilidad de permitir el uso de URAM para ciertas capas,
en el caso de VGG11, se habilit
´
o esa opci
´
on, para que pueda
ser compilado, esto se visualiza en la Fig. 6d.
(a) LUTs (b) BRAM
(c) DSP (d) URAM
Figura 6: Comparaci
´
on de recursos utilizados en cada mo-
delo
En la tabla III se observa las m
´
etricas obtenidas en FINN
y en la tabla IV se observan los resultados obtenidos en
Vitis AI. En ambos casos se muestran la precisi
´
on TOP1, la
latencia, el rendimiento y la eficiencia energ
´
etica.
Modelo Dataset Pr
ec.
TOP1
Latencia Rend. P Efic.
[
%]
[ms] [FPS] [W] [FPS/W]
mCNN SVHN 90.07 0.16496 6062 3.8 1595
CNV CIF
AR10
82.62 0.3291 3038 3.9 779
V
GG11
CIF
AR10
83.51 1.9801 505 4.3 116
LFC MNIST 98.69 0.0862 11597 3.7 3134
Tabla III: Resultados obtenidos en FINN
Modelo Dataset Pr
ec.
TOP1
Latencia Rend. P Efic.
[
%]
[ms] [FPS] [W] [FPS/W]
mCNN SVHN 96.05 0.922 1315 3.7 355
CNV CIF
AR10
87.57 0.648 2455 5.9 413
V
GG11
CIF
AR10
88.92 2.400 476 7.2 66
LFC MNIST 98.83 0.9011 1368 6.5 210
Tabla IV: Resultados obtenidos en Vitis-AI
Revista elektron, Vol. 8, No. 2, pp. 61-70 (2024)
ISSN 2525-0159
66
http://elektron.fi.uba.ar
En la figura 7 se observan gr
´
aficas de barra que comparan
las m
´
etricas obtenidas por la implementaci
´
on en FINN y en
Vitis AI de cada modelo, siendo FINN representado por el
color azul y Vitis AI por el color naranja.
En la figura 7a se observa que FINN tiene un mayor
rendimiento que Vitis AI, pero tambi
´
en se nota que a
medida que aumentan la cantidad de capas de convoluci
´
on,
la diferencia de rendimiento disminuye, como el caso de
VGG11. En el caso de LFC, modelo que solo contiene capas
totalmente conectadas, el rendimiento mejora en m
´
as de 8
veces.
En la figura 7b se observa que en la mayor
´
ıa de los
casos, los modelos desarrollados en Vitis AI obtienen mayor
precisi
´
on, esto es debido a que en FINN se utiliz
´
o una
cuantizaci
´
on binaria, y esto produce una perdida en la
precisi
´
on, respecto a la cuantizaci
´
on INT8 de Vitis AI.
En la figura 7c se observa que la eficiencia es notable-
mente mayor en los modelos implementados en FINN, pero
en los modelos convolucionales a medida que aumentan las
capas, las diferencias se acortan.
En la figura 7d, se observa que en todos los casos FINN
obtiene menor latencia que Vitis AI. En el caso de las
CNN, a medida que aumentan las capas, se disminuye la
diferencia.
(a) Rendimiento (b) Precisi
´
on TOP1
(c) Eficiencia (d) Latencia
Figura 7: Comparaci
´
on de resultados FINN versus Vitis AI
V. DISCUSI
´
ON
En este trabajo, se ha realizado una comparativa exhaus-
tiva entre los entornos Vitis AI y FINN para la imple-
mentaci
´
on de redes neuronales convolucionales (CNN) en
FPGAs, utilizando la plataforma Kria KV260 de Xilinx. Los
resultados muestran diferencias significativas en t
´
erminos
de rendimiento, eficiencia energ
´
etica y latencia entre los
dos entornos, que proporcionan informaci
´
on valiosa para
la selecci
´
on de herramientas adecuadas seg
´
un los requisitos
espec
´
ıficos de las aplicaciones.
Rendimiento y eficiencia energ
´
etica: En general, FINN
demostr
´
o un mayor rendimiento en t
´
erminos de cua-
dros por segundo (FPS) en la mayor
´
ıa de los modelos
implementados, especialmente en aquellos con menor
complejidad, como el modelo mCNN y el modelo
CNV. Esta mayor eficiencia de FINN puede atribuirse
a su arquitectura de flujo de datos, que permite una
paralelizaci
´
on m
´
as fina y una mayor optimizaci
´
on de
los recursos hardware disponibles. Adem
´
as, los mode-
los implementados en FINN mostraron una eficiencia
energ
´
etica notablemente superior, particularmente en
modelos con un menor n
´
umero de capas. Esto su-
giere que FINN es m
´
as adecuado para aplicaciones
que priorizan tanto el bajo consumo energ
´
etico como
el alto rendimiento en sistemas embebidos. Esto es
coincidente con la bibliograf
´
ıa actual.
Precisi
´
on: No obstante, los modelos implementados
con Vitis AI presentaron mejores resultados en cuanto
a precisi
´
on, en parte debido al uso de la cuantiza-
ci
´
on INT8 frente a la cuantizaci
´
on binaria utilizada
en FINN. Esto refleja una ventaja de Vitis AI para
aplicaciones en las que la precisi
´
on es un factor cr
´
ıtico.
Adem
´
as, la facilidad de integraci
´
on de Vitis AI con
entornos de entrenamiento como PyTorch, junto con
la posibilidad de emplear t
´
ecnicas de transferencia de
aprendizaje, facilita la obtenci
´
on de modelos con alta
precisi
´
on en menor tiempo de entrenamiento.
Latencia: En cuanto a la latencia, FINN mostr
´
o mejores
resultados en todos los modelos, con una latencia
significativamente menor en la inferencia, lo que la
convierte en una opci
´
on preferible para aplicaciones
de tiempo real. A medida que los modelos se vuelven
m
´
as complejos (como en el caso de VGG11), la
diferencia de latencia entre FINN y Vitis AI disminuye,
lo cual indica que las ventajas de FINN en t
´
erminos de
latencia podr
´
ıan reducirse para modelos m
´
as profundos
y complejos.
Recursos: En la comparativa de recursos, se observ
´
o
que Vitis AI utiliza una cantidad fija, que se debe al
DPU, en cambio, FINN asigna los recursos seg
´
un la
complejidad del modelo. Esto permite que en modelos
de menor cantidad de capas, FINN utilice una canti-
dad de recursos significativamente menor. Aunque en
VGG11, se observa que los recursos son proporcional-
mente similares.
Escalabilidad: Un hallazgo destacable es que, a medida
que aumenta la complejidad de los modelos (n
´
umero
de capas), las diferencias de rendimiento y eficiencia
energ
´
etica entre FINN y Vitis AI disminuyen, como se
observa en las Fig. 8a y 8b. En modelos m
´
as profundos,
como VGG11, las ventajas iniciales de FINN en t
´
ermi-
nos de rendimiento y eficiencia energ
´
etica se reducen
considerablemente. Esto puede influir en la elecci
´
on
del entorno en funci
´
on del tipo de red que se quiera
implementar.
FINN, utiliza una arquitectura de flujo de datos, ajusta
recursos de hardware para maximizar la paralelizaci
´
on
del procesamiento, lo que implica que cada capa y
operaci
´
on tiene una unidad de procesamiento dedicada
o compartida de manera
´
optima, seg
´
un los recursos
hardware disponibles. Cuando se requieren m
´
as capas
de procesamiento, y mayor memoria, esto presenta una
limitaci
´
on, ya que para mantener el alto rendimiento, es
necesario mantener la paralelizaci
´
on, y por lo tanto es
necesario una mayor cantidad de recursos de hardware,
Revista elektron, Vol. 8, No. 2, pp. 61-70 (2024)
ISSN 2525-0159
67
http://elektron.fi.uba.ar
Tarea Modelo Autores Dataset Entorno Dispositivo
Cuantizaci
´
on
(bits)
Rendimiento
(FPS)
Latencia
(ms)
Eficiencia
(FPS/W)
Clasificaci
´
on
mCNN
Urbano Pintos
et al.
SVHN
FINN
Xilinx Kria
KV260
1 6062 0,165 1595,26
VITIS AI 8 1315 0,922 355,41
CNV
CIFAR10
FINN 1 3038 0,329 778,97
VITIS AI 8 2455 0,648 416,10
VGG11
FINN 1 505 1,980 117,44
VITIS AI 8 476 2,401 66,11
LFC MNIST
FINN 1 11597 0,086 3134,32
VITIS AI 8 1368 0,901 210,46
Resnet8 He et al. CIFAR10
FINN
Xilinx K26
4 13475 0,154 2287,78
VITIS AI 8 4458 1,293 694,39
Detecci
´
on YoloFINN Machura et al. VOT
FINN Avnet
Ultra96-V2
4 111 9,009 37,58
VITIS AI 8 53 18,796 17,10
Tabla V: Comparaci
´
on de FINN y VITIS AI de diferentes implementaciones
elevando el costo y aumentando la complejidad del
dise
˜
no.
Por otro lado, Vitis AI emplea una arquitectura de
overlay en la que el procesamiento de las capas se
realiza mediante operaciones secuenciales optimizadas.
Este enfoque le permite manejar modelos de mayor
complejidad al utilizar una combinaci
´
on de procesa-
miento paralelo limitado y acceso a memoria externa
para cargar y almacenar datos seg
´
un sea necesario.
Aunque esto implica una mayor latencia y menor efi-
ciencia energ
´
etica en comparaci
´
on con FINN, Vitis AI
es capaz de manejar modelos grandes de manera m
´
as
sencilla, sin requerir tantas optimizaciones manuales
o ajustes de folding. La combinaci
´
on de acceso a
memoria externa y procesamiento secuencial hace que
Vitis AI sea m
´
as adecuado para modelos complejos,
donde el rendimiento se ve menos impactado por el
tama
˜
no del modelo en comparaci
´
on con FINN, que
enfrenta m
´
as limitaciones de escalabilidad debido a su
dependencia de recursos de hardware.
Por lo tanto, para redes neuronales m
´
as profundas, Vitis
AI tiende a ser una opci
´
on m
´
as eficiente, ya que su
arquitectura secuencial optimiza el uso de hardware en
modelos complejos, mientras que FINN experimenta
una ca
´
ıda en rendimiento debido a las limitaciones de
recursos.
Limitaciones: A pesar de los buenos resultados obteni-
dos con FINN en t
´
erminos de rendimiento y eficiencia,
se observ
´
o que para obtener una optimizaci
´
on completa
del hardware es necesario realizar ajustes manuales en
el proceso de plegado, lo cual puede requerir un mayor
esfuerzo de desarrollo. En cambio, Vitis AI ofrece una
mayor simplicidad en el flujo de trabajo, lo que lo
hace m
´
as accesible para desarrolladores que buscan
una soluci
´
on m
´
as r
´
apida, aunque esto puede resultar
en un uso menos eficiente de los recursos hardware.
Implicaciones: Los resultados obtenidos sugieren que
FINN es una mejor opci
´
on para aplicaciones embe-
bidas que demanden alta eficiencia energ
´
etica y rendi-
miento con bajo consumo, mientras que Vitis AI puede
ser m
´
as adecuado para proyectos donde la precisi
´
on
y la facilidad de desarrollo son prioritarias. Ambos
entornos tienen ventajas claras dependiendo de los
requerimientos espec
´
ıficos de cada aplicaci
´
on, lo que
refuerza la necesidad de seleccionar la herramienta m
´
as
adecuada en funci
´
on de las caracter
´
ısticas del sistema
y los objetivos de dise
˜
no.
(a) Eficiencia versus capas (b) Rendimiento versus capas
Figura 8: Comparaci
´
on de Rendimiento y Eficiencia seg
´
un
la cantidad de capas para las implementaciones en Vitis AI
y FINN
Este trabajo ampl
´
ıa la comparaci
´
on existente de estos
entornos en la bibliograf
´
ıa, que comparan un modelo en
ambos entornos. Nuestra comparaci
´
on incluye modelos con
distintas configuraciones y complejidades, proporcionando
una visi
´
on m
´
as amplia de sus capacidades y limitaciones.
En la tabla V se realiza un recuento de comparaciones de la
bibliograf
´
ıa de ambos entornos y de los resultados de este
trabajo, donde se detalla la tarea que cumple el modelo, los
autores que lo implementaron, el conjunto de datos utilizado,
el entorno con el que se desarroll
´
o, la cantidad de bits
de cuantizaci
´
on, el rendimiento, la latencia y la eficiencia.
En todas las comparaciones se destaca con la tipograf
´
ıa
negrita la mejor m
´
etrica, se puede observar que los modelos
implementados en FINN superan a los implementados en
VITIS AI en rendimiento, latencia y eficiencia.
VI. CONCLUSIONES
Este estudio ha presentado una comparativa detallada
entre los entornos Vitis AI y FINN para la implementaci
´
on
de redes neuronales convolucionales en FPGAs, utilizando
la plataforma Xilinx Kria KV260. Se implementaron y
evaluaron tres modelos convolucionales y uno basado
´
unica-
mente en capas totalmente conectadas, analizando aspectos
clave como rendimiento, latencia, precisi
´
on y eficiencia
energ
´
etica.
Los resultados obtenidos muestran que FINN destaca
por su mayor rendimiento y eficiencia energ
´
etica, siendo
especialmente adecuado para aplicaciones que requieren alto
rendimiento en sistemas embebidos con restricciones de
consumo. En particular, los modelos m
´
as simples, como el
mCNN y el CNV, se beneficiaron de la arquitectura de flujo
Revista elektron, Vol. 8, No. 2, pp. 61-70 (2024)
ISSN 2525-0159
68
http://elektron.fi.uba.ar
de datos de FINN, mostrando una latencia significativamente
menor y una mayor eficiencia energ
´
etica en comparaci
´
on
con Vitis AI.
Por otro lado, Vitis AI present
´
o ventajas en t
´
erminos de
precisi
´
on, especialmente en modelos m
´
as complejos como el
VGG11, lo que se debe en parte a su uso de la cuantizaci
´
on
INT8. Adem
´
as, la integraci
´
on de Vitis AI con entornos
de desarrollo como PyTorch, junto con su flujo de trabajo
m
´
as simplificado, facilita el entrenamiento y despliegue de
modelos, lo que lo convierte en una opci
´
on adecuada para
aplicaciones donde la facilidad de desarrollo y la precisi
´
on
son prioritarias.
A medida que los modelos aumentan en cantidad de capas
(complejidad), se observ
´
o una disminuci
´
on en las diferencias
de rendimiento entre ambos entornos. Esto sugiere que, si
bien FINN muestra un rendimiento ampliamente superior en
modelos con menor profundidad debido a su arquitectura de
flujo de datos y su capacidad para minimizar el acceso a
la memoria externa, la ventaja se reduce a medida que se
implementan modelos m
´
as complejos, como VGG11. Esta
reducci
´
on de rendimiento se debe principalmente al tipo de
arquitectura utilizada por cada entorno automatizado.
En resumen, FINN ofrece ventajas claras en t
´
erminos de
rendimiento y eficiencia energ
´
etica, mientras que Vitis AI
sobresale en facilidad de uso y precisi
´
on, lo que subraya
la importancia de seleccionar el entorno de desarrollo m
´
as
adecuado en funci
´
on de las necesidades espec
´
ıficas de cada
aplicaci
´
on.
VII. TRABAJO A FUTURO
Como continuaci
´
on de este trabajo, se propone ampliar la
investigaci
´
on hacia la implementaci
´
on de modelos de apren-
dizaje profundo m
´
as avanzados, como autocodificadores y
arquitecturas orientadas a la segmentaci
´
on de im
´
agenes o la
estimaci
´
on de profundidad monocular. Modelos como la red
U-Net podr
´
ıan ser evaluados para tareas de segmentaci
´
on y
reconstrucci
´
on de im
´
agenes, lo cual permitir
´
ıa explorar el
comportamiento de FINN y Vitis AI en aplicaciones m
´
as
complejas y con mayores exigencias de procesamiento.
Otra l
´
ınea de investigaci
´
on futura es la optimizaci
´
on
manual del proceso de plegado en FINN, con el objetivo
de maximizar el rendimiento en modelos complejos. Este
proceso permitir
´
ıa alcanzar una optimizaci
´
on m
´
as fina y
obtener mejoras significativas en la eficiencia energ
´
etica sin
comprometer la precisi
´
on. Y tambi
´
en, sumar a la comapara-
tiva el uso de la herramienta Vitis AI optimizer que permite
reducir (a trav
´
es de la poda) y optimizar los modelos.
AGRADECIMIENTOS
Los autores expresan su agradecimiento al Departamen-
to de Investigaciones en L
´
aseres y sus Aplicaciones del
Instituto de Investigaciones Cient
´
ıficas y T
´
ecnicas para la
Defensa (CITEDEF), dependiente del Ministerio de Defensa
de la Rep
´
ublica Argentina, por haber facilitado el uso de sus
instalaciones y servicios, indispensables para la realizaci
´
on
de este trabajo.
Asimismo, agradecen a la Universidad Tecnol
´
ogi-
ca Nacional (UTN) por el financiamiento otorgado a
trav
´
es del Proyecto de Investigaci
´
on y Desarrollo AST-
CHA0008788TC, y extienden su gratitud a la Facultad
Regional Haedo de la UTN por el constante apoyo brindado,
as
´
ı como por la disposici
´
on de sus recursos e instalaciones.
REFERENCIAS
[1] X. Zhao, L. Wang, Y. Zhang, X. Han, M. Deveci, and M. Parmar, A
review of convolutional neural networks in computer vision, Artificial
Intelligence Review, vol. 57, no. 4, pp. 1–43, 2024.
[2] Z. Li, F. Liu, W. Yang, S. Peng, and J. Zhou, A survey of convolu-
tional neural networks: Analysis, applications, and prospects, IEEE
Transactions on Neural Networks and Learning Systems, vol. 33,
no. 12, pp. 6999–7019, 2022.
[3] Z. Zhang and J. Li, A review of artificial intelligence in embedded
systems, Micromachines, vol. 14, no. 5, p. 897, 2023.
[4] I. Hubara, M. Courbariaux, D. Soudry, R. El-Yaniv, and Y. Bengio,
“Quantized neural networks: Training neural networks with low
precision weights and activations, Journal of Machine Learning
Research, vol. 18, pp. 1–30, 2018.
[5] M. Courbariaux, I. Hubara, D. Soudry, R. El-Yaniv, and Y. Bengio,
“Binarized Neural Networks: Training Deep Neural Networks with
Weights and Activations Constrained to +1 or -1, arXiv: Learning,
2016. [Online]. Available: http://arxiv.org/abs/1602.02830
[6] T. P. Swaminathan, C. Silver, and T. Akilan, “Benchmarking
deep learning models on nvidia jetson nano for real-time
systems: An empirical investigation, 2024. [Online]. Available:
https://arxiv.org/abs/2406.17749
[7] K. P. Seng, P. J. Lee, and L. M. Ang, “Embedded intelligence on fpga:
Survey, applications and challenges, Electronics, vol. 10, no. 8, 2021.
[Online]. Available: https://www.mdpi.com/2079-9292/10/8/895
[8] XILINX, “Vitis ai - adaptable & real-time ai inference acceleration,
2022. [Online]. Available: https://github.com/Xilinx/Vitis-AI
[9] Y. Umuroglu, N. J. Fraser, G. Gambardella, M. Blott, P. Leong,
M. Jahre, and K. Vissers, “FINN: A framework for fast, scalable
binarized neural network inference, FPGA 2017 - Proceedings of the
2017 ACM/SIGDA International Symposium on Field-Programmable
Gate Arrays, no. February, pp. 65–74, 2017, doi: 10.1145/3020078.
3021744.
[10] M. Machura, M. Danilowicz, and T. Kryjak, “Embedded object
detection with custom littlenet, finn and vitis ai dcnn accelerators,
Journal of Low Power Electronics and Applications, vol. 12, no. 2,
2022. [Online]. Available: https://www.mdpi.com/2079-9268/12/2/30
[11] F. Hamanaka, T. Odan, K. Kise, and T. V. Chu, An exploration of
state-of-the-art automation frameworks for fpga-based dnn accelera-
tion, IEEE Access, vol. 11, pp. 5701–5713, 2023.
[12] Xilinx, “Kria kv260 vision ai starter kit, 2021. [Online]. Availa-
ble: https://www.amd.com/en/products/system-on-modules/kria/k26/
kv260-vision-starter-kit.html
[13] ——, “Dpuczdx8g for zynq ultrascale+ mpsocs product guide
(pg338), 2023. [Online]. Available: https://docs.xilinx.com/r/en-US/
pg338-dpu/Core-Overview
[14] A. Paszke, S. Gross, F. Massa, A. Lerer, J. Bradbury, G. Chanan,
T. Killeen, Z. Lin, N. Gimelshein, L. Antiga, A. Desmaison, A. K
¨
opf,
E. Yang, Z. DeVito, M. Raison, A. Tejani, S. Chilamkurthy, B. Steiner,
L. Fang, J. Bai, and S. Chintala, “PyTorch: An imperative style, high-
performance deep learning library, Advances in Neural Information
Processing Systems, vol. 32, no. NeurIPS, 2019.
[15] M. Abadi, A. Agarwal, P. Barham, E. Brevdo, Z. Chen, C. Citro, G. S.
Corrado, A. Davis, J. Dean, M. Devin, S. Ghemawat, I. Goodfellow,
A. Harp, G. Irving, M. Isard, Y. Jia, R. Jozefowicz, L. Kaiser,
M. Kudlur, J. Levenberg, D. Man
´
e, R. Monga, S. Moore, D. Murray,
C. Olah, M. Schuster, J. Shlens, B. Steiner, I. Sutskever, K. Talwar,
P. Tucker, V. Vanhoucke, V. Vasudevan, F. Vi
´
egas, O. Vinyals,
P. Warden, M. Wattenberg, M. Wicke, Y. Yu, and X. Zheng,
“TensorFlow: Large-scale machine learning on heterogeneous
systems, 2015, software available from tensorflow.org. [Online].
Available: https://www.tensorflow.org/
[16] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick,
S. Guadarrama, and T. Darrell, “Caffe: Convolutional architecture
for fast feature embedding, 2014. [Online]. Available: https:
//arxiv.org/abs/1408.5093
[17] M. Blott, T. B. Preuber, N. J. Fraser, G. Gambardella, K. O’Brien,
Y. Umuroglu, M. Leeser, and K. Vissers, “FinN-R: An end-to-end
deep-learning framework for fast exploration of quantized neural
networks, ACM Transactions on Reconfigurable Technology and
Systems, vol. 11, no. 3, 2018, doi: 10.1145/3242897.
[18] A. Pappalardo, “Xilinx/brevitas, 2021, doi: 10.5281/zenodo.3333552.
[19] F. Manca, F. Ratto, and F. Palumbo, “Onnx-to-hardware design flow
for adaptive neural-network inference on fpgas, 2024. [Online].
Available: https://arxiv.org/abs/2406.09078
Revista elektron, Vol. 8, No. 2, pp. 61-70 (2024)
ISSN 2525-0159
69
http://elektron.fi.uba.ar
[20] Q. Ducasse, P. Cotret, L. Lagadec, and R. Stewart, “Benchmarking
quantized neural networks on fpgas with finn, arXiv preprint ar-
Xiv:2102.01341, 2021.
[21] Y. Lecun, L. Bottou, Y. Bengio, and P. Haffner, “Gradient-based
learning applied to document recognition, Proceedings of the IEEE,
vol. 86, no. 11, pp. 2278–2324, 1998, doi: 10.1109/5.726791.
[22] H. Xiao, K. Rasul, and R. Vollgraf, “Fashion-mnist: a novel
image dataset for benchmarking machine learning algorithms, 2017.
[Online]. Available: https://arxiv.org/abs/1708.07747
[23] M. Kristan, J. Matas, A. Leonardis, T. Vojir, R. Pflugfelder, G. Fer-
nandez, G. Nebehay, F. Porikli, and L.
ˇ
Cehovin, A novel performance
evaluation methodology for single-target trackers, IEEE Transactions
on Pattern Analysis and Machine Intelligence, vol. 38, no. 11, pp.
2137–2155, Nov 2016.
[24] K. He, X. Zhang, S. Ren, and J. Sun, “Deep residual learning for
image recognition, 2015. [Online]. Available: https://arxiv.org/abs/
1512.03385
[25] N. Urbano Pintos, H. Lacomi, and M. Lavorato, “Implementaci
´
on de
red neuronal de convoluci
´
on vgg16 en fpga con vitis ai, in Libro
de res
´
umenes de la 109a Reuni
´
on de la Asociaci
´
on F
´
ısica Argentina,
2024, pp. 47–48.
[26] K. Simonyan and A. Zisserman, “Very deep convolutional networks
for large-scale image recognition, 2014, doi: 10.48550/ARXIV.
1409.1556. [Online]. Available: https://arxiv.org/abs/1409.1556
[27] A. Krizhevsky, “Learning multiple layers of features from tiny ima-
ges, University of Toronto Department of Computer Science, 2009.
[28] N. Urbano Pintos, H. Lacomi, and M. Lavorato, “B-vgg16: Red
neuronal de convoluci
´
on cuantizada binariamente para la clasificaci
´
on
de im
´
agenes, Elektron, vol. 6, no. 2, pp. 107–114, 2022.
[29] S. Liu and W. Deng, “Very deep convolutional neural network based
image classification using small training sample size, Proceedings -
3rd IAPR Asian Conference on Pattern Recognition, ACPR 2015, pp.
730–734, 2016, doi: 10.1109/ACPR.2015.7486599.
[30] Y. Netzer, T. Wang, A. Coates, A. Bissacco, B. Wu, and A. Y. Ng,
“Reading digits in natural images with unsupervised feature learning,
in NIPS Workshop on Deep Learning and Unsupervised Feature
Learning 2011, 2011.
[31] XILINX, “Fast, scalable quantized neural network inference on
fpgas, 2024. [Online]. Available: https://github.com/Xilinx/finn
[32] ——, “Dataflow qnn inference accelerator examples on fpgas, 2024.
[Online]. Available: https://github.com/Xilinx/finn-examples
[33] T. maintainers and contributors, “Torchvision: Pytorch’s computer
vision library, https://github.com/pytorch/vision, 2016.
[34] A. Farahani, B. Pourshojae, K. Rasheed, and H. R. Arabnia, A
concise review of transfer learning, 2021. [Online]. Available:
https://arxiv.org/abs/2104.02144
[35] XILINX, “Dpu on pynq, 2022. [Online]. Available: https:
//github.com/Xilinx/DPU-PYNQ
[36] Xilinx, “Vitis ai optimizer, 2023. [Online]. Available: https:
//docs.amd.com/r/en-US/ug1414-vitis-ai/Vitis-AI-Optimizer
[37] XILINX, “Kria-pynq, 2022. [Online]. Available: https://github.com/
Xilinx/Kria-PYNQ
Revista elektron, Vol. 8, No. 2, pp. 61-70 (2024)
ISSN 2525-0159
70
http://elektron.fi.uba.ar

Enlaces de Referencia

  • Por el momento, no existen enlaces de referencia


Copyright (c) 2024 Nicolás Urbano Pintos

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.


Revista elektron,  ISSN-L 2525-0159
Facultad de Ingeniería. Universidad de Buenos Aires 
Paseo Colón 850, 3er piso
C1063ACV - Buenos Aires - Argentina
revista.elektron@fi.uba.ar
+54 (11) 528-50889