28 puntos por xguru 2023-09-12 | 6 comentarios | Compartir por WhatsApp
  • 4 factores que hicieron posible que Nvidia aumentara 1000 veces el rendimiento de las GPU en 10 años
  • El Chief Scientist Bill Dally lo explicó en una sola diapositiva durante la keynote de IEEE Hot Chips 2023

Representación numérica: 16x

  • "En general, la mayor ventaja que obtuvimos fue mejorar la representación numérica"
  • Estos números se refieren a los principales parámetros de las redes neuronales
  • Uno de estos parámetros son los pesos (Weights) y otro son las activaciones (Activations)
    • Pesos: la fuerza de conexión entre las neuronas del modelo
    • Activaciones: determinan si una neurona se activa al multiplicar la suma de las entradas ponderadas y propagar la información a la siguiente capa
  • Antes de la P100, las GPU de Nvidia representaban estos pesos usando números de punto flotante de precisión simple (single precision floating-point)
  • Definidos por el estándar IEEE 754, estos números tienen una longitud de 32 bits: 23 bits representan la fracción, 8 bits actúan como exponente aplicado a la fracción y 1 bit se usa para el signo del número
  • Pero los investigadores de machine learning descubrieron que en muchos cálculos era posible usar números menos precisos y aun así la red neuronal podía seguir dando respuestas correctas
  • Al procesar menos bits, se puede hacer más pequeña y eficiente la lógica que realiza los cálculos principales del machine learning (multiplicación y acumulación)
    • La energía necesaria para la multiplicación es proporcional al cuadrado del número de bits
  • Por eso Nvidia redujo ese número a la mitad usando FP16 en la P100. Google también lanzó su propia versión llamada bfloat16
    • La diferencia entre ambos está en la proporción relativa entre los bits de fracción, que aportan precisión, y los bits de exponente, que aportan rango
    • bfloat16 tiene la misma cantidad de bits de exponente que FP32, por lo que es fácil convertir entre ambos formatos
  • La GPU más reciente de hoy, la H100, puede usar números de 8 bits para ejecutar ciertas partes de grandes redes neuronales transformer como ChatGPT y otros LLM
    • Pero Nvidia descubrió que esto no es una solución universal de talla única para todos los casos
    • Por ejemplo, la arquitectura de GPU Hopper de Nvidia en realidad usa dos formatos FP8 distintos para hacer cálculos
    • Uno tiene una precisión ligeramente mayor y el otro un rango ligeramente más amplio
    • La fuente especial de Nvidia es saber cuándo usar cada formato
  • Dally y su equipo tienen todo tipo de ideas interesantes para exprimir más IA con menos bits
  • Y está claro que el sistema de punto flotante no es ideal
  • Uno de los principales problemas es que la precisión del punto flotante es bastante consistente sin importar si el número es grande o pequeño
  • Pero los parámetros de las redes neuronales no usan números grandes y se concentran alrededor de 0
  • Por eso el enfoque de I+D de Nvidia es encontrar métodos eficientes para representar los números con más precisión cerca de 0

Instrucciones complejas: 12.5x

  • "El overhead de traer y decodificar instrucciones es varias veces mayor que el de realizar una operación aritmética simple"
  • Por ejemplo, una de las multiplicaciones consume un overhead equivalente a 20 veces la energía de la operación en sí, que es de 1.5 picojoules
  • Nvidia obtuvo grandes beneficios al diseñar la GPU para realizar cálculos grandes con una sola instrucción, en lugar de una secuencia de instrucciones
  • El overhead sigue existiendo, pero con instrucciones complejas se puede amortizar el costo con más matemáticas
  • Por ejemplo, en IMMA (integer matrix multiply and accumulate, multiplicación y acumulación de matrices enteras), una instrucción compleja, el overhead representa solo el 16% del costo energético de las operaciones matemáticas

Ley de Moore: 2.5x

  • Mantener el avance de la ley de Moore implica inversiones de miles de millones de dólares, ingeniería extremadamente compleja y numerosas inestabilidades internacionales
  • Sin embargo, eso también es parte del aumento de rendimiento de las GPU de Nvidia
  • Nvidia ha seguido aprovechando de forma constante las tecnologías de fabricación más avanzadas
  • La H100 está fabricada con el proceso N5 (5 nanómetros) de TSMC, y la fundición de chips apenas comenzó la producción inicial del N3 de próxima generación a finales de 2022

Dispersión: 2x

  • Después del entrenamiento, quedan muchas neuronas en la red neuronal que en realidad nunca debieron estar ahí desde el principio
  • En algunas redes neuronales, "puede ser posible eliminar más de la mitad de las neuronas sin perder precisión"
  • Como los valores de peso de estas neuronas son 0 o casi 0, no contribuyen a la salida, y meterlos en el cálculo solo desperdicia tiempo y energía
  • Hacer que estas redes sean "dispersas" (Sparse) para reducir la carga computacional es una tarea complicada
  • Sin embargo, con la A100, predecesora de la H100, Nvidia introdujo una función que llama dispersión estructurada (Structured Sparsity)
  • Este hardware fuerza que ocurran 2 de 4 posibles eventos de depuración, lo que puede llevar a un nuevo cálculo de matriz más pequeño
  • "El problema de la dispersión todavía no termina" "Tenemos que hacer algo con las activaciones y también podemos tener una dispersión aún mayor en los pesos"

6 comentarios

 
ninebow 2023-09-12

¡Wow, gracias por el buen artículo!

 
nicewook 2023-09-12

Lo leí con gusto.

 
ragingwind 2023-09-12

Vaya, entonces hay que seguir comprando acciones..

 
xguru 2023-09-12

Tengo algunas acciones de Nvidia que compré en 2018 como una especie de exploración, y ahora van en 1100%. Debí haber comprado un montón en ese entonces. T_T

 
laeyoung 2023-09-12

Guau..!

 
xguru 2023-09-12

16 x 12.5 x 2.5 x 2 da exactamente 1000.