Cómo acelerar el aprendizaje automático de GPU: se presenta una nueva plataforma de código abierto

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 CC

El 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 CC

Sin 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 :



Source: https://habr.com/ru/post/es429286/


All Articles