Los procesadores multi-núcleo han llegado a ser comunes, y los vendedores de software de visión artificial están rediseñando sus productos, permitiendo a los clientes equilibrar la potencia de los multi-procesadores. Sin embargo, la tarea no es trivial ya que el programador debe optimizar la energía de las funciones de procesamiento de imágenes a través de múltiples procesadores. Mientras que el incremento esperado en el rendimiento del microprocesador puede predecirse en cierta medida a partir de la ley de Amdahl, el incremento de rendimiento total será limitado por cualquier parte secuencial del programa que no pueda optimizarse funcionando en paralelo.
Típicamente hay dos formas de impulsar el rendimiento de una aplicación de visión de máquinas a nivel del sistema, que se denominan paralelización a nivel de tareas y paralelización a nivel de datos. La paralelización a nivel de tareas es más conveniente en programas con funcionalidad independiente que tienen dependencia de datos o recursos compartidos mínima – tales como los sistemas multi-cámara – mientras que la paralelización a nivel de datos es más conveniente para código que repite varias etapas secuenciales con dependencias de datos entre etapas. Debido a que las aplicaciones de procesado de imágenes tienden a ser serializadas (adquirir, filtrar, extraer, clasificar, salida de datos), la paralelización a nivel de datos es una estrategia popular para impulsar el rendimiento de los procesadores multi-núcleo.
En muchos paquetes de software, el número de núcleos puede ser establecido por el integrador del sistema o dejado como una función del sistema de operación.
En la paralelización a nivel de tareas, las imágenes se procesan en paralelo sobre una base toma-a-toma dividiendo los datos de la imagen entre los núcleos disponibles. Para hacer esto, el programador tiene que tener en cuenta las costuras entre estas regiones y el hecho de que su tratamiento más apropiado variará con el tipo de algoritmo.
Veamos algunos ejemplos de nuevas funciones en la visión artificial actual:
Otras funciones disponibles hoy en día son las operaciones lógicas (para enmascarar regiones de imágenes), con las cuales se elimina el ruido de imágenes. Para ello se usan pixels de una o más imágenes de entrada para calcular los valores pixel de una imagen de salida.
También podemos mencionar entre las nuevas funciones los denominados filtros morfológicos, filtros de convolución lineales, y umbral dinámico, que opera moviendo una ventana a través de la imagen e entrada.
La función de búsqueda de la ocurrencia de un modelo en una imagen es también común en visión artificial-
.
Bibliografía: Down to the Core. OptoIQ. May 2009
Palabras clave: Task-level parallelization
1 comentarios:
Todo este tongo de los múltiples núcleos me llenan de dudas, los últimos procesadores antes de los multinucleos ya llegaban a poco mas de 3 ghz,han pasado casi 10 años y seguimos en la misma potencia por procesador, me parece que esta obsesión por meter mas de lo mismo en la caja ha llevado a un relentizamiento artificial en
el lanzamiento al mercado de verdaderas nuevas tecnologías en procesadores.
Por lo demás pregunto, estos núcleos se mezclan entre si una única tarea?
por que hasta donde se, se delegan múltiples tareas, no trabajan juntos en una sola.
Eso significaría que aunque tengas varios núcleos cada uno realizaría una tarea a su máxima potencia que sigue siendo la de varios años atrás.
Publicar un comentario