Nvidia
presentó la plataforma de código abierto Rapids, cuya misión es acelerar los algoritmos de aprendizaje automático de GPU. Hablamos sobre las características de la herramienta y sus análogos.
/ foto Martin Brigden CCEl problema de entrenar redes neuronales
La lista de tecnología de Nvidia incluye la arquitectura de computación paralela CUDA. Su objetivo es acelerar el cálculo transfiriendo parte de las tareas de la GPU en lugar de la CPU. En algunos casos, esto le
permite acelerar el trabajo de aplicaciones y algoritmos en 18 veces.
Por esta razón, ha encontrado una amplia aplicación en el campo del aprendizaje automático. Por ejemplo, investigadores de las universidades de Florida y Carolina del Norte están
desarrollando con su ayuda un motor de red neuronal para simulaciones cuánticas.
Se utiliza una gran cantidad de bibliotecas diferentes para desarrollar algoritmos MO. Muchos
de ellos están escritos en Python . Pero no todos ellos apoyan trabajar con CUDA. Las herramientas de Python para el aprendizaje automático scikit-learn y los pandas son ejemplos de tales herramientas. Para ejecutar código Python en la arquitectura CUDA, los investigadores usan bibliotecas separadas de Numba o PyCUDA. En este caso, el código de algunos componentes debe
reescribirse manualmente, lo cual es difícil, ya que necesita conocer las funciones de programación de la GPU.
Solución Nvidia
En un esfuerzo por automatizar la portabilidad del código, Nvidia ha presentado la nueva plataforma abierta Rapids. Los desarrolladores no necesitan recurrir a bibliotecas diferentes: solo escriben código en Python, y Rapids lo optimiza automáticamente para que se ejecute en la GPU.
Para mapear procesos, Rapids usa una base de datos común, que se encuentra en la memoria de la GPU. Los datos se almacenan en
el formato Apache Arrow, que es común para todas las herramientas de la plataforma. Esta solución ayuda a acelerar el proceso de aprendizaje automático 50 veces en comparación con los sistemas que utilizan gráficos y procesadores centrales.
Al mismo tiempo, las herramientas están disponibles en la plataforma Rapids con la ayuda de las cuales todo el proceso de trabajo con redes neuronales se puede llevar a cabo en un chip gráfico: desde la preparación de datos hasta la salida del resultado.
El número de soluciones en
el repositorio de GitHub Rapids se repone activamente. Por ejemplo, hay una biblioteca
cuDF para preparar datos y entrenar una red neuronal, y la biblioteca
cuML le permite desarrollar algoritmos de aprendizaje automático sin entrar en los detalles de programación para CUDA.
Nvidia continuará desarrollando la plataforma. Los creadores del proyecto planean agregar herramientas para la visualización de datos, análisis de gráficos y aprendizaje profundo a Rapids. El programa también
integra el marco Apache Spark.
¿Qué piensan de la plataforma?
La comunidad tecnológica apoyó el lanzamiento de Rapids, pero su desarrollo posterior planteó varias preguntas de expertos y usuarios.
Por ejemplo, los gerentes de Cisco, Dell, NetApp, Lenovo y otras compañías hablaron en apoyo de la nueva solución. El CEO de Anaconda, Scott Collison,
dijo que Rapids simplificará la recopilación y preparación de datos para entrenar sistemas complejos de IA. El creador de Apache Arrow y los pandas, Wes McKinney, está de acuerdo con él. Según él, Rapids conducirá a una mayor productividad en las tareas relacionadas con la creación de características (
ingeniería de características ).
/ foto Sander van der Wel CCSin embargo, la comunidad también
tiene la opinión de que Rapids no puede considerarse un verdadero proyecto de código abierto. El sistema solo funciona con tarjetas Nvidia, y el lanzamiento de la plataforma puede ser un movimiento de marketing para atraer nuevos clientes. La compañía aún no ha especificado si la plataforma funcionará con dispositivos de otros fabricantes.
¿Quién ya está usando Rapids?
IBM
planea implementar la plataforma en servicios para trabajar con sistemas de inteligencia artificial: PowerAI, Watson e IBM Cloud. Oracle también anunció soporte para Rapids, una plataforma
disponible en la infraestructura de Oracle Cloud.
El nuevo producto de Nvidia también ha sido probado por Walmart y Uber. Los primeros Rapids
ayudaron a mejorar los algoritmos del sistema responsable de la gestión del inventario. Según los representantes del minorista, Rapids ha acelerado el despliegue de algoritmos de aprendizaje automático. En cuanto a Uber, la compañía
utiliza Rapids en el desarrollo de sistemas de vehículos no tripulados.
Solución alternativa
No solo Nvidia está desarrollando una plataforma para acelerar MO. Por ejemplo, AMD está involucrado en el proyecto
ROCm (Radeon Open Compute). Es una plataforma abierta para la informática de alto rendimiento en la GPU.
Una característica de ROCm es que no depende del lenguaje de programación y puede funcionar con casi cualquier tarjeta de video. Incluido con tarjetas Nvidia. Para esto
, se usa un dialecto especial de C ++ llamado HIP. Simplifica la conversión de aplicaciones CUDA a código C ++ portátil. El código se convierte automáticamente por un sistema especial de Hipify.
Al mismo tiempo, ROCm
admite una gran cantidad de bibliotecas de aceleración matemática. Entre ellos, se pueden distinguir BLAS, FFT y
convolución tensorial .
Los expertos de la industria de TI señalan que las soluciones de código abierto para acelerar la computación heterogénea y GPU, como ROCm y Rapids, brindan a los desarrolladores la oportunidad de usar los recursos informáticos de manera más eficiente y obtener un mayor rendimiento del hardware disponible.
PD Algunos materiales del primer blog corporativo de IaaS:
PPS Brevemente sobre las tecnologías IaaS: en nuestro
canal Telegram :