La Unidad de procesamiento de tensor ( TPU ) es un circuito integrado específico de la aplicación (ASIC) del acelerador de inteligencia artificial desarrollado por Google específicamente para el aprendizaje automático de redes neuronales , en particular utilizando el software TensorFlow de Google . [1] Google comenzó a usar TPU internamente en 2015, y en 2018 las puso a disposición para uso de terceros, tanto como parte de su infraestructura en la nube como al ofrecer a la venta una versión más pequeña del chip.
Diseñador | |
---|---|
Introducido | Mayo de 2016 |
Tipo | Aprendizaje automático de redes neuronales |
Descripción general
La unidad de procesamiento de tensor se anunció en mayo de 2016 en Google I / O , cuando la compañía dijo que la TPU ya se había utilizado dentro de sus centros de datos durante más de un año. [2] [3] El chip ha sido diseñado específicamente para el marco TensorFlow de Google , una biblioteca matemática simbólica que se utiliza para aplicaciones de aprendizaje automático como las redes neuronales . [4] Sin embargo, a partir de 2017, Google todavía usaba CPU y GPU para otros tipos de aprendizaje automático . [2] También están apareciendo otros diseños de aceleradores de IA de otros proveedores y están dirigidos a los mercados integrados y robóticos .
Las TPU de Google son propietarias. Algunos modelos están disponibles comercialmente, y el 12 de febrero de 2018, The New York Times informó que Google "permitiría a otras empresas comprar acceso a esos chips a través de su servicio de computación en la nube". [5] Google ha dicho que se utilizaron en la serie AlphaGo versus Lee Sedol de juegos Go hombre-máquina , [3] así como en el sistema AlphaZero , que produjo programas de juego de Ajedrez , Shogi y Go a partir de las reglas del juego únicamente y pasó a vencer a los programas líderes en esos juegos. [6] Google también ha utilizado TPU para el procesamiento de texto de Google Street View y pudo encontrar todo el texto en la base de datos de Street View en menos de cinco días. En Google Photos , una TPU individual puede procesar más de 100 millones de fotos al día [ cita requerida ] . También se usa en RankBrain, que Google usa para proporcionar resultados de búsqueda. [7]
En comparación con una unidad de procesamiento de gráficos , está diseñada para un alto volumen de cálculo de baja precisión (por ejemplo, precisión de tan solo 8 bits ) [8] con más operaciones de entrada / salida por julio , y carece de hardware para rasterización / mapeo de texturas . [3] Los ASIC de TPU están montados en un ensamblaje de disipador de calor, que puede caber en una ranura de disco duro dentro de un bastidor de centro de datos , según Norman Jouppi . [2] Los diferentes tipos de procesadores son adecuados para diferentes tipos de modelos de aprendizaje automático, las TPU son adecuadas para las CNN, mientras que las GPU tienen beneficios para algunas redes neuronales completamente conectadas, y las CPU pueden tener ventajas para las RNN . [9]
Google proporciona acceso de terceros a las TPU a través de su servicio Cloud TPU como parte de Google Cloud Platform [10] y a través de sus servicios basados en portátiles Kaggle y Colaboratory . [11] [12]
Productos
TPUv1 | TPUv2 | TPUv3 | TPUv4 [13] | Borde v1 | |
---|---|---|---|---|---|
Fecha de presentación | 2016 | 2017 | 2018 | 2021 | 2018 |
Nodo de proceso | 28 millas náuticas | 20 nm? | 12 nm? | ? | |
Tamaño de matriz (mm2) | 331 | ? | ? | ? | |
En memoria de chip (MiB) | 28 | ? | ? | ? | |
Velocidad de reloj (MHz) | 700 | ? | ? | ? | |
Memoria (GB) | DDR3 de 8 GB | HBM de 16 GB | HBM de 32 GB | ? | |
TDP (W) | 40 | 200 | 250 | ? | 2 |
TOPS | 23 | 45 | 90 | ? | 4 |
TPU de primera generación
La TPU de primera generación es un motor de multiplicación de matrices de 8 bits , impulsado con instrucciones CISC por el procesador host a través de un bus PCIe 3.0 . Se fabrica en un proceso de 28 nm con un tamaño de matriz ≤ 331 mm 2 . La velocidad de reloj es de 700 MHz y tiene una potencia de diseño térmico de 28-40 W . Tiene 28 MiB de memoria en chip y 4 MiB de acumuladores de 32 bits tomando los resultados de una matriz sistólica de 256 × 256 de multiplicadores de 8 bits . [14] Dentro del paquete de TPU hay 8 GiB de SDRAM DDR3 de doble canal a 2133 MHz que ofrece 34 GB / s de ancho de banda. [15] Las instrucciones transfieren datos hacia o desde el host, realizan multiplicaciones o convoluciones de matrices y aplican funciones de activación . [14]
TPU de segunda generación
La TPU de segunda generación se anunció en mayo de 2017. [16] Google declaró que el diseño de la TPU de primera generación estaba limitado por el ancho de banda de la memoria y el uso de 16 GB de memoria de gran ancho de banda en el diseño de segunda generación aumentó el ancho de banda a 600 GB / sy el rendimiento a 45 tera FLOPS . [15] Las TPU se organizan luego en módulos de cuatro chips con un rendimiento de 180 teraFLOPS. [16] Luego, 64 de estos módulos se ensamblan en módulos de 256 chips con 11,5 petaFLOPS de rendimiento. [16] En particular, mientras que las TPU de primera generación se limitaron a números enteros, las TPU de segunda generación también pueden calcular en punto flotante . Esto hace que las TPU de segunda generación sean útiles tanto para el entrenamiento como para la inferencia de modelos de aprendizaje automático. Google ha declarado que estas TPU de segunda generación estarán disponibles en Google Compute Engine para su uso en aplicaciones TensorFlow. [17]
TPU de tercera generación
La TPU de tercera generación se anunció el 8 de mayo de 2018. [18] Google anunció que los procesadores en sí son dos veces más potentes que las TPU de segunda generación y se implementarán en pods con cuatro veces más chips que la generación anterior. [19] [20] Esto da como resultado un aumento de 8 veces en el rendimiento por módulo (con hasta 1024 chips por módulo) en comparación con la implementación de TPU de segunda generación.
TPU de cuarta generación
TPU de borde
En julio de 2018, Google anunció Edge TPU. Edge TPU es un chip ASIC de Google diseñado específicamente para ejecutar modelos de aprendizaje automático (ML) para la computación perimetral , lo que significa que es mucho más pequeño y consume mucha menos energía en comparación con las TPU alojadas en los centros de datos de Google (también conocidas como Cloud TPU [21]). ). En enero de 2019, Google puso Edge TPU a disposición de los desarrolladores con una línea de productos bajo la marca Coral . Edge TPU es capaz de realizar 4 billones de operaciones por segundo mientras usa 2W. [22]
Las ofertas de productos incluyen una computadora de placa única (SBC), un sistema en módulo (SoM), un accesorio USB , una tarjeta mini PCI-e y una tarjeta M.2 . El SBC Junta Coral y Coral Dev SoM tanto ejecutar el sistema operativo Linux Mendel - un derivado de Debian . [23] [24] Los productos USB, PCI-e y M.2 funcionan como complementos de los sistemas informáticos existentes y admiten sistemas Linux basados en Debian en hosts x86-64 y ARM64 (incluida Raspberry Pi ).
El tiempo de ejecución de aprendizaje automático que se usa para ejecutar modelos en Edge TPU se basa en TensorFlow Lite . [25] Edge TPU solo es capaz de acelerar las operaciones de pase hacia adelante, lo que significa que es principalmente útil para realizar inferencias (aunque es posible realizar un aprendizaje de transferencia ligero en Edge TPU [26] ). Edge TPU también solo admite matemáticas de 8 bits, lo que significa que para que una red sea compatible con Edge TPU, debe entrenarse con la técnica de entrenamiento con reconocimiento de cuantización de TensorFlow, o desde finales de 2019 también es posible usar post- cuantificación del entrenamiento.
El 12 de noviembre de 2019, Asus anunció un par de computadoras de placa única (SBC) con Edge TPU. El Asus Tinker Tinker borde T y R Edge Junta diseñado para la IO y borde AI . Los SBC son compatibles oficialmente con los sistemas operativos Android y Debian . [27] [28] ASUS también ha demostrado una mini PC llamada Asus PN60T con Edge TPU. [29]
El 2 de enero de 2020, Google anunció el Coral Accelerator Module y el Coral Dev Board Mini, que se demostrarán en CES 2020 más adelante el mismo mes. El Coral Accelerator Module es un módulo de varios chips con las interfaces Edge TPU, PCIe y USB para una integración más sencilla. El Coral Dev Board Mini es un SBC más pequeño que incluye el Módulo Acelerador Coral y el SoC MediaTek 8167s . [30] [31]
Pixel Neural Core
El 15 de octubre de 2019, Google anunció el teléfono inteligente Pixel 4 con Pixel Neural Core , que contiene una instanciación de la arquitectura Edge TPU. [32]
Ver también
- Unidad de procesamiento de la visión un dispositivo similar especializado para el procesamiento de la visión.
- TrueNorth es un dispositivo similar que simula neuronas en punta en lugar de tensores de baja precisión.
- Unidad de procesamiento neuronal
- Computadora cognitiva
- Tensor Core , una arquitectura similar propuesta por Nvidia
Referencias
- ^ "Unidades de procesamiento de tensor de nube (TPU)" . Google Cloud . Consultado el 20 de julio de 2020 .
- ^ a b c "La Unidad de Procesamiento de Tensores de Google explicó: así es como se ve el futuro de la informática" . TechRadar . Consultado el 19 de enero de 2017 .
- ^ a b c Jouppi, Norm (18 de mayo de 2016). "Google sobrealimenta las tareas de aprendizaje automático con un chip personalizado de TPU" . Blog de Google Cloud Platform . Consultado el 22 de enero de 2017 .
- ^ "TensorFlow: aprendizaje automático de código abierto" "Es un software de aprendizaje automático que se utiliza para varios tipos de tareas de comprensión del lenguaje y la percepción" - Jeffrey Dean, minuto 0:47 / 2:17 del clip de Youtube
- ^ "Google pone sus chips especiales de inteligencia artificial a disposición de otros" . The New York Times . Consultado el 12 de febrero de 2018 .
- ^ McGourty, Colin (6 de diciembre de 2017). "AlphaZero de DeepMind aplasta el ajedrez" . chess24.com .
- ^ "La unidad de procesamiento de tensor de Google podría hacer avanzar la ley de Moore 7 años en el futuro" . PCWorld . Consultado el 19 de enero de 2017 .
- ^ Armasu, Lucian (19 de mayo de 2016). "Revelación de Big Chip de Google para el aprendizaje automático: unidad de procesamiento de tensor con 10 veces mejor eficiencia (actualizado)" . Hardware de Tom . Consultado el 26 de junio de 2016 .
- ^ Wang, Yu Emma; Wei, Gu-Yeon; Brooks, David (1 de julio de 2019). "Benchmarking TPU, GPU y plataformas de CPU para Deep Learning". arXiv : 1907.10701 [ cs.LG ].
- ^ "Preguntas frecuentes | Cloud TPU" . Google Cloud . Consultado el 14 de enero de 2021 .
- ^ "Google Colaboratory" . colab.research.google.com . Consultado el 15 de mayo de 2021 .
- ^ "Usar TPU | TensorFlow Core" . TensorFlow . Consultado el 15 de mayo de 2021 .
- ^ Estén atentos, pronto habrá más información sobre TPU v4 , consultado el 6 de agosto de 2020.
- ^ a b Jouppi, Norman P .; Joven, Cliff; Patil, Nishant; Patterson, David; Agrawal, Gaurav; Bajwa, Raminder; Bates, Sarah; Bhatia, Suresh; Boden, Nan; Borchers, Al; Boyle, Rick; Cantin, Pierre-luc; Chao, Clifford; Clark, Chris; Coriell, Jeremy; Daley, Mike; Dau, Matt; Dean, Jeffrey; Gelb, Ben; Ghaemmaghami, Tara Vazir; Gottipati, Rajendra; Gulland, William; Hagmann, Robert; Ho, C. Richard; Hogberg, Doug; Hu, John; Hundt, Robert; Herido, Dan; Ibarz, Julián; Jaffey, Aaron; Jaworski, Alek; Kaplan, Alexander; Khaitan, Harshit; Koch, Andy; Kumar, Naveen; Lacy, Steve; Laudon, James; Law, James; Le, Diemthu; Leary, Chris; Liu, Zhuyuan; Lucke, Kyle; Lundin, Alan; MacKean, Gordon; Mayor, Adriana; Mahony, Maire; Miller, Kieran; Nagarajan, Rahul; Narayanaswami, Ravi; Ni, Ray; Nix, Kathy; Norrie, Thomas; Omernick, Mark; Penukonda, Narayana; Phelps, Andy; Ross, Jonathan; Ross, Matt; Salek, Amir; Samadiani, Emad; Severn, Chris; Sizikov, Gregory; Snelham, Matthew; Souter, Jed; Steinberg, Dan; Swing, Andy; Tan, Mercedes; Thorson, Gregory; Tian, Bo; Toma, Horia; Tuttle, Erick; Vasudevan, Vijay; Walter, Richard; Wang, Walter; Wilcox, Eric; Yoon, Doe Hyun (26 de junio de 2017). Análisis de rendimiento en el centro de datos de una Tensor Processing Unit ™ . Toronto Canada. arXiv : 1704.04760 .
- ^ a b Kennedy, Patrick (22 de agosto de 2017). "Estudio de caso sobre Google TPU y GDDR5 de Hot Chips 29" . Sirva el hogar . Consultado el 23 de agosto de 2017 .
- ^ a b c Bright, Peter (17 de mayo de 2017). "Google trae procesadores de flujo tensorial de 45 teraflops a su nube informática" . Ars Technica . Consultado el 30 de mayo de 2017 .
- ^ Kennedy, Patrick (17 de mayo de 2017). "Detalles de TPU de Google Cloud revelados" . Sirva el hogar . Consultado el 30 de mayo de 2017 .
- ^ Frumusanu, Andre (8 de mayo de 2018). "Blog en vivo de Keynote de apertura de Google I / O" . Consultado el 9 de mayo de 2018 .
- ^ Feldman, Michael (11 de mayo de 2018). "Google ofrece un vistazo del procesador de TPU de tercera generación" . Top 500 . Consultado el 14 de mayo de 2018 .
- ^ Teich, Paul (10 de mayo de 2018). "Desgarrando el coprocesador de AI TPU 3.0 de Google" . La próxima plataforma . Consultado el 14 de mayo de 2018 .
- ^ "Cloud TPU" . Google Cloud . Consultado el 21 de mayo de 2021 .
- ^ "Puntos de referencia de rendimiento de Edge TPU" . Coral . Consultado el 4 de enero de 2020 .
- ^ "Junta de desarrollo" . Coral . Consultado el 21 de mayo de 2021 .
- ^ "Sistema en módulo (SoM)" . Coral . Consultado el 21 de mayo de 2021 .
- ^ "Llevando la inteligencia al borde con Cloud IoT" . Blog de Google . 2018-07-25 . Consultado el 25 de julio de 2018 .
- ^ "Volver a entrenar un modelo de clasificación de imágenes en el dispositivo" . Coral . Consultado el 3 de mayo de 2019 .
- ^ "組 込 み 総 合 技術 展 & IoT 総 合 技術 展「 ET & IoT Technology 2019 」に 出 展 す る こ と を 発 表" . Asus.com (en japonés) . Consultado el 13 de noviembre de 2019 .
- ^ Shilov, Anton. "ASUS y Google se unen para computadoras de tamaño de tarjeta de crédito enfocadas en IA 'Tinker Board'" . Anandtech.com . Consultado el 13 de noviembre de 2019 .
- ^ Aufranc, Jean-Luc (29 de mayo de 2019). "ASUS Tinker Edge T y CR1S-CM-A SBC contará con el procesador Google Coral Edge TPU y NXP i.MX 8M" . Software CNX - Noticias de sistemas integrados . Consultado el 14 de noviembre de 2019 .
- ^ "Nuevos productos Coral para 2020" . Blog de desarrolladores de Google . Consultado el 4 de enero de 2020 .
- ^ "Módulo acelerador" . Coral . Consultado el 4 de enero de 2020 .
- ^ "Presentamos la próxima generación de modelos de visión en el dispositivo: MobileNetV3 y MobileNetEdgeTPU" . Blog de IA de Google . Consultado el 16 de abril de 2020 .
enlaces externos
- Unidades de procesamiento de tensor de nube (TPU) (documentación de Google Cloud)
- Foto del chip y la placa de TPU de Google
- Foto de la placa TPU v2 de Google
- Foto de la placa TPU v3 de Google
- Foto del pod de TPU v2 de Google