¿Cómo se convirtió Jensen Huang, CEO de Nvidia, en una de las figuras más poderosas de la industria tecnológica y de la IA? En The Thinking Machine, Stephen Witt afirma que se debe a una idea: el procesamiento paralelo. Este enfoque permite a los ordenadores dividir problemas complejos en partes más pequeñas y resolverlas todas al mismo tiempo, a diferencia de los chips tradicionales, que trabajan secuencialmente.
Al desarrollar la tecnología que impulsaría la revolución de la IA, Nvidia fue pionera en un enfoque de la computación que desafiaría la forma en que los ordenadores procesan la información. Pero este avance comenzó con un problema mucho más práctico: mejorar el aspecto de los videojuegos. Sigue leyendo para saber más sobre qué es el procesamiento paralelo y cómo empezó con el objetivo de crear gráficos realistas para los videojuegos más populares.
Índice
¿Qué es el procesamiento paralelo?
¿Qué es el procesamiento paralelo? Para entender cómo funciona, hay que saber de dónde procede. Cuando Jensen Huang y sus cofundadores fundaron Nvidia en 1993, querían crear chips especializados para renderizar los complejos gráficos 3D que exigían juegos como Quake y Half-Life. Para crear efectos visuales realistas, estas unidades de procesamiento gráfico (GPU) tenían que calcular el color y la iluminación de miles de píxeles simultáneamente. Esto requería un enfoque diferente al de los chips tradicionales, que funcionaban secuencialmente, realizando un cálculo cada vez, aunque muy rápido.
(Nota breve: la demanda de gráficos de cálculo intensivo se vio impulsada por la competencia para crear videojuegos más envolventes. Doomen el que los jugadores luchaban contra demonios en Marte, utilizaba ingeniosos trucos para crear la ilusión de profundidad mientras se desarrollaba en mapas 2D planos. Quake se construyó a partir de polígonos 3D reales, lo que permitía a los jugadores navegar por mazmorras medievales que podían ver desde todos los ángulos. Half-Lifeen el que los usuarios encarnaban a un científico en un centro de investigación invadido por alienígenas, intensificó la carrera armamentística añadiendo una narrativa ambiental que exigía aún más potencia de procesamiento. Esta competición sentó las bases, pero aún hicieron falta ingenieros como Huang para ver en el procesamiento paralelo la solución y averiguar cómo hacerlo funcionar a escala).
Witt explica que, mientras la mayoría de los ordenadores se basaban en unidades centrales de procesamiento (CPU) que realizaban las tareas paso a paso, las GPU de Nvidia dividían los problemas visuales complejos en miles de trozos más pequeños y los resolvían todos a la vez. Este método, denominado procesamiento paralelo, no era nuevo en teoría (los científicos llevaban años experimentando con él), pero seguía siendo difícil de implantar de forma fiable. La mayoría de los intentos de computación paralela habían fracasado comercialmente, pero Nvidia triunfó porque tenía una aplicación clara e inmediata en la que centrarse: renderizar gráficos de videojuegos en tiempo real.
(Nota breve: el procesamiento paralelo imita la forma en que computa el cerebro humano, utilizando redes de miles de millones de neuronas que trabajan simultáneamente. Durante décadas, los investigadores han tratado de recrear esta técnica en los ordenadores. En los años 80, demostraron que los circuitos de transistores podían imitar el funcionamiento de las membranas neuronales en el cerebro. Por la misma época, David Rumelhart, James McClelland y Geoffrey Hinton desarrollaron marcos de "procesamiento distribuido paralelo", modelos informáticos de cómo el cerebro procesa la información con muchas unidades simples trabajando juntas. Pero estos enfoques inspirados en el cerebro tuvieron dificultades porque los ordenadores aún no eran lo suficientemente potentes como para manejar los cálculos paralelos masivos que requerían, exactamente el problema que Nvidia resolvería).
Cómo descubrieron los investigadores el potencial más amplio
El potencial del procesamiento paralelo se hizo evidente cuando los investigadores descubrieron que los chips de juego de Nvidia podían reutilizarse para tareas de cálculo totalmente distintas. En 2000, Ian Buck, estudiante de posgrado en Stanford, quería crear una experiencia de juego envolvente. Encadenó 32 chips de Nvidia para mostrar un único juego, Quake IIIen ocho proyectores de gran tamaño, creando una pared de juego de ultra alta definición que llenaba una sala entera. Witt explica que los cálculos necesarios para renderizar sólo 30 fotogramas del juego le llevarían a un humano trabajando con lápiz y papel unos 16.000 años. Pero el conjunto de tarjetas Nvidia de Buck realizaba estos cálculos cada segundo. Por unos 20.000 dólares, una fracción de lo que cuestan los superordenadores tradicionales, había construido una máquina con una potencia de procesamiento extraordinaria.
Buck y otros investigadores empezaron a "hackear" los chips de juego de Nvidia para que resolvieran problemas científicos en lugar de representar explosiones y persecuciones de coches para videojuegos. Utilizaron las herramientas de programación de las tarjetas para reorientar su capacidad de procesamiento paralelo hacia tareas como la modelización financiera, la simulación meteorológica y la obtención de imágenes médicas. Pronto, los académicos empezaron a comprar en grandes cantidades las tarjetas GeForce de Nvidia y a reutilizarlas como instrumentos científicos asequibles. Estaba surgiendo un nuevo mercado que no pasó desapercibido para Huang: Witt señala que, alrededor de 2004, Huang empezó a reclutar investigadores como Buck para que se unieran a Nvidia.
| Rompiendo la barrera de la programación en la GPU En Stanford, Buck estaba trabajando en un problema fundamental: en teoría, las GPU podían manejar cálculo científico, pero los investigadores tenían que ingeniárselas para que los chips resolvieran problemas matemáticos disfrazando los cálculos de operaciones gráficas (por ejemplo, representando los datos científicos como texturas y las operaciones matemáticas como sombreado de píxeles). Buck desarrolló Brook, un lenguaje que permitía a los ingenieros escribir instrucciones para procesar grandes cantidades de datos a través de muchos procesadores, en lugar de tener que pensar en términos de triángulos y píxeles. Antes de Brook, el uso de las GPU para trabajos científicos exigía dominar la programación de gráficos complejos: aprender a hablar el lenguaje nativo de la GPU en lugar de expresar los problemas matemáticos directamente. Brook representaba una nueva capa de software que traducía los conceptos familiares de programación en operaciones gráficas que las GPU entendían, lo que permitía a los científicos centrarse en sus problemas computacionales. Esto representa un principio fundamental de la informática: Los lenguajes de programación existen en distintos niveles de abstracción, y los de nivel superior ocultan detalles técnicos complejos para facilitar la programación. Mientras que otros sólo veían chips para juegos difíciles de programar, Buck añadió una capa de abstracción específica para la computación paralela, imaginando una nueva categoría de supercomputación asequible en la que la enorme capacidad de procesamiento paralelo se democratizaría gracias a la introducción de software más intuitivo para aprovechar esa potencia. |
Por qué Jensen Huang lo apostó todo a la computación paralela
La decisión de Nvidia de apostar por la computación paralela se basó en algo más que usos creativos para los chips de juegos: Fue impulsada por una visión del futuro de la informática. Huang se dio cuenta de que los métodos existentes para aumentar la velocidad de los ordenadores se acercaban a sus límites físicos. Durante décadas, los fabricantes de chips habían ido reduciendo el tamaño de los transistores de los microchips, pero cada vez eran más pequeños y pronto perderían electricidad y ralentizarían los ordenadores. Si los ordenadores iban a seguir avanzando, el enfoque fundamental de la informática tendría que cambiar. Mientras competidores como Intel seguían centrándose en hacer más rápidos los procesadores tradicionales, Huang veía el procesamiento paralelo como el camino a seguir.
El hardware para que el procesamiento paralelo funcionara a escala era sólo la mitad de la solución. Witt explica que el procesamiento paralelo era increíblemente difícil de programar. Escribir software para miles de procesos simultáneos requería una forma de pensar completamente distinta a la de la programación secuencial tradicional, y la mayoría de los desarrolladores lo encontraban tan difícil que evitaban por completo la computación paralela. Nvidia cambió esta situación con CUDA (Compute Unified Device Architecture), una plataforma de software que la compañía lanzó en 2006 para permitir a los desarrolladores utilizar herramientas familiares, como el lenguaje de programación C, para acceder a la capacidad de procesamiento paralelo de las GPU.
| Cuando el hardware alcanza los límites físicos, el software abre nuevas posibilidades Hay dos palancas de las que se puede tirar para hacer que los ordenadores sean más sofisticados: el hardware y el software. La Ley de Moore, según la cual la densidad de transistores se duplica cada dos años, describió el progreso constante del hardware a partir de los años 60, a medida que los componentes se hacían más pequeños y más rápidos. Alrededor de 2005, los expertos vieron que este enfoque estaba alcanzando límites físicos, ya que los transistores se estaban volviendo tan diminutos que pronto serían incapaces de funcionar de forma fiable. Algunos investigadores están explorando ideas que abandonan por completo el silicio tradicional, como reacciones químicas que procesan la información mediante patrones de ondas oscilantes, sistemas biológicos como moldes de limo que destacan en la resolución de problemas y sistemas microfluídicos que utilizan gotas de líquido para realizar cálculos. Pero Huang reconoció que el software ofrecía una solución alternativa. En lugar de esperar a que se desarrollaran nuevos tipos de hardware, Nvidia creó software que podía desbloquear nuevas capacidades a partir de los chips de silicio existentes. Aunque las GPU y las CPU se construyen esencialmente con los mismos materiales, es el software el que determina la forma en que esos componentes trabajan juntos. CUDA permitió a las GPU realizar miles de cálculos simultáneos que las CPU simplemente no pueden manejar. Este enfoque basado en el software ha demostrado que la innovación en este campo puede ser tan revolucionaria como los avances en el hardware de la informática tradicional. |
La convicción de Huang de que el procesamiento paralelo era el camino a seguir le llevó a invertir fuertemente en CUDA. Perseguía lo que denominó un "mercado de cero billones de dólares", creando tecnología para clientes que aún no existían, con la esperanza de que impulsar el procesamiento paralelo (y facilitar su uso) crearía una demanda masiva. Según Witt, Huang sabía que los competidores acabarían copiando el hardware de Nvidia, pero que empezarían desde cero en lo que respecta al software. Así que Nvidia pasó años creando herramientas, bibliotecas y documentación para facilitar el uso de sus chips.
Al invertir fuertemente en infraestructura de computación paralela y construir un ecosistema de software integral a su alrededor, Nvidia había creado sin darse cuenta la plataforma perfecta para la revolución de la IA que estaba esperando entre bastidores. Nvidia había sentado las bases para convertirse en el proveedor de infraestructura esencial para la IA, pero solo porque había pasado más de una década creando capacidades que en ese momento parecían carecer de valor comercial.
(Nota breve: después de que Witt terminara su libro, la empresa china DeepSeek afirmó haber encontrado atajos para la IA avanzada, pero la controversia que siguió demostró por qué la estrategia CUDA de Huang ha demostrado ser tan duradera. Mientras que CUDA funciona a un alto nivel de abstracción para que los desarrolladores no necesiten entender el hardware de la GPU, la plataforma de DeepSeek exige programar a un nivel mucho más bajo. Los desarrolladores tienen que controlar la asignación de memoria, la programación de hilos y la optimización de la caché, tareas que CUDA maneja automáticamente, pero de forma menos óptima. DeepSeek también afirmó haber entrenado sus modelos de IA de forma barata. Pero OpenAI alegó que DeepSeek utilizó la "destilación", aprendiendo de los modelos de OpenAI en lugar de empezar desde cero, lo que sugiere que puede que no haya atajos).
Más información sobre el procesamiento paralelo
Para comprender mejor el procesamiento paralelo en su contexto más amplio, eche un vistazo a la guía de Shortform sobre el libro La máquina de pensar de Stephen Witt.