La plataforma TensorFlow de Google permite a sus usuarios entrenar una IA proporcionando herramientas y recursos para el aprendizaje automático. Durante mucho tiempo, los ingenieros de IA han utilizado CPU y GPU tradicionales para entrenar la IA. Aunque estos procesadores pueden manejar varios procesos de aprendizaje automático, siguen siendo hardware de uso general que se utiliza para diversas tareas cotidianas.
Para acelerar el entrenamiento de IA, Google desarrolló un Circuito Integrado de Aplicación Específica (ASIC) conocido como Unidad de Procesamiento Tensor (TPU). Pero, ¿qué es una unidad de procesamiento de tensores y cómo aceleran la programación de IA?
¿Qué son las unidades de procesamiento de tensores (TPU)?
Las unidades de procesamiento de tensor son de Google ASIC para aprendizaje automático. Las TPU se utilizan específicamente para el aprendizaje profundo para resolver operaciones complejas de matrices y vectores. Las TPU están optimizadas para resolver operaciones matriciales y vectoriales a velocidades ultra altas, pero deben combinarse con una CPU para dar y ejecutar instrucciones. Las TPU solo se pueden usar con Google
Plataforma TensorFlow o TensorFlow Lite, ya sea a través de la computación en la nube o su versión lite en hardware local.Aplicaciones para TPU
Google ha utilizado TPU desde 2015. También han confirmado el uso de estos nuevos procesadores para el procesamiento de texto de Google Street View, Google Photos y Google Search Results (Rank Brain), como así como para crear una IA conocida como AlphaGo, que ha vencido a los mejores jugadores de Go y el sistema AlphaZero que ganó contra los programas líderes en Chess, Go y Shogi.
Las TPU se pueden usar en varias aplicaciones de aprendizaje profundo, como detección de fraude, visión por computadora, lenguaje natural procesamiento, autos sin conductor, IA vocal, agricultura, asistentes virtuales, comercio de acciones, comercio electrónico y varias redes sociales predicciones
Cuándo usar TPU
Dado que las TPU son hardware altamente especializado para el aprendizaje profundo, pierde muchas otras funciones que normalmente esperaría de un procesador de propósito general como una CPU. Con esto en mente, existen escenarios específicos en los que el uso de TPU producirá el mejor resultado al entrenar la IA.
El mejor momento para usar una TPU es para operaciones en las que los modelos dependen en gran medida de cálculos matriciales, como los sistemas de recomendación para motores de búsqueda. Las TPU también brindan excelentes resultados para modelos en los que la IA analiza cantidades masivas de puntos de datos que demorarán varias semanas o meses en completarse. Los ingenieros de IA usan TPU para instancias sin modelos personalizados de TensorFlow y tienen que empezar desde cero.
Cuándo no usar TPU
Como se indicó anteriormente, la optimización de las TPU hace que este tipo de procesadores solo funcionen en operaciones de carga de trabajo específicas. Por lo tanto, hay casos en los que optar por usar una CPU y una GPU tradicionales producirá resultados más rápidos. Estas instancias incluyen:
- Creación rápida de prototipos con la máxima flexibilidad
- Modelos limitados por los puntos de datos disponibles
- Modelos que son simples y se pueden entrenar rápidamente
- Modelos demasiado onerosos para cambiar
- Modelos que dependen de operaciones personalizadas de TensorFlow escritas en C++
Versiones y especificaciones de TPU
Desde que Google anunció sus TPU, el público se ha actualizado continuamente sobre las últimas versiones de TPU y sus especificaciones. La siguiente es una lista de todas las versiones de TPU con especificaciones:
TPUv1 | TPUv2 | TPUv3 | TPUv4 | bordev1 | |
---|---|---|---|---|---|
Fecha de introducción | 2016 | 2017 | 2018 | 2021 | 2018 |
Nodo de proceso (nm) | 28 | 16 | 16 | 7 | |
Tamaño de matriz (mm²) | 331 | <625 | <700 | <400 | |
Memoria en chip | 28 | 32 | 32 | 144 | |
Velocidad de reloj (MHz) | 700 | 700 | 940 | 1050 | |
Configuración de memoria más pequeña (GB) | 8 DDR3 | 16 HBM | 32 HBM | 32 HBM | |
TDP (vatios) | 75 | 280 | 450 | 175 | 2 |
TOPS (operaciones de tera por segundo) | 23 | 45 | 90 | ? | 4 |
PARTES SUPERIORES/W | 0.3 | 0.16 | 0.2 | ? | 2 |
Como puede ver, las velocidades de reloj de TPU no parecen tan impresionantes, especialmente cuando las computadoras de escritorio modernas de hoy en día pueden tener velocidades de reloj de 3 a 5 veces más rápidas. Pero si observa las dos filas inferiores de la tabla, puede ver que las TPU pueden procesar de 23 a 90 teraoperaciones por segundo con solo 0,16 a 0,3 vatios de potencia. Se estima que las TPU son entre 15 y 30 veces más rápidas que las CPU y GPU modernas cuando se utiliza una interfaz de red neuronal.
Con cada versión lanzada, las TPU más nuevas muestran mejoras y capacidades significativas. Aquí hay algunos puntos destacados para cada versión.
- TPUv1: La primera TPU anunciada públicamente. Diseñado como un motor de multiplicación de matrices de 8 bits y se limita a resolver solo números enteros.
- TPUv2: Dado que los ingenieros notaron que TPUv1 tenía un ancho de banda limitado. Esta versión ahora tiene el doble de ancho de banda de memoria con 16 GB de RAM. Esta versión ahora puede resolver puntos flotantes, lo que la hace útil para el entrenamiento y la inferencia.
- TPUv3: Lanzado en 2018, TPUv3 tiene el doble de procesadores y se implementa con cuatro veces más chips que TPUv2. Las actualizaciones permiten que esta versión tenga ocho veces más rendimiento que las versiones anteriores.
- TPUv4: Esta es la última versión de TPU anunciada el 18 de mayo de 2021. El CEO de Google anunció que esta versión tendría más del doble de rendimiento que TPU v3.
- TPU de borde: esta versión de TPU está diseñada para operaciones más pequeñas optimizadas para usar menos energía que otras versiones de TPU en la operación general. Aunque solo utiliza dos vatios de potencia, Edge TPU puede resolver hasta cuatro terraoperaciones por segundo. Edge TPU solo se encuentra en dispositivos portátiles pequeños como el teléfono inteligente Pixel 4 de Google.
¿Cómo se accede a las TPU? ¿Quién puede usarlos?
Las TPU son unidades de procesamiento patentadas diseñadas por Google para usarse con su plataforma TensorFlow. El acceso de terceros a estos procesadores está permitido desde 2018. Actualmente, solo se puede acceder a las TPU (excepto las Edge TPU) a través de Google servicios de computación a través de la nube. Mientras que el hardware Edge TPU se puede comprar a través del teléfono inteligente Pixel 4 de Google y su kit de creación de prototipos conocido como Coral.
Coral es un acelerador USB que utiliza USB 3.0 Tipo C para datos y alimentación. Le proporciona a su dispositivo computación Edge TPU capaz de 4 TOPS por cada 2W de potencia. Este kit puede ejecutarse en máquinas con Windows 10, macOS y Debian Linux (también puede funcionar con Raspberry Pi).
Otros aceleradores de IA especializados
Dado que la inteligencia artificial está de moda en la última década, Big Tech busca constantemente formas de hacer que el aprendizaje automático sea lo más rápido y eficiente posible. Aunque se puede decir que los TPU de Google son los ASIC más populares desarrollados para el aprendizaje profundo, otras empresas tecnológicas como Intel, Microsoft, Alibaba y Qualcomm también han desarrollado sus propios aceleradores de IA. Estos incluyen Microsoft Brainwave, Intel Neural Compute Stick y la IPU (Unidad de procesamiento de inteligencia) de Graphicore.
Pero mientras se desarrolla más hardware de IA, lamentablemente, la mayoría aún no está disponible en el mercado y muchos nunca lo estarán. Al momento de escribir, si realmente desea comprar hardware de aceleración de IA, las opciones más populares son comprar un kit de creación de prototipos Coral, un Intel NCS, un Graphicore Bow Pod o un Asus IoT AI Accelerator. Si solo desea acceder a hardware de IA especializado, puede utilizar los servicios de computación en la nube de Google u otras alternativas como Microsoft Brainwave.