El procesador TensorFlow dedicado de Google, o TPU, aplasta a Intel, Nvidia en cargas de trabajo de inferencia

Característica de TPU

Hace varios años, Google comenzó a trabajar en su propio software personalizado para cargas de trabajo de aprendizaje automático e inteligencia artificial, denominado TensorFlow. El año pasado, la compañía anunció que había diseñado su propia unidad de procesamiento tensorial (TPU), un ASIC diseñado para un alto rendimiento de aritmética de baja precisión. Ahora, Google ha publicado algunos datos de rendimiento para su TPU y cómo se compara con las CPU Haswell de Intel y la GPU dual del centro de datos K80 (basada en Kepler) de Nvidia.

Antes de sumergirnos en los datos, debemos hablar sobre las cargas de trabajo que está discutiendo Google. Todas las comparativas de Google miden el rendimiento de la inferencia en comparación con la red neuronal inicial formación. Nvidia tiene un gráfico que resume las diferencias entre los dos:

ai_difference_between_deep_learning_training_inference

Click para agrandar.



Enseñar a una red neuronal qué reconocer y cómo reconocerlo se conoce como entrenamiento, y estas cargas de trabajo aún se ejecutan normalmente en CPU o GPU. La inferencia se refiere a la capacidad de la red neuronal para aplicar lo que aprendió en el entrenamiento. Google deja en claro que solo le interesan las operaciones de baja latencia y que ha impuesto criterios estrictos de capacidad de respuesta en los puntos de referencia que analizaremos a continuación.

Diseño de TPU de Google, puntos de referencia

La primera parte del artículo de Google analiza los diversos tipos de redes neuronales profundas que implementa, los puntos de referencia específicos que utiliza y ofrece un diagrama del diseño físico de la TPU, que se muestra a continuación. La TPU está diseñada específicamente para cargas de trabajo de números enteros de 8 bits y prioriza constantemente una latencia baja sobre el rendimiento sin procesar (tanto las CPU como las GPU tienden a priorizar el rendimiento sobre la latencia, en particular las GPU).

TensorFlow

Click para agrandar

Googleescribe (PDF): “En lugar de integrarse estrechamente con una CPU, para reducir las posibilidades de retrasar la implementación, la TPU se diseñó para ser un coprocesador en el bus de E / S PCIe, lo que le permite conectarse a servidores existentes como lo hace una GPU . Además, para simplificar el diseño y la depuración de hardware, el servidor host envía instrucciones de TPU para que las ejecute en lugar de buscarlas él mismo. Por lo tanto, la TPU tiene un espíritu más parecido a un coprocesador FPU (unidad de punto flotante) que a una GPU '.

Tablero de TPU

Click para agrandar

Cada TPU también tiene un grupo de DRAM de 8GiB fuera del chip, que Google llama memoria de peso, mientras que los resultados intermedios se mantienen en un grupo de 24MiB de memoria en el chip (que es el búfer unificado en el diagrama anterior). La TPU tiene una canalización de cuatro etapas y ejecuta instrucciones CISC, con algunas instrucciones que requieren miles de ciclos de reloj para ejecutarse en contraposición a la canalización RISC típica de un ciclo de reloj por etapa de canalización. La siguiente tabla muestra cómo se comparan los modelos E5-2699v3 (Haswell), Nvidia K80 y TPU en varias métricas.

Mesa de TPU

Click para agrandar

Antes de alcanzar los resultados de referencia, hay algunas cosas que debemos tener en cuenta. Primero, el modo Turbo y GPU Boost se desactivaron para las GPU de Haswell y Nvidia, no para inclinar artificialmente la puntuación a favor de la TPU, sino porque los centros de datos de Google priorizan el empaquetado de hardware denso sobre el rendimiento sin procesar. Las velocidades de reloj turbo más altas para el Xeon v3 dependen de no usar AVX, que todas las redes neuronales de Google tienden a usar. En cuanto al K80 de Nvidia, el servidor de prueba en cuestión implementó cuatro tarjetas K80 con dos GPU por tarjeta, para un total de ocho núcleos de GPU. Empaquetada tan bien, la única forma de aprovechar el reloj de impulso de la GPU sin causar un sobrecalentamiento habría sido quitar dos de las tarjetas K80. Dado que el aumento de la frecuencia del reloj no es tan potente como duplicar la cantidad total de GPU en el servidor, Google deja el impulso desactivado en estas configuraciones de servidor.

Todas las cifras de referencia de Google utilizan el modelo de rendimiento de la línea del techo. La ventaja de este modelo es que crea una imagen intuitiva del rendimiento general. La línea del techo plano representa el rendimiento máximo teórico, mientras que los diversos puntos de datos muestran resultados del mundo real.

En este caso, el eje Y es operaciones enteras por segundo, mientras que el eje X 'Intensidad operativa' corresponde a operaciones enteras por byte de pesos leer (énfasis de Google). La brecha entre el rendimiento observado de una aplicación y la curva directamente encima de ella muestra cuánto rendimiento adicional se podría obtener si el punto de referencia se optimizara mejor para la arquitectura en cuestión, mientras que los puntos de datos en la parte inclinada de la línea del techo indican que el punto de referencia se está ejecutando limitaciones del ancho de banda de la memoria. La siguiente presentación de diapositivas muestra los resultados de Google en varios puntos de referencia para sus pruebas de CPU, GPU y TPU. Como siempre, se puede hacer clic en cada diapositiva para abrir una imagen más grande en una nueva ventana.

Haswell-TPU K80-TPU TPU-TPU Resultados combinados-TPU

La TPU de Google no es solo un motor de alto rendimiento; también ofrece un rendimiento sustancialmente mejorado por vatio, tanto en la TPU original como en las variantes mejoradas que Google ha modelado (TPU ').

Poder relativo

Click para agrandar

El principal factor limitante entre la TPU de Google y un mayor rendimiento es el ancho de banda de la memoria. Los modelos de Google muestran que el rendimiento de TPU mejora 3 veces si el ancho de banda de la memoria se incrementa 4 veces con respecto a los diseños actuales. Ningún otro conjunto de mejoras, incluidas las mejoras en la frecuencia del reloj, los acumuladores más grandes o una combinación de múltiples factores, tiene un gran impacto en el rendimiento.

La última sección del artículo de Google está dedicada a disipar varias falacias y corregir malentendidos, algunos de los cuales se relacionan con la elección de la GPU K80. Vale la pena citar una sección:

Falacia: los resultados de CPU y GPU serían comparables a los de TPU si los usáramos de manera más eficiente o en comparación con las versiones más nuevas.

Originalmente teníamos resultados de 8 bits para solo un DNN en la CPU, debido al trabajo significativo para usar el soporte de enteros AVX2 de manera eficiente. El beneficio fue ~ 3.5X. Era menos confuso (y espacio) presentar todos los resultados de la CPU en punto flotante, en lugar de tener una excepción, con su propia línea de techo. Si todos los DNN tuvieran una aceleración similar, la relación rendimiento / vatios bajaría de 41-83X a 12-24X. La nueva GPU de centro de datos P40 de 16 nm, 1,5 GHz y 250 W puede realizar operaciones de 47 Tera de 8 bits por segundo, pero no estaba disponible a principios de 2015, por lo que no es actual con nuestras tres plataformas. Tampoco podemos saber la fracción del pico P40 entregado dentro de nuestros límites de tiempo rígidos. Si comparamos chips más nuevos, la Sección 7 muestra que podríamos triplicar el rendimiento del TPU de 28 nm, 0,7 GHz y 40 W con solo usar la memoria GDDR5 del K80 (a un costo de 10 W adicionales).

Este tipo de anuncio no es el tipo de cosas que Nvidia va a estar feliz de escuchar. Para ser claros, los resultados de TPU de Google en la actualidad son aplicables a cargas de trabajo de inferencia, no a la tarea inicial de entrenar la red neuronal, que todavía se hace en las GPU. Pero, con respecto a Nvidia y AMD, también hemos visto este tipo de ciclo desarrollarse antes. Érase una vez, las CPU fueron los reyes indiscutibles de la minería de criptomonedas. Luego, a medida que aumentaba la dificultad, las GPU se volvieron dominantes, gracias a tasas de hash mucho más altas. Sin embargo, a largo plazo, los ASIC personalizados se apoderaron del mercado.

Tanto AMD como Nvidia agregaron recientemente (Nvidia) o anunciaron (AMD) soporte para operaciones de 8 bits para mejorar el rendimiento total de la GPU en el aprendizaje profundo y las cargas de trabajo de IA, pero se necesitarán mejoras significativas además de estos pasos para abordar la ventaja que tendrían los ASIC. si comienzan a moverse hacia estos mercados. Eso no quiere decir que esperemos que los diseños ASIC personalizados sean los dueños del mercado; Google y Microsoft pueden permitirse construir su propio hardware personalizado, pero la mayoría de los clientes no tendrán los fondos o la experiencia para hacerlo.

Copyright © Todos Los Derechos Reservados | 2007es.com