Un procesador de aprendizaje profundo (DLP), o deep learning accelerator, es un circuito electrónico diseñado para algoritmos de aprendizaje profundo, generalmente con una memoria principal (MP) separada y una arquitectura de conjunto de instrucciones dedicada. Los procesadores de aprendizaje profundo van desde dispositivos móviles, como unidades de procesamiento neuronal (NPU) en teléfonos celulares Huawei, hasta servidores de computación en la nube, como unidades de procesamiento tensorial (TPU) en la plataforma Google Cloud.
El objetivo de los DLP es proporcionar una mayor eficiencia y rendimiento para los algoritmos de aprendizaje profundo que la unidad central de procesamiento (CPU) general y las unidades de procesamiento de gráficos (GPU). La mayoría de los DLP emplean una gran cantidad de componentes informáticos para aprovechar el paralelismo de alto nivel de datos, un búfer/memoria en chip relativamente más grande para aprovechar los patrones de reutilización de datos y operadores de ancho de datos limitado (limited data-width operators) para la resistencia a errores del aprendizaje profundo. Los procesadores de aprendizaje profundo difieren de los aceleradores de IA en que están especializados para ejecutar algoritmos de aprendizaje, mientras que los aceleradores de IA suelen estar más especializados para la inferencia. Los dos términos (DLP y acelerador de IA), sin embargo, no se utilizan de forma rigurosa y, a menudo, se superponen.
Historia
El uso de CPU/GPU Al principio, se adoptaron CPU generales para realizar algoritmos de aprendizaje profundo. Más tarde, las GPU se introducen en el dominio del aprendizaje profundo. Por ejemplo, en 2012, Alex Krizhevsky adoptó dos GPU para entrenar una red de aprendizaje profundo, la llamada, AlexNet, que ganó el campeonato ISLVRC-2012. A medida que aumenta el interés por los algoritmos de aprendizaje profundo y las DLP, los fabricantes de GPU comienzan a agregar funciones relacionadas con el aprendizaje profundo tanto en hardware (por ejemplo, operadores INT8) como en software (por ejemplo, biblioteca cuDNN). Nvidia incluso lanzó Turing Tensor Core, un DLP, para acelerar el procesamiento de aprendizaje profundo.
El primer DLP Para proporcionar una mayor eficiencia en el rendimiento y la energía, el diseño de dominio específico comenzó paulatinamente a llamar mucho la atención. En 2014, Chen et al. propuso el primer DLP del mundo, DianNao (en chino, "cerebro eléctrico"), para acelerar especialmente las redes neuronales profundas. DianNao proporciona el rendimiento máximo de 452 Gop/s (de operaciones clave en redes neuronales profundas) solo en un espacio reducido de 3,02 mm y 485 mW. Posteriormente, los sucesores (DaDianNao, ShiDianNao, PuDianNao) son propuestos por el mismo grupo, formando la Familia DianNao
Los florecientes DLP Inspirados en el trabajo pionero de la familia DianNao, se han presentado muchos DLP, tanto en el mundo académico como en el industrial, con un diseño optimizado para aprovechar las características de las redes neuronales profundas para una alta eficiencia. Solo en ISCA 2016, tres sesiones, el 15% de los trabajos aceptados fueron diseños de arquitectura sobre aprendizaje profundo. Dichos esfuerzos incluyen Eyeriss (MIT), EIE (Stanford), Minerva (Harvard), Stripes (Universidad de Toronto) en el mundo académico y TPU (Google), MLU (Cambricon) en la industria. Se presentan varios trabajos representativos en la Tabla 1. Tabla 1. Típicos DLPAñoDLPInstituciónTipoComputaciónJerarquía de memoriaControlRendimiento máximo2014DianNaoICT, CASdigitalvector MACsscratchpadLa memoria scratchpad (SPM), también conocida como scratchpad, scratchpad RAM o almacenamiento local en la terminología informática, es una memoria interna, generalmente de alta velocidad, que se utiliza para el almacenamiento temporal de cálculos, datos y otros trabajos en curso. En referencia a un microprocesador (o CPU), scratchpad se refiere a una memoria especial de alta velocidad que se utiliza para almacenar pequeños elementos de datos para una recuperación rápida. Es similar al uso y tamaño de un bloc de apuntes en la vida: un bloc de papel para notas preliminares, bocetos o escritos, etc. Cuando el bloc de apuntes es una parte oculta de la memoria principal, a veces se lo denomina almacenamiento de impacto.VLIW452 Gops (16-bit)DaDianNaoICT, CASdigitalvector MACsscratchpadVLIW5.58 Tops (16-bit)2015ShiDianNaoICT, CASdigitalscalar MACsscratchpadVLIW194 Gops (16-bit)PuDianNaoICT, CASdigitalvector MACsscratchpadVLIW1,056 Gops (16-bit)2016DnnWeaverGeorgia TechdigitalVector MACsscratchpad - -EIEStanforddigitalscalar MACsscratchpad -102 Gops (16-bit)EyerissMITdigitalscalar MACsscratchpad -67.2 Gops (16-bit)PrimeUCSBhybridProcess-in-MemoryReRAM - -2017TPUGoogledigitalscalar MACsscratchpadCISC92 Tops (8-bit)PipeLayerU of PittsburghhybridProcess-in-MemoryReRAM -FlexFlowICT, CASdigitalscalar MACsscratchpad -420 Gops ()2018MAERIGeorgia Techdigitalscalar MACsscratchpad -PermDNNCity University of New Yorkdigitalvector MACsscratchpad -614.4 Gops (16-bit)2019FPSATsinghuahybridProcess-in-MemoryReRAM -Cambricon-FICT, CASdigitalvector MACsscratchpadFISA14.9 Tops (F1, 16-bit) 956 Tops (F100, 16-bit)
Arquitectura DLP Con la rápida evolución de los algoritmos de aprendizaje profundo y DLP, se han explorado muchas arquitecturas. Los DLP se pueden clasificar en tres categorías según su implementación: circuitos digitales, circuitos analógicos y circuitos híbridos. Como los DLP analógicos puros rara vez son vistos, la referencia es a los digitales y los híbridos.
DLP digitales Los componentes principales de la arquitectura de DLP generalmente incluyen un componente de computación, la jerarquía de memoria en el chip y la lógica de control que administra los flujos de computación y comunicación de datos.
Con respecto al componente de computación, dado que la mayoría de las operaciones en el aprendizaje profundo se pueden agregar a operaciones vectoriales, las formas más comunes para construir componentes de computación en DLP digitales son la organización basada en MAC (acumulación multiplicadora),En computación, especialmente en el procesamiento de señales digitales, la operación multiplicar-acumular (MAC) o multiplicar-sumar (MAD) es un paso común que calcula el producto de dos números y suma ese producto a un acumulador. La unidad de hardware que realiza la operación se conoce como multiplicador-acumulador (unidad MAC); la operación en sí también suele denominarse operación MAC o MAD. ya sea con MAC vectoriales o MAC escalares. En lugar de SIMD o SIMT en dispositivos de procesamiento general, el paralelismo específico del dominio de aprendizaje profundo se explora mejor en estas organizaciones basadas en MAC. Con respecto a la jerarquía de la memoria, dado que los algoritmos de aprendizaje profundo requieren un gran ancho de banda para proporcionar datos suficientes al componente de computación, los DLP suelen emplear un búfer en chip de tamaño relativamente mayor (decenas de kilobytes o varios megabytes) pero con una estrategia de reutilización de datos en chip dedicada y estrategia de intercambio de datos para aliviar la carga del ancho de banda de la memoria. Por ejemplo, DianNao, 16 MAC vectorial de 16 pulgadas, requiere 16 × 16 × 2 = 512 datos de 16 bits, es decir, requisitos de ancho de banda de casi 1024 GB/s entre componentes de computación y búfer. Con la reutilización en el chip, estos requisitos de ancho de banda se reducen drásticamente. En lugar de la memoria caché ampliamente utilizada en los dispositivos de procesamiento general, las DLP siempre usan la memoria de borrador, ya que podría brindar mayores oportunidades de reutilización de datos al aprovechar el patrón de acceso a datos relativamente regular en los algoritmos de aprendizaje profundo. Con respecto a la lógica de control, a medida que los algoritmos de aprendizaje profundo siguen evolucionando a una velocidad espectacular, los DLP comienzan a aprovechar la ISA (arquitectura de conjunto de instrucciones) dedicada para respaldar el dominio de aprendizaje profundo de manera flexible. Al principio, DianNao usó un conjunto de instrucciones de estilo VLIW donde cada instrucción podía terminar una capa en un DNN. Cambricon presenta el primer ISA específico de dominio de aprendizaje profundo, que podría admitir más de diez algoritmos de aprendizaje profundo diferentes. TPU también revela cinco instrucciones clave de la ISA estilo CISC.
DLP híbridos Los DLP híbridos resaltan por la inferencia de DNN y la aceleración del entrenamiento debido a su alta eficiencia. Las arquitecturas de procesamiento en memoria (PIM) son uno de los tipos más importantes de DLP híbrida. El concepto de diseño clave de PIM es cerrar la brecha entre la computación y la memoria de las siguientes maneras: 1) Mover componentes de computación a celdas de memoria, controladores o chips de memoria para aliviar el problema del muro de memoria.El "muro de memoria" es la creciente disparidad de velocidad entre la CPU y el tiempo de respuesta de la memoria (conocido como latencia de memoria) fuera del chip de la CPU. Una razón importante de esta disparidad es el ancho de banda de comunicación limitado más allá de los límites del chip, que también se conoce como muro de ancho de banda. De 1986 a 2000, la velocidad de la CPU mejoró a una tasa anual del 55 %, mientras que el tiempo de respuesta de la memoria fuera del chip solo mejoró en un 10 %. Dadas estas tendencias, se esperaba que la latencia de la memoria se convirtiera en un cuello de botella abrumador en el rendimiento de la computadora. Estas arquitecturas acortan significativamente las rutas de datos y aprovechan un ancho de banda interno mucho mayor, lo que da como resultado una mejora atractiva del rendimiento. 2) Construir motores DNN de alta eficiencia mediante la adopción de dispositivos computacionales. En 2013, HP Lab demostró la asombrosa capacidad de adoptar la estructura de barras cruzadas ReRAM para la informática. Inspirándose en esta obra, se propone un trabajo para explorar la nueva arquitectura y el diseño del sistema basado en ReRAM, memoria de cambio de fase, etc.
GPU y FPGA A pesar de las DLP, las GPU y las FPGA también se utilizan como aceleradores para aumentar la velocidad de la ejecución de algoritmos de aprendizaje profundo. Por ejemplo, Summit, una supercomputadora de IBM para el Laboratorio Nacional de Oak Ridge, contiene 27 648 tarjetas Nvidia Tesla V100, que se pueden usar para acelerar los algoritmos de aprendizaje profundo. Microsoft construye su plataforma de aprendizaje profundo utilizando FPGA en su Azure para admitir servicios de aprendizaje profundo en tiempo real. En la Tabla 2, se comparan las DLP con las GPU y las FPGA en términos de objetivo, rendimiento, eficiencia energética y flexibilidad. +Tabla 2. DLP vs. GPU vs. FPGA Objetivo Rendimiento Eficiencia energética Flexibilidad DLP aprendizaje profundo alto alto específico del dominio FPGA todo bajo moderado general GPU cálculo matricial moderado bajo aplicaciones de matriz
Semiconductores atómicamente delgados para el aprendizaje profundo Los semiconductores atómicamente delgados se consideran prometedores para el hardware de aprendizaje profundo de bajo consumo en el que se utiliza la misma estructura básica del dispositivo tanto para las operaciones lógicas como para el almacenamiento de datos. En 2020, Marega et al. publicó experimentos con un material de canal activo de área grande para desarrollar dispositivos y circuitos de lógica en memoria basados en transistores de efecto de campo de puerta flotante (FGFET). Utilizan materiales bidimensionales como el disulfuro de molibdeno semiconductor para ajustar con precisión los FGFET como bloques de construcción en los que se pueden realizar operaciones lógicas con los elementos de memoria.
Núcleo de tensor fotónico integrado