Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCIÓN
El procesamiento digital de imágenes y video con algoritmos complejos para interpretar el
significado define el mundo de la visión por computadora. Se espera que este mercado de
más de $ 6 mil millones crezca 7 veces para el año 2022 (Fuente: Tractica) y las soluciones de
visión por computador nos rodean, en automóviles, productos de consumo, seguridad, venta
minorista y agricultura. Sin embargo, el diseño de estas soluciones no es fácil,
principalmente debido a las constantes actualizaciones de algoritmos y los cambios de
requisitos relacionados (Figura 1).
En algunos casos, es posible que se ordene al equipo cambiar el objetivo tecnológico (FPGA o
ASIC, por ejemplo). Esto significa que, donde sea que el equipo esté en el flujo de creación y
verificación de RTL, es posible que tengan que comenzar de nuevo, lo que puede causar un
retraso inaceptable en el cronograma de producción. Esto también significa que los
diseñadores de algoritmos no pueden experimentar en tiempo real para determinar el
impacto en las implementaciones de hardware.
• Inferencia: la CNN ejecuta convoluciones usando los pesos del entrenamiento para
detectar y clasificar objetos en cualquier imagen. La inferencia se puede implementar
en hardware de punto fijo para implementarse en sistemas de visión por
computadora.
Al emplear estos elementos de la solución Catapult HLS Platform, los equipos llevan sus
productos de visión por computadora al mercado más rápido y a un costo menor:
• Habilite los cambios de última hora: cambie fácilmente los algoritmos C++ en
cualquier momento y regenere el código RTL o apunte a una nueva tecnología.
No todo el código C++ es adecuado para la síntesis. En general, el código se puede sintetizar
convirtiendo la asignación de memoria dinámica en matrices limitadas, reemplazando el
punto flotante con tipos de datos de punto fijo y cambiando las llamadas de función math.h
para usar las bibliotecas de matemática de hardware apropiadas que están optimizadas para
la síntesis. Sin embargo, el aspecto más importante de la codificación de HLS es describir la
arquitectura general de hardware en C++ para lograr la mejor calidad de resultados (Figura
5). Esto incluye conceptos tales como la descripción de un registro de desplazamiento frente
a una implementación de memoria intermedia circular basada en memoria para almacenar
datos de imagen.
Si bien está más allá del alcance de este documento discutir exhaustivamente los algoritmos
de codificación de visión por computadora para la síntesis de hardware, algunos puntos
clave son:
• Catapult HLS admite tipos de datos C algorítmicos con precisión de bits que funcionan
como cualquier otro tipo de datos C++ nativo. El uso de estos tipos de datos para
números fijos, enteros, flotantes y complejos permite que el código se sintetice en
hardware con el mismo comportamiento bit a bit que el modelo C++.
• Catapult HLS necesita conocer los límites de matriz para matrices internas y para
variables de interfaz de bloque (Figura 6).
TIEMPO DE CLAUSURA
HLS agrega tiempo al algoritmo C++ usando un proceso llamado programación (Figura 8). En
función de la tecnología seleccionada y la frecuencia del reloj, la programación examina las
operaciones que describe el algoritmo y decide qué ciclo de reloj ejecutan. La programación
inserta registros entre operaciones (canalización) para cumplir con las restricciones del reloj
y para minimizar las demoras en la ruta combinacional. Esto asegura que el cierre de
temporización sea automático, sin embargo, el diseñador tiene control sobre la optimización
de latencia o área.
Las violaciones típicas son causadas por la competencia entre recursos, dependencias de
retroalimentación de datos o dependencias de lectura/escritura de memoria. Algunas veces,
cambiar las restricciones de diseño puede resolver el problema. Otras veces, se requieren
cambios arquitectónicos a C++ (similar a las concesiones hechas en flujos de RTL).
EXPLORANDO EL PARALLELISMO
Los diseñadores pueden explorar el paralelismo mediante la realización de transformaciones
de bucle dentro de la herramienta. El desenrollado de los bucles impulsa el paralelismo
mientras que el pipeline influye en el rendimiento y la frecuencia máxima. Para un ciclo
seleccionado en el diseño, el diseñador puede realizar un análisis de lo que sucede al
cambiar las restricciones arquitectónicas y luego usar el Visualizador para ver el esquema
RTL que resulta de la síntesis (Figura 11).
COMPARTIR RECURSOS
Para mantener el área al mínimo, Catapult comparte recursos automáticamente buscando
exclusividad mutua explícita en el código y aplicando restricciones de diseño. Realiza el
intercambio de registros mediante la realización de análisis de por vida, guiados por las
restricciones de diseño (Figura 13).
LEVANTAMIENTO DE BIBLIOTECAS
Al diseñar sistemas de visión por computadora, no es difícil notar que hay bloques de
construcción de bajo nivel instanciados muchas veces dentro del mismo diseño, como filtros
convolucionales, interfaces, arquitecturas de memoria de ventanas deslizantes, agrupación,
buffers de línea y clases de indicadores de imagen. La plataforma Catapult HLS proporciona
bibliotecas parametrizadas en C++ para estas operaciones básicas de imágenes de bajo nivel
y Mentor agrega continuamente bibliotecas de alto nivel de clases completas de imágenes IP
para usar como punto de partida para el siguiente proyecto del equipo de diseño.
EL RETIRO
El mundo del diseño de la visión por computadora está en constante cambio, lo que significa
que los flujos de RTL tradicionales no pueden mantenerse al día con los horarios. Para
responder rápidamente a los cambios y acelerar el diseño y la verificación, la síntesis de alto
nivel ofrece un camino hacia el éxito. Con su gran cantidad de soluciones, la plataforma
Catapult HLS proporciona una metodología única que aborda los desafíos del diseño de la
visión por computadora.
Para obtener más información sobre cómo HLS está revolucionando la innovación de la
visión por computadora y para experimentar las historias de éxito de los clientes, consulte la
serie gratuita de seminarios de video aquí.
© 2018 Mentor Graphics Corporation, todos los derechos reservados. Este documento contiene información que es propiedad
de Mentor Graphics Corporation y puede que el destinatario original lo duplique por completo o en parte solo para fines
comerciales internos, siempre que este aviso completo aparezca en todas las copias.
Al aceptar este documento, el destinatario acepta hacer todos los esfuerzos razonables para evitar el uso no autorizado de esta
información. Todas las marcas comerciales mencionadas en este documento son marcas comerciales de sus respectivos
propietarios.
Para obtener la información más reciente sobre el producto, llámenos o visite: www.mentor.com
MGC 07-18
TECH17570-w