CUDA and the rise of NVIDIA - editorial illustration

Jensen Huang, CUDA y el auge de NVIDIA

Introducción

Cuando Jensen Huang cofundó NVIDIA en 1993, su objetivo era llevar los gráficos 3D a los juegos de ordenador y al multimedia. Hoy, los procesadores de la misma empresa se utilizan para entrenar y ejecutar modelos de inteligencia artificial. Para entender ese cambio, conviene empezar por la formación de Huang como ingeniero y por la plataforma de software que NVIDIA construyó, CUDA. [1] [1]

1. La carrera de ingeniería de Huang

Nacido en Taiwán, Huang obtuvo una licenciatura en ingeniería eléctrica de la Universidad Estatal de Oregón en 1984. Trabajó como diseñador de microprocesadores en AMD de 1984 a 1985, y luego ocupó varios puestos en LSI Logic de 1985 a 1993. Llegó a ser director de Coreware, la división responsable de la estrategia de la empresa para integrar múltiples componentes de un sistema informático en un solo chip. Durante ese periodo, también obtuvo una maestría en ingeniería eléctrica de la Universidad de Stanford en 1992. [2] [1]

El 5 de abril de 1993, Huang fundó NVIDIA con Chris Malachowsky y Curtis Priem. Ha sido presidente, director ejecutivo y miembro del consejo desde que comenzó la empresa. En 1999, NVIDIA salió a bolsa. Ese mismo año, presentó la GeForce 256, un hito en la historia de las unidades de procesamiento gráfico (GPU) de la empresa. [1] [1]

2. ¿Qué es CUDA?

NVIDIA presentó CUDA en 2006 como una plataforma de software y un modelo de programación para realizar muchos cálculos en paralelo en sus GPU. La GPU es el hardware que realiza los cálculos. CUDA proporciona las herramientas de programación que los desarrolladores utilizan para ejecutar sus cálculos en ese hardware. Esto abrió las GPU creadas para gráficos a aplicaciones de investigación científica, computación de alto rendimiento e inteligencia artificial. [1] [1]

Imagine que aclara una imagen de un millón de píxeles. El cálculo de un píxel puede avanzar independientemente de los demás. Un programa CUDA puede dividir ese trabajo en cálculos más pequeños y ejecutarlos en la GPU. Una función que se ejecuta en la GPU se llama kernel. Muchos hilos lo ejecutan en paralelo, cada uno trabajando en su parte asignada de los datos. El mismo principio de dividir el trabajo en partes que pueden ejecutarse en paralelo se aplica a los cálculos de IA, como las grandes multiplicaciones de matrices. [3] [1]

3. Cómo ayudó CUDA a la industria de la IA

Al entrenar una red neuronal, el modelo primero hace una predicción. El proceso de entrenamiento mide el error y actualiza los parámetros del modelo. Repite este proceso muchas veces. Las GPU aceleran operaciones como la multiplicación de matrices, dando a los investigadores tiempo para realizar más experimentos y haciendo práctico entrenar modelos más grandes. Las GPU también se utilizan después del entrenamiento, durante la inferencia, cuando un modelo como un modelo de lenguaje genera una respuesta para un usuario. [4] [1]

AlexNet ofreció una demostración práctica en 2012. Entrenado con GPU de NVIDIA, ganó la competición de clasificación de imágenes ImageNet. Su rendimiento mostró cómo los procesadores gráficos usados para los juegos de ordenador también podían entrenar modelos para reconocer imágenes. [1] [1]

4. Cómo dio CUDA a NVIDIA una ventaja duradera

NVIDIA construyó bibliotecas y herramientas optimizadas para los cálculos que los desarrolladores necesitan con frecuencia. cuBLAS acelera las operaciones con matrices, cuDNN admite operaciones comunes de redes neuronales, NCCL gestiona la comunicación entre GPU y TensorRT ayuda a que los modelos entrenados se ejecuten más rápido. Marcos como PyTorch son compatibles con CUDA, por lo que los desarrolladores pueden usar estas capacidades sin escribir cada operación de GPU desde cero. [5] [1]

Conclusión

Ese ecosistema de software fortaleció el negocio de hardware de NVIDIA. Un equipo puede pasar de un pequeño experimento a un sistema que funciona en muchas GPU mientras sigue usando software y herramientas conocidos. Cambiar de hardware puede obligar al equipo a revisar sus dependencias de CUDA, adaptar partes de su software y probar el rendimiento de nuevo. Al invertir en software junto con el hardware durante años, NVIDIA tenía herramientas listas para los desarrolladores que ya sabían usarlas cuando creció la demanda de computación de IA. [1] [1]

Referencias

  1. https://www.nvidia.com/en-us/about-nvidia/corporate-timeline/
  2. https://s201.q4cdn.com/141608511/files/doc_financials/annual/2013/NVDA_2013AR_Proxy_10K-FINAL.pdf
  3. https://docs.nvidia.com/cuda/cuda-programming-guide/02-basics/writing-cuda-kernels.html
  4. https://docs.nvidia.com/cuda/cuda-programming-guide/index.html
  5. https://developer.nvidia.com/machine-learning

Preguntas sobre Jensen Huang, CUDA y el auge de NVIDIA

¿Qué es CUDA y por qué lo construyó NVIDIA?

CUDA es una plataforma de software y un modelo de programación que NVIDIA introdujo en 2006 para ejecutar muchos cálculos en paralelo en sus GPU. La GPU es el hardware; CUDA proporciona las herramientas de programación, que abrieron el hardware gráfico a la investigación científica, la computación de alto rendimiento y la IA.

¿Cómo ayudó CUDA a la industria de la IA?

Entrenar una red neuronal significa repetir la predicción, la medición del error y las actualizaciones de parámetros muchas veces. Las GPU aceleran operaciones como la multiplicación de matrices, permitiendo a los investigadores realizar más experimentos y entrenar modelos más grandes. AlexNet, entrenado con GPU de NVIDIA, lo demostró al ganar la competición ImageNet de 2012.

¿Por qué da CUDA a NVIDIA una ventaja duradera?

NVIDIA construyó bibliotecas optimizadas que los desarrolladores necesitan a menudo – cuBLAS para operaciones con matrices, cuDNN para operaciones de redes neuronales, NCCL para la comunicación entre varias GPU y TensorRT para una inferencia más rápida – y marcos como PyTorch son compatibles con CUDA, por lo que los equipos pueden escalar de un pequeño experimento a muchas GPU sin reescribir su software.

Powered By K7