Informe en vivo desde el nacimiento de un jugador importante en IA de hardware que acelera TensorFlow y compite con NVidia



Mañana habrá comunicados de prensa oficiales sobre la fusión del viejo Silicon Valley, MIPS, con la joven compañía de inteligencia artificial Wave Computing. La información sobre este evento se filtró a los medios ayer, y pronto CNet, Forbes, EE Times y un grupo de sitios de alta tecnología publicaron artículos sobre este evento. Así que hoy, Derek Meyer, presidente de la compañía combinada (en la foto a la derecha a continuación), dijo "está bien, comparta la información con amigos" y decidí escribir algunas palabras sobre las tecnologías y las personas asociadas con este evento.

El principal inversor en MIPS y Wave es el multimillonario Dado Banatao (en la foto, abajo a la izquierda), quien fundó la compañía Chips & Technoilogies en la década de 1980, que fabricó conjuntos de chips para los primeros empleados. Hay otras celebridades en Wave + MIPS, como Stephen Johnson (en la foto en la parte superior derecha), el autor del compilador de C más popular de principios de la década de 1980. MIPS es bien conocido en Rusia. En las manos del diseñador Smriti (foto a la izquierda) hay un tablero de Zelenograd, donde se encuentran los licenciatarios de MIPS Elvis-NeoTek y Baikal Electronics.

Wave ya ha lanzado un chip que consta de miles de unidades de procesamiento, procesadores esencialmente simplificados. Este diseño está optimizado para una informática de red neuronal muy rápida. Wave tiene un compilador que convierte un gráfico de flujo de datos en un archivo de configuración para esta estructura.

La compañía combinada creará un chip que consiste en una mezcla de tales unidades informáticas y núcleos MIPS de subprocesos múltiples. Ahora Wave está vendiendo su tecnología en forma de caja para centros de datos, para computar redes neuronales en la nube. Los siguientes chips se utilizarán en dispositivos integrados.

Las redes neuronales se representan tradicionalmente como un gráfico de flujo de datos. Este es un gráfico cuyos nodos contienen constantes, variables y operaciones aritméticas en escalares, vectores y matrices:



Google ha creado la biblioteca TensorFlow, que es una API para construir tales gráficos y ejecutar cálculos en una cuadrícula, tanto una inferencia regular como capacitación usando backpropfgftion. Esta API se usa con mayor frecuencia junto con python, cuyo código se ve así:



Al mismo tiempo, la pitón en el ejemplo anterior usa la redefinición de operaciones aritméticas, que en realidad no calculan, sino que construyen un gráfico en la memoria. En C, el código para construir un gráfico en TensorFlow se ve así:



En Google tengo un amigo programador ucraniano, Mikhail Simbirsky, que usa TensorFlow en Python. Las redes neuronales de Google se utilizan, por ejemplo, para analizar el comportamiento de los usuarios para orientarlos con publicidad. Algunos cálculos para entrenar las redes neuronales de Google tardan días y semanas, a pesar de que Google usa la GPU NVidia y sus propios aceleradores de Google. Esta no es una tarea fácil, ya que la transferencia de datos entre procesadores y GPU lleva mucho tiempo:



Uno de los problemas de diseño de los procesadores y las GPU es que la GPU está inactiva durante mucho tiempo:



Otro problema es el ancho de banda de memoria insuficiente de las interfaces. Wave en combinación con MIPS va a resolver uno y el otro problema. En los productos nuevos, no el procesador usará el acelerador como coprocesador, sino que trabajarán juntos.

Para esto, los núcleos MIPS se modificarán para crear eventualmente una plataforma de hardware estándar para IA. La ventaja de los núcleos MIPS I6400 / I6500 (Samurai / Daimio) y MIPS I7200 (con licencia de MediaTek) es multihilo. ARM no tiene subprocesos múltiples. Así es como se ve la tubería multiproceso en el núcleo MIPS I6400:



Y ahora la pregunta es para los comentaristas más expertos: ¿cuál crees que es la ventaja de los subprocesos múltiples para una combinación de CPU y acelerador de hardware? En particular, el acelerador de Wave, que es una variante de la llamada CGRA - matriz reconfigurable de grano grueso - matrices reconfigurables de grano grueso.

Si está familiarizado con FPGA (Field Programmable Gate Array) / FPGA (Programmable Logic Integrated Circuits), entonces la idea de CGRA es algo similar, pero no funcionan con bits individuales, sino con buses completos de 8-64 bits y en cada celda hay ALU, y para varias celdas, un coprocesador aritmético. Así es como se ve toda la jerarquía:



Y aquí hay una célula reconfigurable. Ella tiene un pequeño búfer con instrucciones que se parecen a los comandos simples de los microcontroladores de batería de 8 bits, como 6502, que estaba en las primeras computadoras Apple. Al mismo tiempo, los procesadores en la antigua Apple funcionaban a una frecuencia de un par de megahercios, y las células en CGRA funcionan a una frecuencia de varios gigahercios. Además, solo había un procesador en Apple, pero hay 16 mil de estas células:



El cristal en Wave es claramente enorme, por lo que debe usar circuitos localmente sincrónicos con una señal de reloj para cada grupo de celdas. Pero el mayor problema no es el hardware, sino el software. El gráfico para calcular la cuadrícula debe estar disperso en este grupo de dispositivos con conocimiento exacto en qué ciclo se calculará. Esto se llama programación estática. Por lo tanto, Wave contrató a un grupo de compiladores, incluido el famoso bisonte, Stephen Johnson, quien estuvo en los orígenes con Kernigan y Richie. Esto es lo que Dennis Ritchie escribió sobre Stephen Johnson:
En la década de 1980, C rápidamente ganó popularidad y los compiladores estuvieron disponibles en casi todas las máquinas y sistemas operativos; en particular, se ha vuelto popular como lenguaje de programación para computadoras personales, tanto para desarrolladores de software comercial para estas máquinas como para usuarios comunes que están interesados ​​en la programación. A principios de la década, casi todos los compiladores se basaban en el pcc de Johnson; para 1985, ya había muchos compiladores creados por desarrolladores independientes.
Cuando tenía 18 años (en 1988) y estudiaba en MIPT, Stephen Johnson era mi Dios. Participé en el desarrollo de dos compiladores basados ​​en su compilador portátil C. Un compilador fue para Electronics SS LSI, la Cruz Roja, el equivalente soviético de la supercomputadora vectorial Cray-1. El segundo compilador fue para Orbit 20-700, una computadora integrada en los cazas MiG-29 soviéticos y otros de principios de los años ochenta.

Así que solo tuve que tomar una foto con Stephen Johnson. Me contó sobre otras herramientas que creó tanto para Unix como para la automatización del diseño, la creación de perfiles automática, etc.



Y, por supuesto, Dado Banatao fue fotografiado con un inversor en todo este negocio. Érase una vez, Dado Banatao creó el conjunto de chips para el primer garabato. Él depuró a los conductores con Ballmer. "A veces Bill Gates entraba en la habitación, lo que nos molestaba", dice Dado Banatao. Ahora, según Internet, tiene cinco mil millones de dólares. Es el filipino de alta tecnología más famoso, crea un centro de inteligencia artificial y dirige otros programas educativos en su tierra natal.



Dado Banatao hizo la mayor cantidad de dinero en Marvell. Aquí está su oficina en Santa Clara al sol de la tarde:



Wave emplea a muchas personas que solían trabajar en MIPS. Y algunos de los MIPS estaban en Silicon Graphics, ya que MIPS era parte de Silicon Graphics en la década de 1990. En aquellos días, los procesadores MIPS estaban en estaciones gráficas que se usaban en Hollywood para rodar las primeras películas gráficas realistas como Jurassic Park. Estas estaciones gráficas junto con la niña siberiana Irina en el Computer History Museum en Mountain View, California:



Al final de la fiesta de hoy, en honor al anuncio oficial de mañana y las publicaciones de prensa de ayer, se llevaron a cabo pasteles y bebieron champán:



Mañana habrá mucho trabajo, desde Verilog RTL (mis responsabilidades directas) hasta discutir arquitectura, aplicaciones e incluso hablar con científicos de datos (se sienten de otro Universo, además, esto es mutuo tanto con los ingenieros electrónicos como con los compiladores).

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


All Articles