De CPU, GPU a TPU
Desde mediados de la década de 1960, el rendimiento de la CPU casi se ha duplicado cada 18 meses. Desde 1965, ha aumentado casi 34 veces, lo que significa que la velocidad de computación se ha multiplicado por 1.600 millones. Si se desglosa este progreso, se puede dividir en dos dimensiones, una es el aumento de la frecuencia principal y la otra es el aumento de la densidad del chip del circuito integrado (llamado integración).
Después de aumentar la frecuencia principal, originalmente era de 654,38 millones de ciclos por segundo, pero ahora se puede contar como 3 mil millones de ciclos, un aumento de decenas de miles de veces. Después de que aumenta la densidad, la tarea de cálculo que solía completarse en varios ciclos ahora se puede simplificar, el trabajo se puede dividir y coordinar y se pueden completar varios cálculos en un ciclo. La superposición de las dos aceleraciones hace que los ordenadores actuales sean muy rápidos.
Sin embargo, la frecuencia principal de la CPU no se puede aumentar infinitamente, porque la velocidad de la luz es un cuello de botella absoluto. La velocidad del movimiento de los electrones en las CPU de las computadoras actuales está cerca del límite dado por la velocidad de la luz y casi no hay posibilidad de mejorarla. De hecho, esta vía está bloqueada desde hace 10 años.
Entonces, ¿qué debemos hacer? El enfoque de Intel es mejorar aún más la integración de las CPU de las computadoras. Al principio, un circuito integrado sólo contaba con unos pocos miles de transistores. Hoy en día hay hasta 6 mil millones de transistores, por lo que los cálculos se pueden realizar en paralelo. Por eso nuestros ordenadores y las CPU de los teléfonos móviles tienen los llamados cuatro. Teoría central y de ocho núcleos.
Entonces, ¿por qué no hacerlo 16, 32 o incluso 100? Porque con la tecnología actual, los procesadores multinúcleo son extremadamente grandes y los problemas de disipación de calor por sí solos no se pueden resolver. ¿Qué hacer ante este problema? La actitud general de Intel es que no puede solucionarlo. Puede comprarme más procesadores, construir más servidores y ampliar el centro de computación. Sin mencionar que este método es ineficaz, en muchos casos no existe ninguna condición para hacerlo. Por ejemplo, en un automóvil autónomo, no puede llevar el gabinete consigo en la carretera.
Sabemos que las personas emprendedoras siempre están intentando encontrar mejores soluciones. Jensen Huang, el fundador de Nvidia, es una de esas personas. Huang y sus colegas de Nvidia creían que la CPU no era lo suficientemente rápida porque estaba diseñada para acomodar todos los cálculos y porque muchos de sus transistores se usaban para construir circuitos de control.
Además, debido a que el cálculo es demasiado complejo, el diseño del procesador en sí lo es también. En las computadoras existe un cálculo relativamente simple, que consiste en controlar el cálculo gráfico de la pantalla, por eso NVIDIA ha diseñado un procesador específicamente para este cálculo, llamado GPU, que es un procesador gráfico.
Por supuesto, antes de NVIDIA, Sun y SGI, que fabricaban estaciones de trabajo gráficas, también diseñaron productos similares, pero no eran universales. La GPU tiene dos ventajas sobre la CPU:
Primero, el circuito de control es simple, por lo que se utilizan más transistores para el cálculo que para el control. De esta manera, los 65.438 millones de transistores originales se pueden utilizar para crear cuatro núcleos, y hay esperanzas de crear ocho, dieciséis o incluso más.
En segundo lugar, convierta el cálculo de un solo hijo en un cálculo por lotes. En la vida real, la mayoría de los cálculos se realizan entre dos números cada vez. Por ejemplo, A B = C es una instrucción de operación (" ") con dos números ("A" y "B"). ) toma otros dos números ("X" e "Y"). Por lo tanto, los procesadores de computadora en realidad están diseñados de acuerdo con un canal de instrucciones (flujo) correspondiente a un canal de datos (llamado SISD). Para usar una analogía inapropiada, el cálculo general es como ponerse en cuclillas en el suelo y recoger frijoles uno por uno.
Los cálculos gráficos calculan la línea completa (llamada vector en informática) de una vez basándose en operaciones SIMD, como A1 B1=C1, A2 B2=C2..., y finalmente A1000 B1000 = C6550 .
Esto es el equivalente a aspirar frijoles del suelo. Una vez que camines por una línea, inhalarás mucho y la eficiencia será mucho mayor.
En este sentido, NVIDIA propuso el concepto de la llamada "Arquitectura de Computación Unificada" (CUDA), es decir, muchos núcleos hacen lo mismo, y en base a esto se diseña la GPU del procesador gráfico.
Con las GPU se pueden paralelizar muchos cálculos repetitivos y consistentes. La GPU se diseñó originalmente para computación gráfica, pero luego NVIDIA descubrió que los algoritmos de aprendizaje automático también se pueden implementar de esta manera, por lo que en 2016, NVIDIA diseñó una GPU para aprendizaje automático basada en las características del procesador de aprendizaje automático P40. hasta 3.000 núcleos de la llamada "arquitectura informática unificada".
Aunque cada capacidad no es tan buena como la de un núcleo en el procesador de cuatro núcleos de Intel, hay muchos núcleos en las GPU como la P40, por lo que los cálculos de inteligencia artificial son muy rápidos. Hoy en día, Tesla se dedica a la conducción asistida y un procesador como este puede solucionar todos los problemas. En el partido AlphaGo del año pasado contra Lee Sedol, se utilizó la GPU 176 de Nvidia para realizar las principales funciones informáticas.
Pero después de todo, los cálculos vectoriales en el aprendizaje automático son diferentes de los cálculos vectoriales generales. ¿Puede hacer que la función del núcleo calculada sea más específica y solo realizar cálculos vectoriales relacionados con un algoritmo de aprendizaje automático muy específico (es decir, el algoritmo de red neuronal artificial de Google)?
Por ello, Google propuso el concepto de computación tensorial. Tensor, originalmente un concepto matemático, representa la relación entre varios vectores o valores. Por ejemplo, sus dos fotografías son dos vectores diferentes y alguna similitud entre ellas es un tensor. El algoritmo de una red neuronal artificial puede considerarse como el cálculo de tensores. En cuanto a por qué, no es necesario estudiarlo detenidamente, solo recuerde esta conclusión.
A continuación, basándose en las GPU de NVIDIA y otras empresas, Google se centró aún más en la informática y diseñó un procesador solo para cálculos de tensor específicos, llamado TPU, donde t representa tensor. Google afirma que para tareas como AlphaGo, la eficiencia de una TPU llega a 65,438 05-30 GPU NVIDIA, razón por la cual esta vez Google dijo que la nueva versión de AlphaGo ha reducido el hardware.
El consumo de energía de AlphaGo, que derrotó a Lee Sedol el año pasado, es 300 veces mayor que el del cerebro humano. Hoy en día, AlphaGo utiliza muchas menos máquinas, al menos un orden de magnitud menos, lo que significa que el consumo de energía se ha reducido de 300 veces el del cerebro humano a menos de 30 veces. Este progreso sigue siendo sorprendente.
Por supuesto, Nvidia no está convencida y dice que Google está comparando manzanas con naranjas, mi P40 es mucho más rápido que su TPU. De hecho, cuál es mejor, TPU o GPU, depende completamente de lo que estés haciendo.
Desde la CPU hasta la GPU y la TPU, la razón fundamental para mejorar la eficiencia radica en dos palabras: enfoque. En comparación, las CPU de nuestros teléfonos móviles y ordenadores están muy "desenfocadas".
En la vida social, la situación es realmente muy similar a la del procesador de un ordenador. Después del inicio de la Revolución Industrial, los propietarios de las fábricas británicas hicieron una división del trabajo muy detallada, por lo que la eficiencia aumentó considerablemente. Adam Smith decía en "La riqueza de las naciones" que incluso en materia de fabricación de agujas de coser, cuando la división del trabajo es muy detallada, un solo trabajador puede producir miles de agujas en un día. Si un trabajador hace todos los procesos, es posible que no pueda completar ni siquiera 10 puntos en un día. Por lo tanto, después de la Revolución Industrial británica, la industria procesadora europea quedó aplastada. En realidad, esto es como la relación entre TPU y CPU.
Pero existe un requisito previo para utilizar TPU: debe haber al menos varios millones de chips en el mercado; de lo contrario, no vale la pena hacerlo, porque cuesta millones fabricar una muestra y diseñar decenas de millones. Si la demanda del mercado es sólo de decenas de miles de chips, es mejor utilizar muchas CPU para funcionar. Es como hacer una aguja de coser. Sólo Europa probablemente necesita cientos de millones de inyecciones al año para ser digna de una división social del trabajo. Si solo gastas treinta o cincuenta yuanes, ¡también podrías dejar que algunos trabajadores lo muelan lentamente! Por lo tanto, el requisito previo para la división del trabajo y la concentración es que el tamaño del mercado sea lo suficientemente grande.
Finalmente, hablemos de las habilidades de las personas: ¿cuándo deben estar especializadas y cuándo deben tener una mentalidad amplia? De hecho, no existe una regla determinada, pero un buen criterio es si el mercado es lo suficientemente grande como para requerir mucha especialización y refinamiento.