Diseñador | |
---|---|
Introducido | 2015 [1] |
Tipo | Red neuronal Aprendizaje automático |
La Unidad de Procesamiento Tensor ( TPU ) es un circuito integrado específico de la aplicación (ASIC) acelerador de IA desarrollado por Google para el aprendizaje automático de redes neuronales , utilizando el software TensorFlow de Google . [2] Google comenzó a utilizar TPU internamente en 2015, y en 2018 las puso a disposición de terceros , tanto como parte de su infraestructura en la nube como ofreciendo una versión más pequeña del chip para la venta.
En comparación con una unidad de procesamiento de gráficos , las TPU están diseñadas para un gran volumen de computación de baja precisión (por ejemplo, tan solo 8 bits de precisión) [3] con más operaciones de entrada/salida por julio , sin hardware para rasterización/ mapeo de texturas . [4] Los ASIC de TPU están montados en un conjunto 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 . [5]
Los distintos tipos de procesadores son adecuados para distintos tipos de modelos de aprendizaje automático. Las TPU son adecuadas para las CNN , mientras que las GPU tienen ventajas para algunas redes neuronales completamente conectadas y las CPU pueden tener ventajas para las RNN . [6]
La unidad de procesamiento tensorial 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. [5] [4] 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 redes neuronales . [7] Sin embargo, a partir de 2017 Google todavía usaba CPU y GPU para otros tipos de aprendizaje automático . [5] 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". [8] Google ha dicho que se utilizaron en la serie AlphaGo versus Lee Sedol de juegos de Go de humano contra máquina , [4] así como en el sistema AlphaZero , que produjo programas para jugar ajedrez , shogi y Go a partir de las reglas del juego únicamente y pasó a vencer a los programas líderes en esos juegos. [9] 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. [5] También se utiliza en RankBrain que Google utiliza para proporcionar resultados de búsqueda. [10]
Google proporciona a terceros acceso a TPU a través de su servicio Cloud TPU como parte de Google Cloud Platform [11] y a través de sus servicios basados en notebooks Kaggle y Colaboratory . [12] [13]
TPUv1 | TPUv2 | TPUv3 | TPUv4 [15] [17] | TPUv5e [18] | TPUv5p [19] [20] | Trilio [21] | |
---|---|---|---|---|---|---|---|
Fecha de introducción | 2015 | 2017 | 2018 | 2021 | 2023 | 2023 | 2024 |
Nodo de proceso | 28 nm | 16 nm | 16 nm | 7 nm | No declarado | No declarado | |
Tamaño de la matriz (mm 2 ) | 331 | < 625 | < 700 | < 400 | 300-350 | No declarado | |
Memoria en chip (MiB) | 28 | 32 | 32 | 32 | 48 | 112 | |
Velocidad de reloj (MHz) | 700 | 700 | 940 | 1050 | No declarado | 1750 | |
Memoria | 8 GB DDR3 | 16 GB de capacidad de carga | 32 GB de capacidad de carga | 32 GB de capacidad de carga | 16 GB de memoria flash | 95 GB de memoria flash | 32 GB ? |
Ancho de banda de memoria | 34 GB/s | 600 GB/s | 900 GB/s | 1200 GB/s | 819 GB/s | 2765 GB/s | ~1,6 TB/seg ? |
Potencia térmica (W) | 75 | 280 | 220 | 170 | No listado | No listado | |
TOPS (Teraoperaciones por segundo) | 23 | 45 | 123 | 275 | 197 (bf16) 393 (int8) | 459 (bf16) 918 (int8) | |
TOPS/MUJER | 0,31 | 0,16 | 0,56 | 1.62 | No listado | No listado |
El 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 que toman los resultados de una matriz sistólica de 256 × 256 de multiplicadores de 8 bits . [22] Dentro del paquete TPU hay 8 GiB de SDRAM DDR3 de 2133 MHz de doble canal que ofrece 34 GB/s de ancho de banda. [16] Las instrucciones transfieren datos hacia o desde el host, realizan multiplicaciones o convoluciones de matrices y aplican funciones de activación . [22]
La segunda generación de TPU se anunció en mayo de 2017. [23] Google declaró que el diseño de TPU de primera generación estaba limitado por el ancho de banda de la memoria y que el uso de 16 GB de memoria de alto ancho de banda en el diseño de segunda generación aumentó el ancho de banda a 600 GB/s y el rendimiento a 45 teraFLOPS . [ 16] Luego, las TPU se organizan en módulos de cuatro chips con un rendimiento de 180 teraFLOPS. [23] Luego, 64 de estos módulos se ensamblan en módulos de 256 chips con 11,5 petaFLOPS de rendimiento. [23] En particular, mientras que las TPU de primera generación estaban limitadas a números enteros, las TPU de segunda generación también pueden calcular en punto flotante , introduciendo el formato bfloat16 inventado por Google Brain . 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. [24]
La TPU de tercera generación se anunció el 8 de mayo de 2018. [25] Google anunció que los procesadores en sí son dos veces más potentes que las TPU de segunda generación y se implementarían en módulos con cuatro veces más chips que la generación anterior. [26] [27] 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 la TPU de segunda generación.
El 18 de mayo de 2021, el director ejecutivo de Google, Sundar Pichai, habló sobre las unidades de procesamiento tensor TPU v4 durante su discurso de apertura en la conferencia virtual Google I/O. La TPU v4 mejoró el rendimiento en más del doble con respecto a los chips TPU v3. Pichai dijo: "Un solo módulo v4 contiene 4096 chips v4, y cada módulo tiene 10 veces el ancho de banda de interconexión por chip a escala, en comparación con cualquier otra tecnología de red". [28] Un artículo de Google de abril de 2023 afirma que la TPU v4 es entre un 5 y un 87 % más rápida que una Nvidia A100 en los puntos de referencia de aprendizaje automático . [29]
También existe una versión de "inferencia", llamada v4i, [30] que no requiere refrigeración líquida . [31]
En 2021, Google reveló que el diseño físico del TPU v5 se está diseñando con la ayuda de una nueva aplicación de aprendizaje de refuerzo profundo . [32] Google afirma que el TPU v5 es casi el doble de rápido que el TPU v4, [33] y basándose en eso y en el rendimiento relativo del TPU v4 sobre el A100, algunos especulan que el TPU v5 es tan rápido o más rápido que un H100 . [34]
De manera similar a que el v4i es una versión más liviana del v4, la quinta generación tiene una versión "rentable" [35] llamada v5e. [18] En diciembre de 2023, Google anunció el TPU v5p, que se afirma que es competitivo con el H100. [36]
En mayo de 2024, en la conferencia Google I/O , Google anunció la TPU v6, que estará disponible a finales de 2024. Google afirmó que el rendimiento se ha multiplicado por 4,7 en comparación con la TPU v5e, [37] gracias a unidades de multiplicación de matrices más grandes y una mayor velocidad de reloj. La capacidad y el ancho de banda de la memoria de alto ancho de banda (HBM) también se han duplicado. Un módulo puede contener hasta 256 unidades Trillium. [38]
En julio de 2018, Google anunció el Edge TPU. El Edge TPU es el chip ASIC diseñado específicamente por Google para ejecutar modelos de aprendizaje automático (ML) para la informática de borde , lo que significa que es mucho más pequeño y consume mucha menos energía en comparación con los TPU alojados en los centros de datos de Google (también conocidos como Cloud TPU [39] ). En enero de 2019, Google puso el Edge TPU a disposición de los desarrolladores con una línea de productos bajo la marca Coral. El Edge TPU es capaz de realizar 4 billones de operaciones por segundo con 2 W de potencia eléctrica. [40]
La oferta de productos incluye 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 . Tanto la SBC Coral Dev Board como la Coral SoM ejecutan el sistema operativo Mendel Linux, un derivado de Debian . [41] [42] 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 (incluido Raspberry Pi ).
El entorno de ejecución de aprendizaje automático utilizado para ejecutar modelos en Edge TPU se basa en TensorFlow Lite . [43] Edge TPU solo es capaz de acelerar operaciones de pase hacia adelante, lo que significa que es principalmente útil para realizar inferencias (aunque es posible realizar aprendizaje de transferencia ligero en Edge TPU [44] ). 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 utilizando la técnica de entrenamiento con reconocimiento de cuantificación de TensorFlow o, desde fines de 2019, también es posible usar cuantificación posterior al entrenamiento.
El 12 de noviembre de 2019, Asus anunció un par de computadoras de placa única (SBC) que incorporan Edge TPU. Las placas Asus Tinker Edge T y Tinker Edge R están diseñadas para IoT e inteligencia artificial de borde . Las SBC son oficialmente compatibles con los sistemas operativos Android y Debian . [45] [46] ASUS también ha demostrado una mini PC llamada Asus PN60T que incorpora Edge TPU. [47]
El 2 de enero de 2020, Google anunció el módulo acelerador Coral y la Coral Dev Board Mini, que se presentarán en el CES 2020 a finales del mismo mes. El módulo acelerador Coral es un módulo multichip que incluye las interfaces Edge TPU, PCIe y USB para una integración más sencilla. La Coral Dev Board Mini es una SBC más pequeña que incluye el módulo acelerador Coral y el SoC MediaTek 8167s . [48] [49]
El 15 de octubre de 2019, Google anunció el teléfono inteligente Pixel 4 , que contiene un Edge TPU llamado Pixel Neural Core . Google lo describe como "personalizado para cumplir con los requisitos de las funciones clave de la cámara en Pixel 4", utilizando una búsqueda de red neuronal que sacrifica algo de precisión a favor de minimizar la latencia y el uso de energía. [50]
Google siguió el ejemplo del Pixel Neural Core al integrar una TPU Edge en un sistema en chip personalizado llamado Google Tensor , que se lanzó en 2021 con la línea de teléfonos inteligentes Pixel 6. [51] El SoC Google Tensor demostró "ventajas de rendimiento extremadamente grandes sobre la competencia" en puntos de referencia centrados en el aprendizaje automático; aunque el consumo de energía instantáneo también fue relativamente alto, el rendimiento mejorado significó que se consumió menos energía debido a períodos más cortos que requerían un rendimiento máximo. [52]
En 2019, Singular Computing, fundada en 2009 por Joseph Bates, profesor visitante en el MIT , [53] presentó una demanda contra Google alegando infracción de patentes en chips de TPU. [54] Para 2020, Google había logrado reducir con éxito el número de reclamaciones que el tribunal consideraría a solo dos: la reclamación 53 de US 8407273 presentada en 2012 y la reclamación 7 de US 9218156 presentada en 2013, ambas reclaman un rango dinámico de 10 -6 a 10 6 para números de punto flotante, que el estándar float16 no puede hacer (sin recurrir a números subnormales ) ya que solo tiene cinco bits para el exponente. En una presentación judicial de 2023, Singular Computing mencionó específicamente el uso de bfloat16 por parte de Google , ya que excede el rango dinámico de float16 . [55] Singular afirma que los formatos de punto flotante no estándar no eran obvios en 2009, pero Google replica que el formato VFLOAT [56] , con un número configurable de bits de exponente, existía como técnica anterior en 2002. [57] Para enero de 2024, las demandas posteriores de Singular habían elevado el número de patentes en litigio a ocho. Hacia el final del juicio más tarde ese mes, Google aceptó un acuerdo con términos no revelados. [58] [59]