
Las unidades de procesamiento de gráficos (GPU) son un excelente ejemplo de cómo la tecnología diseñada para tareas de procesamiento de gráficos se ha extendido a un área no conectada de computación de alto rendimiento. Las GPU modernas están en el corazón de muchos proyectos complejos en el campo del aprendizaje automático y el análisis de datos. En nuestro artículo de revisión, describiremos cómo los clientes de Selectel usan equipos con una GPU y piensan sobre el futuro de la ciencia de datos y los dispositivos informáticos junto con los maestros de la Yandex Data Analysis School.
Las GPU han cambiado mucho en los últimos diez años. Además de un tremendo aumento en la productividad, hubo una separación de dispositivos por tipo de uso. Por lo tanto, las tarjetas de video para sistemas de juegos domésticos y las instalaciones de realidad virtual se destacan en una dirección separada. Aparecen dispositivos potentes y altamente especializados: para los sistemas de servidor, uno de los aceleradores líderes es el
NVIDIA Tesla P100 , diseñado específicamente para uso industrial en centros de datos. Además de la GPU, se están realizando investigaciones en el campo de la creación de un nuevo tipo de procesador que imite al cerebro. Un ejemplo es la plataforma
Kirin 970 de un solo chip con su propio procesador neuromórfico para tareas relacionadas con redes neuronales y reconocimiento de patrones.
Esta situación te hace pensar en los siguientes problemas:
- ¿Por qué el campo del análisis de datos y el aprendizaje automático se ha vuelto tan popular?
- ¿Cómo dominaron las GPU en el mercado de equipos de uso intensivo de datos?
- ¿Qué investigación en el campo del análisis de datos será más prometedora en el futuro cercano?
Intentemos abordar estos problemas en orden, comenzando con los primeros procesadores de video simples y terminando con dispositivos modernos de alto rendimiento.
GPU Edad
Primero, recordemos qué es una GPU. La unidad de procesamiento de gráficos es un procesador de gráficos ampliamente utilizado en sistemas de escritorio y servidor. Una característica distintiva de este dispositivo es su enfoque en la computación paralela masiva. A diferencia de las GPU, la arquitectura de otra CPU (Unidad Central de Procesador) está diseñada para el procesamiento secuencial de datos. Si el número de núcleos en una CPU normal se mide en docenas, entonces en la GPU se cuentan en miles, lo que impone restricciones en los tipos de comandos que se ejecutan, pero proporciona un alto rendimiento computacional en tareas que involucran paralelismo.
Primeros pasos
El desarrollo de procesadores de video en las primeras etapas estuvo estrechamente relacionado con la creciente necesidad de un dispositivo informático separado para procesar gráficos de dos y tres dimensiones. Antes de la aparición de circuitos de controlador de video individuales en los años 70, la salida de imagen se realizaba mediante el uso de lógica discreta, lo que afectaba el aumento del consumo de energía y el gran tamaño de las placas de circuito impreso. Los microcircuitos especializados permitieron destacar el desarrollo de dispositivos diseñados para trabajar con gráficos en una dirección separada.
El siguiente evento revolucionario fue la aparición de una nueva clase de dispositivos más complejos y multifuncionales: los procesadores de video. En 1996, 3dfx Interactive lanzó el chipset Voodoo Graphics, que rápidamente ocupó el 85% del mercado de dispositivos de video especializados y se convirtió en el líder en el campo de los gráficos 3D de la época. Después de una serie de decisiones infructuosas por parte de la administración de la compañía, entre las que se encontraba la compra del fabricante de la tarjeta de video STB, 3dfx perdió el campeonato ante NVIDIA y ATI (más tarde AMD), y en 2002 se declaró en bancarrota.
Computación general de GPU
En 2006, NVIDIA anunció el lanzamiento de la línea de productos de la serie GeForce 8, que marcó el comienzo de una nueva clase de dispositivos diseñados para computación general en GPU (GPGPU). Durante el desarrollo, NVIDIA llegó a la conclusión de que una mayor cantidad de núcleos que funcionan a una frecuencia más baja son más efectivos para cargas paralelas que una pequeña cantidad de núcleos más productivos. La nueva generación de procesadores de video proporcionó soporte para la computación paralela no solo para procesar transmisiones de video, sino también para problemas relacionados con el aprendizaje automático, álgebra lineal, estadísticas y otras tareas científicas o comerciales.

Líder reconocido
Las diferencias en la configuración inicial de tareas para la CPU y la GPU condujeron a diferencias significativas en la arquitectura de los dispositivos: alta frecuencia versus multi-núcleo. Para las GPU, esto ha establecido el potencial informático, que se está realizando plenamente en la actualidad. Los procesadores de video con una cantidad impresionante de núcleos informáticos más débiles hacen un excelente trabajo de computación paralela. El procesador central, históricamente diseñado para trabajar con tareas secuenciales, sigue siendo el mejor en su campo.
Por ejemplo, comparamos los valores en el rendimiento de los procesadores centrales y gráficos que realizan una tarea común en redes neuronales: la multiplicación de matrices de alto orden. Seleccionamos los siguientes dispositivos para probar:
- CPU Intel Xeon E5-2680 v4: 28 subprocesos con HyperThreading, 2.4 GHZ;
- GPU NVIDIA GTX 1080 - 2560 núcleos CUDA, 1607 Mhz, 8GB GDDR5X.
Usamos un ejemplo de cálculo de multiplicación de matrices por CPU y GPU en un Jupyter Notebook:

En el código anterior, medimos el tiempo que llevó calcular las matrices del mismo orden en una central o GPU ("Tiempo de ejecución"). Los datos se pueden representar en forma de un gráfico en el que el eje horizontal muestra el orden de las matrices que se multiplican, y el eje vertical muestra el tiempo de ejecución en segundos:
La línea del gráfico, resaltada en naranja, muestra el tiempo que lleva crear datos en la RAM convencional, transferirlos a la memoria de la GPU y los cálculos posteriores. La línea verde muestra el tiempo que lleva calcular los datos que ya se han generado en la memoria de la tarjeta de video (sin transferirlos desde la RAM). Azul muestra el tiempo de recuento en el procesador central. Las matrices del orden de menos de 1000 elementos se multiplican por la GPU y la CPU casi al mismo tiempo. La diferencia en el rendimiento se manifiesta bien con matrices mayores que 2000 por 2000, cuando el tiempo de cálculo en la CPU salta a 1 segundo, y la GPU permanece cerca de cero.Las tareas más complejas y prácticas se resuelven de manera más efectiva en un dispositivo con procesadores gráficos que sin ellos. Dado que los problemas que nuestros clientes resuelven en los equipos de GPU son muy diversos, decidimos averiguar cuáles son los casos de uso más populares.
¿Quién en Selectel vive bien con la GPU?
La primera opción que viene inmediatamente a la mente y resulta ser la conjetura correcta es la minería, pero es curioso notar que algunos lo usan como una forma auxiliar de cargar el equipo al "máximo". En el caso de alquilar un servidor dedicado con tarjetas de video, el tiempo libre de las cargas de trabajo se usa para extraer criptomonedas que no requieren instalaciones especializadas (granjas) para su recepción.
Después de haberse convertido en algo clásico, las tareas relacionadas con el procesamiento y la representación gráfica invariablemente encuentran su lugar en los servidores Selectel con aceleradores gráficos. El uso de equipos de alto rendimiento para tales tareas le permite obtener una solución más efectiva que organizar estaciones de trabajo dedicadas con tarjetas de video.
Durante una conversación con nuestros clientes, también nos reunimos con representantes de la Yandex Data Analysis School, que utiliza las instalaciones de Selectel para organizar entornos educativos de prueba. Decidimos aprender más sobre lo que los estudiantes y los maestros están haciendo, qué áreas del aprendizaje automático son ahora populares y qué le depara el futuro a la industria después de que jóvenes especialistas se unan a las filas de organizaciones líderes o inicien sus nuevas empresas.
Ciencia de datos
Quizás, entre nuestros lectores no habrá quienes no escuchen la frase "redes neuronales" o "aprendizaje automático". Después de descartar las variaciones de marketing sobre el tema de estas palabras, se obtiene un residuo seco en forma de una ciencia de datos emergente y prometedora.
El enfoque moderno para trabajar con datos incluye varias áreas principales:
- Big data El principal problema en esta área es la enorme cantidad de información que no puede procesarse en un solo servidor. Desde el punto de vista del soporte de infraestructura, es necesario resolver los problemas de creación de sistemas de clúster, escalabilidad, tolerancia a fallas y almacenamiento distribuido de datos;
- Tareas intensivas en recursos (aprendizaje automático, aprendizaje profundo y otras). En este caso, surge la cuestión del uso de la informática de alto rendimiento, que requiere una gran cantidad de RAM y recursos de procesador. En tales tareas, los sistemas con aceleradores gráficos se utilizan activamente.
El límite entre los datos de dirección se está borrando gradualmente: las herramientas principales para trabajar con big data (Hadoop, Spark) implementan soporte para computación GPU, y las tareas de aprendizaje automático cubren nuevas áreas y requieren más datos. Los maestros y estudiantes de la Escuela de Análisis de Datos nos ayudarán a comprender con más detalle.

Es difícil sobreestimar la importancia del trabajo competente con datos y la implementación adecuada de herramientas analíticas avanzadas. Ni siquiera se trata de big data, sus "lagos" o "ríos", sino de la interacción intelectual con la información. Lo que está sucediendo ahora es una situación única: podemos recopilar una amplia variedad de información y utilizar herramientas y servicios avanzados para un análisis en profundidad. El negocio introduce tales tecnologías no solo para obtener análisis avanzados, sino también para crear un producto único en cualquier industria. Es el último punto que en gran medida da forma y estimula el crecimiento de la industria del análisis de datos.
Nueva dirección
En todas partes estamos rodeados de información: desde los registros de empresas de Internet y operaciones bancarias hasta testimonios en experimentos en el Gran Colisionador de Hadrones. La capacidad de trabajar con estos datos puede generar millones de ganancias y dar respuestas a preguntas fundamentales sobre la estructura del Universo. Por lo tanto, el análisis de datos se ha convertido en un área de investigación separada entre la comunidad empresarial y científica.
La escuela de análisis de datos prepara a los mejores especialistas y científicos especializados que en el futuro se convertirán en la principal fuente de desarrollos científicos e industriales en este campo. El desarrollo de la industria también nos afecta como proveedor de infraestructura: cada vez más clientes solicitan configuraciones de servidor para tareas de análisis de datos.
Los detalles de las tareas que enfrentan nuestros clientes dependen de qué equipo debemos ofrecer a nuestros clientes y en qué dirección se debe desarrollar nuestra línea de productos. Junto con Stanislav Fedotov y Oleg Ivchenko, entrevistamos a estudiantes y profesores de la Escuela de Análisis de Datos y descubrimos qué tecnologías usan para resolver problemas prácticos.

Tecnologías de análisis de datos
Durante la capacitación, los estudiantes de los conceptos básicos (matemáticas básicas superiores, algoritmos y programación) alcanzan las áreas más avanzadas de aprendizaje automático. Recopilamos información sobre aquellos que usan servidores con GPU:
- Aprendizaje profundo;
- Entrenamiento de refuerzo;
- Visión por computadora;
- Procesamiento automático de textos.
Los estudiantes usan herramientas especializadas en sus tareas de estudio y estudios. Algunas bibliotecas están diseñadas para llevar datos al formulario requerido, mientras que otras están diseñadas para trabajar con un tipo específico de información, por ejemplo, texto o imágenes. El aprendizaje profundo es una de las áreas más desafiantes en el análisis de datos que hace un uso extensivo de las redes neuronales. Decidimos averiguar qué maestros y estudiantes usan los marcos para trabajar con redes neuronales.

Las herramientas presentadas tienen un soporte diferente al de los creadores, pero, sin embargo, continúan utilizándose activamente para fines de capacitación y trabajo. Muchos de ellos requieren equipos productivos para manejar tareas en un marco de tiempo adecuado.
Desarrollo y proyectos posteriores.
Como cualquier ciencia, la dirección del análisis de datos cambiará. La experiencia que los estudiantes obtienen hoy sin duda formará la base de futuros desarrollos. Por lo tanto, vale la pena señalar por separado la alta orientación práctica del programa: algunos estudiantes, mientras estudian o después, comienzan a realizar prácticas en Yandex y aplican sus conocimientos ya en servicios y servicios reales (búsqueda, visión por computadora, reconocimiento de voz y otros).
Hablamos sobre el futuro del análisis de datos con los maestros de la Escuela de Análisis de Datos, quienes compartieron con nosotros su visión del desarrollo de la ciencia de datos.
Según
Vlad Shahuro , profesor del curso "Análisis de imagen y video", las tareas más interesantes en visión por computadora son garantizar la seguridad en lugares con
mucha gente, conducir un vehículo no tripulado y crear una aplicación utilizando la realidad aumentada. Para resolver estos problemas, es necesario poder analizar cualitativamente los datos de video y desarrollar principalmente algoritmos para detectar y rastrear objetos, reconociendo a una persona por la cara y la reconstrucción tridimensional de la escena observada. El profesor
Victor Lempitsky , un curso líder en capacitación en profundidad, destaca los codificadores automáticos, así como las redes generativas y competitivas, en su dirección.
Uno de los mentores de la Escuela de Análisis de Datos comparte su opinión sobre la difusión y el inicio del uso masivo del aprendizaje automático:
“El aprendizaje automático, del grupo de los pocos investigadores obsesionados, se está convirtiendo en una herramienta más para el desarrollador promedio. Anteriormente (por ejemplo, en 2012), la gente escribió un código de bajo nivel para entrenar redes convolucionales en un par de tarjetas de video. Ahora, cualquiera puede en cuestión de horas:
Muchas grandes empresas y nuevas empresas ya han ganado en esa estrategia (por ejemplo, Prisma), pero aún hay más problemas por descubrir y resolver. Y tal vez toda esta historia de máquina / aprendizaje profundo algún día se volverá tan común como Python o Excel es ahora ".Según
Oleg Ivchenko , administrador de la infraestructura del servidor ShAD, los recursos estándar para el aprendizaje profundo en conjuntos de datos estándar (por ejemplo, CIFAR, MNIST) requieren los siguientes recursos:
- 6 núcleos de CPU;
- 16 Gb de RAM;
- 1 tarjeta GPU con 6-8 Gb de memoria de video. Esto coincide con tarjetas gráficas como la PNY NVIDIA GeForce GTX 1060 o MSI GeForce GTX 1070.
Nadie puede predecir con precisión la tecnología del futuro hoy, pero cuando hay un determinado vector de movimiento, puede comprender lo que debe estudiarse ahora. Y hay muchas oportunidades para esto en el mundo moderno.
Oportunidades para principiantes.
El estudio del análisis de datos está limitado por los altos requisitos para los estudiantes: amplio conocimiento en el campo de las matemáticas y los algoritmos, la capacidad de programar. Las tareas de aprendizaje automático realmente serias requieren equipos especializados. Y para aquellos que quieran aprender más sobre el componente teórico de la ciencia de datos, la Escuela de Análisis de Datos, junto con la
Escuela Superior de Economía , lanzó un curso en línea "
Introducción al aprendizaje automático ".
En lugar de una conclusión
El crecimiento del mercado de GPU es proporcionado por el creciente interés en las capacidades de dichos dispositivos. La GPU se utiliza en sistemas de juegos domésticos, tareas de procesamiento de video y renderizado, así como también donde se requiere computación general de alto rendimiento. La aplicación práctica de las tareas de minería de datos penetrará más profundamente en nuestra vida diaria. Y la ejecución de tales programas se lleva a cabo de manera más efectiva precisamente utilizando la GPU.
Agradecemos a nuestros clientes, así como a los maestros y estudiantes de la Escuela de Análisis de Datos por la preparación conjunta del material, e invitamos a nuestros lectores a conocerlos
mejor .
Y con experiencia y sofisticación en el campo del aprendizaje automático, el análisis de datos y no solo ofrecemos ver las
ofertas de Selectel para alquilar equipos de servidor con aceleradores gráficos: desde GTX 1080 simple hasta Tesla P100 y K80 para las tareas más exigentes.