Como Trideep Rath ya mencionó, la principal diferencia es el paralelismo de los procesos, pero me gustaría dar algunos detalles más.
En los procesadores tradicionales, tiene la CPU, uno o varios núcleos, cada uno con su propia unidad de control, unidad de lógica aritmética (ALU) y archivo de registro, conectado a la memoria RAM de programa / datos y un contador de programa que ejecuta secuencialmente las instrucciones almacenadas. En un procesador de inteligencia artificial, generalmente se encuentra una cuadrícula de elementos de procesamiento (PE), podría ser docenas, cientos o miles, cada uno con su propio banco de operadores (ALU), memoria (generalmente un archivo de registro) y una interfaz para los elementos fuera del PE (en la mayoría de las implementaciones que conozco, un bus FIFO); los PE están conectados localmente entre ellos, en la mayoría de los casos a sus cuatro vecinos más cercanos, y globalmente a la red a través de enrutadores, implementando lo que se llama una red en chip (NoC). Puede ver un ejemplo de dicha arquitectura en la imagen a continuación, tomada de la arquitectura Eyeriss [1] que están desarrollando los investigadores del MIT con la colaboración de Nvidia.
- ¿Cuál es el trato real con IBM Watson?
- ¿Cuáles son las técnicas / modelos de aprendizaje automático adecuados para la entrada de datos semiautomática?
- ¿Cuáles son las tecnologías utilizadas detrás del chatbot de inteligencia artificial de Facebook?
- ¿Qué debería aprender primero si quiero aprender IA con Python? No sé nada de programación.
- ¿En qué parte de mi red neuronal implemento la función de costo?
La red se configura en tiempo de ejecución, configurando los enrutadores a un cierto cableado entre las PE que implementan el flujo de datos requerido (por ejemplo, una sucesión de operaciones de multiplicación y acumulación para realizar una convolución), no hay contador de programa, al menos a nivel de red, porque los datos entrantes , y los recursos disponibles (disponibilidad de ALU y memoria del búfer FIFO en las PE) determinan qué proceso se ejecuta en un determinado momento, esto es lo que se llama una arquitectura de flujo de datos que no es de von Neumann (al menos en concepto). Por lo tanto, los datos se envían a la cuadrícula secuencialmente a través de buses globales, luego se distribuyen espacialmente en la matriz PE por los enrutadores, se transforman a medida que fluyen a través de varios PE y, finalmente, los resultados se almacenan en alguna memoria externa. Hay varios procesos que se ejecutan simultáneamente, ya que hay varios flujos de datos en la red.
Otra característica importante es el diseño de ALU, en los procesadores regulares, la ALU generalmente consiste en operadores simples, como sumadores, funciones lógicas o desplazadores, mientras que en los procesadores AI puede encontrar funciones más exóticas, como Multiplicar y Acumular (unidades MAC), típicas de Digital Procesadores de señal pero ideales para la multiplicación de vectores, o circuitos complejos que mapean la entrada a alguna función no lineal (sigmoide, tanh, softmax, ReLU, etc.). Este banco de operadores se puede ver en la siguiente imagen, de la arquitectura NeuFlow [2] desarrollada por Yann LeCun, Clément Farabet, et. Alabama
Supuse que por “procesador diseñado para IA” se refería a los aceleradores de aprendizaje profundo, sin embargo, esta arquitectura NoC también se puede encontrar con mucha frecuencia en chips neuromórficos, donde los PE son algún modelo (analógico o digital) de neuronas biológicas que implementan -sinápticas y funciones de umbral [3] con los enrutadores que gestionan la transmisión de espiga. En la IA simbólica clásica, solo conozco los procesadores Fuzzy, que logran una gran cantidad de inferencias paralelas mediante el uso de un banco de PE canalizados, siendo estos algún circuito que implementa un motor de inferencia difusa [4].
Referencias
[1] Yu-Hsin Chen, Joel Emer y Vivienne Sze, “Eyeriss: una arquitectura espacial para el flujo de datos energéticamente eficiente para redes neuronales convolucionales”: http://people.csail.mit.edu/emer…
[2] Clement Farabet, Berin Martini, Benoit Corda, Polina Akselrod, Eugenio Culurciello, Yann LeCun, “NeuFlow: un procesador de flujo de datos reconfigurable en tiempo de ejecución para la visión”: https: //pdfs.semanticscholar.org…
[3] Ning Qiao, Hesham Mostafa, Federico Corradi, Marc Osswald, Fabio Stefanini, Dora Sumislawska y Giacomo Indiveri, “Un procesador neuromórfico de aprendizaje en línea reconfigurable que comprende 256 neuronas y 128K sinapsis”: http: //journal.frontiersin. org / a …
[4] Miguel Melgarejo, Carlos Andrés Peña Reyes, “Implementación de procesadores difusos tipo 2 de intervalo”: https://www.researchgate.net/pub…
PD: Disculpe cualquier posible error gramatical, no soy un hablante nativo de inglés, y si hay algún error, estaría muy agradecido si algún compañero Quoran lo edita.