¿Qué es VPU?
Una VPU (Vision Processing Unit), o unidad de procesamiento de visión artificial, es un tipo de procesador diseñado para acelerar el proceso de aprendizaje automático y avanzar en las tecnologías de inteligencia artificial, en particular en la visión artificial o visión computerizada.
En definitiva, es un acelerador de IA que puede procesar diversas tareas, como el procesamiento de imágenes. Esta VPU es uno de los varios chips especializados utilizados en el aprendizaje automático, similar a la GPU, pero con algunas diferencias que más adelante veremos con detalle, ya que no son lo mismo, pese a las aplicaciones similares que tienen ambas.
La VPN es utilizada en redes neuronales convolucionales, también como algunas GPUs, pero está dedicada. Por otro lado, también hay que considerar algunas cuestiones a la hora de elegir una VPU, ya que también pueden tener mayor o menor capacidad y rendimiento. Por ejemplo, algunas VPUs pueden procesar imágenes con resoluciones de hasta 4K nativos y dar soporte hasta a 8 sensores conectados directamente. Recuerda que mientras más sensores se soporten y mejor sea la resolución, mejor será la VPU y su precisión.
Funcionamiento
Para que una VPU funcione de forma adecuada, se debe usar un codificador y decodificador, junto con proyectos como el kit de herramientas de código abierto OpenVINO.
Por otro lado, también es necesario el preprocesamiento mediante APIs como OpenCV u otras bibliotecas existentes. Así se podrá invocar a modelos entrenados por TensorFlow, Caffe, etc.
La VPU, a nivel de hardware, tan solo se encarga de acelerar estas tareas usando unidades de cómputo que actúan como motores neuronales, unidades especialmente dedicadas a acelerar las cargas relativas a la visión artificial, etc.
VPU vs GPU: diferencias
Como he mencionado anteriormente, la VPU y la GPU tienen similitudes, pero no son lo mismo. Aquí vamos a puntualizar cuáles son las diferencias más notables:
La GPU se diseña para ser eficiente en la rasterización y el mapeo de texturas. Por tanto, tiene una arquitectura diferente a la VPU. Lo mismo ocurre con la memoria VRAM, que también está pensada para ofrecer un buen rendimiento en este tipo de tareas. No obstante, como sabes, la GPU se puede usar para otras tareas más genéricas.
- La VPU está diseñada para optimizar el rendimiento en tareas de aceleración de visión computerizada o artificial. Aunque pueda tener semejanzas con lo anterior, no es exáctamente lo mismo. Además, suele estar pensada para mejorar el rendimiento por vatio, siendo muy eficientes.
- La GPU suele tener un rendimiento superior en general, la VPU suele ser un dispositivo más discreto en este sentido y pensado para tareas específicas.
- Mientras el mercado de la GPU suele ser el ámbito de los videojuegos, HPC y GPGPU, acelerar IA, etc., en el caso de la VPU el mercado objetivo es el de la robótica, IoT, industria, realidad virtual y aumentada, cámaras inteligentes, vehículos autónomos, y otros dispositivos con sistemas de visión integrados.
Es decir, una VPN es un tipo de acelerador de redes neuronales artificiales y que se encontraría entre una GPU, un DSP, una CPU, etc.
Aplicaciones y usos
En cuanto a los usos o aplicaciones que se le pueden dar a una VPU, tenemos que destacar los siguientes:
- Para dotar a robots de visión computerizada.
- Para los vehículos autónomos con sensores de visión y reconocimiento.
- En dispositivos dotados de visión artificial de algún tipo, como los dispositivos móviles.
- Para el IoT que necesita de visión artificial.
- En el ámbito de la realidad virtual, realidad aumentada y realidad mixta.
- En la industria para la maquinaria que emplea visión artificial para procesar el producto, o inspección y control de calidad.
- También para cámaras inteligentes y otros sistemas de seguridad inteligentes o automatizados.
- Cualquier equipo que tenga que estar dotado de reconocimiento de objetos o visión.
- Etc.
Ventajas y desventajas de su uso
Entre las ventajas de usar una VPU tenemos que destacar:
- Rendimiento optimizado: diseñadas específicamente para tareas de visión artificial, lo que les permite procesar imágenes y realizar algoritmos de visión de manera eficiente y rápida. Y es que, su arquitectura especializada está optimizada para acelerar el procesamiento de imágenes y videos.
- Eficiencia energética: son muy eficientes en cuanto al consumo de energía, lo que las hace ideales para dispositivos con recursos limitados, como dispositivos móviles o sistemas embebidos. Su diseño permite realizar cálculos intensivos con un consumo de energía relativamente bajo.
- Mayor precisión en tareas de visión: sus algoritmos y características especializadas para la visión artificial les permite lograr una mayor precisión en la detección, clasificación y reconocimiento de objetos en imágenes y videos.
- Escalabilidad: en algunos casos vienen como tarjetas, en otros pueden ser unidades externas por USB, por lo que es fácil escalar si se necesita de más potencia, agregando más dispositivos VPU cuando se requiera.
- Limitaciones en tareas de propósito general: las VPUs están diseñadas para tareas específicas de visión artificial y pueden tener limitaciones en el manejo de tareas de propósito general que no estén relacionadas con la visión. Esto significa que no son tan versátiles como las GPUs.
- Dependencia del software y soporte: requieren de software y librerías especializadas para aprovechar al máximo su potencial. Esto implica que se necesita un ecosistema de desarrollo adecuado y un soporte activo por parte del fabricante para garantizar un buen funcionamiento y una correcta integración.
- Intel Movidius Myriad X y 2: estos son dispositivos diseñados y fabricados por Intel para este tipo de tareas. Incluyen una VPU Myriad y consiguen bastante buenas prestaciones. De hecho, se puede encontrar en aplicaciones como Google Clips, Google Project Tango, o en algunos drones DJI, entre otros.
- Google Pixel Visual Core o PVC: es otro dispositivo completamente reprogramable y que actúa como acelerador de IA para dispositivos móviles Google Pixel.
- Microsoft HoloLens: este producto de Microsoft también contiene una VPU integrada para acelerar ciertas tareas. De esta forma se puede mejorar en realidad aumentada.
- MIT Eyeriss: otro diseño conocido y con redes neuronales convulcionales.
- Yann LeCun NeuFlow: es un diseño de VPU implementada en un FPGA y similar en características al anterior, pero usando una arquitectura Dataflow.
- Mobileye EyeQ: es otro diseño creado por la empresa Mobileye para dispositivos móviles.
- NVIDIA PVA o Programmable Vision Accelerator: es básicamente un procesador de visión con arquitectura VLIW de 7-way para aplicaciones de alto rendimiento