Intel agrega instrucciones de aprendizaje profundo a la CPU


Algunos de los últimos procesadores Intel son compatibles con la familia de instrucciones vectoriales AVX-512 . Se ejecutan en bloques de 512 bits (64 bytes). La ventaja del soporte de hardware para instrucciones tan grandes es que el procesador procesa más datos en un solo ciclo de reloj.

Si el código se carga con palabras de 64 bits (8 bytes), teóricamente, si no tiene en cuenta otros factores, puede acelerar su ejecución ocho veces si usa las instrucciones AVX-512.

La extensión AVX-512 para el sistema de comando x86 admite 8 registros de máscara, formatos empaquetados de 512 bits para números enteros y fraccionarios y operaciones con ellos, modos de redondeo de ajuste fino (le permite anular configuraciones globales), operaciones de transmisión, supresión de errores en operaciones con números fraccionarios, operaciones de recopilación / dispersión, operaciones matemáticas rápidas, codificación compacta de grandes compensaciones.

El conjunto inicial AVX-512 incluye ocho grupos de instrucciones:

  • Instrucciones de detección de conflictos AVX-512 (CDI)
  • Instrucciones exponenciales y recíprocas (ERI) AVX-512
  • Instrucciones de captación previa AVX-512 (PFI)
  • AVX-512 Extensiones de longitud de vector (VL)
  • AVX-512 Byte y Word Instrucciones (BW)
  • Instrucciones de doble palabra y cuádruple AVX-512 (DQ)
  • AVX-512 Integer Fusion Multiply Add (IFMA)
  • Instrucciones de manipulación de bytes de vector AVX-512 (VBMI)

AVX-512 Intel Xeon Phi ( Intel MIC) Knights Landing, Skylake Xeon (SKX), Cannonlake, 2017 . . , Knights Landing Xeon Phi CD, ER PF. Skylake Xeon (SKX) CD, VL, BW DQ. Cannonlake — CD, VL, BW, DQ, IFMA.

, , , en su blog Daniel Lemire, profesor de informática en la Universidad de Quebec. Según él, es importante optimizar el "código activo", que consume la mayoría de los recursos del procesador. En muchos sistemas, el "código activo" se crea a partir de una serie de bucles que se desplazan miles de millones de veces. Eso es lo que debe optimizarse, este es el principal beneficio.

Por ejemplo, si dicho código de Python se vuelve a compilar a partir de instrucciones estándar de 64 bits en AVX-512 utilizando MKL Numpy , el tiempo de ejecución se reduce de 6-7 segundos a 1 segundo en el mismo procesador.

import numpy as np
np.random.seed(1234)
xx = np.random.rand(1000000).reshape(1000, 1000)
%timeit np.linalg.eig(xx)

Soporte de hardware de aprendizaje profundo


Las redes neuronales y el aprendizaje profundo son una de las tendencias más brillantes de los últimos tiempos. Google, Facebook y otras grandes compañías están tratando de usar redes neuronales siempre que sea posible: en sistemas de recomendación, reconocimiento facial, traducción de texto, reconocimiento de voz, clasificación de fotos e incluso en juegos de mesa como go (pero esto es más para publicidad que para beneficio comercial). Algunos están tratando de aplicar capacitación en profundidad en áreas no estándar, como la capacitación de piloto automático .

Entre los inversores de capital de riesgo, ahora se entiende que el esquema más efectivo para enriquecerse rápidamente es lanzar una startup en el campo del aprendizaje profundo, que la compañía de los Cinco Grandes (Facebook, Google, Apple, Microsoft, Amazon) comprará de inmediato. Estas compañías recientemente han competido ferozmente en el campo de la compra de talento, por lo que una startup se irá al instante y a un excelente precio a una tasa de al menos $ 10 millones por empleado. Tal plan de negocios ahora se ha vuelto aún más simple, ya que las compañías lanzan herramientas de desarrollo de código abierto, como lo hizo Google con TensorFlow .

Desafortunadamente para Intel, esta compañía se queda atrás y casi no participa en el juego. El profesor Lemir reconoce que las GPU Nvidia ahora se consideran el estándar de la industria. Es sobre ellos que ejecutan el código de los programas para el aprendizaje automático.

No es que los ingenieros de Intel hayan dejado atrás la tendencia. Es solo que las GPU mismas, sin ninguna instrucción especial, son más adecuadas para los cálculos de aprendizaje profundo.

Sin embargo, Intel está preparando un contraataque, como resultado de lo cual la situación podría ponerse patas arriba. En septiembre, la compañía publicó una nueva referencia de programación de extensiones de conjunto de instrucciones de arquitectura Intelindicando todas las instrucciones que se admitirán en futuros procesadores. Si nos fijamos en este documento, estamos esperando una agradable sorpresa. Resulta que la familia de instrucciones AVX-512 se dividió en varios grupos y se expandió.

En particular, dos grupos de instrucciones están específicamente diseñados para una capacitación en profundidad: AVX512_4VNNIW y AVX512_4FMAPS. A juzgar por la descripción, estas instrucciones pueden ser útiles no solo en el aprendizaje profundo, sino también en muchas otras tareas.

  • AVX512_4VNNIW: instrucciones vectoriales para el aprendizaje profundo con precisión variable de palabras mejorada
  • AVX512_4FMAPS: instrucciones vectoriales para el aprendizaje profundo de precisión simple de punto flotante



Esta es una muy buena noticia.

Cuando tal soporte aparece en los procesadores Intel estándar, pueden acercarse o incluso superar el rendimiento del entrenamiento de gráficos en profundidad de Nvidia. Por supuesto, sujeto a los programas de optimización adecuados. Quién sabe, la misma historia se repetirá repentinamente como con la codificación de video, cuando, después de agregar soporte de hardware H.264 y H.265 a la CPU, los procesadores Intel con gráficos integrados comenzaron a codificar y decodificar video más rápido que las tarjetas de video Nvidia y AMD separadas.

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


All Articles