CHW: Han pasado 10 años desde que introdujeron la marca GeForce, y coincide con el momento en que el GPU empezó a reemplazar al CPU en algunas áreas. ¿Cómo describirías el mundo de la computación entonces y cómo lo imaginas a futuro?
JHH: Hace 10 años, cuando lanzamos la marca Geforce, la gran mayoría del contenido en las aplicaciones usaba el CPU, dejando el GPU sólo para aceleración gráfica. Era trazado de triángulos, transformación de triángulos, iluminación, pero una iluminación muy sencilla, sombras muy simples, mapeo de texturas y multitexturas. Eran funcionalidades específicas puestas en el pipeline gráfico. El primer pipeline que se usó fue el OpenGL, y luego Microsoft desarrolló el pipeline DirectX. Estas interfaces permitían al chip hacer cosas muy específicas y no era un chip realmente inteligente. Sabía hacer una sola cosa pero la hacía tan rápido y tan bien que se volvió popular.
Para que un CPU hubiera podido hacer las tareas necesarias para reemplazar a un GPU, tendría que haber corrido 1000 veces más rápido, mucho, pero mucho, y es por eso que el mercado de adaptadores gráficos creció y creció y creció a pesar de que los CPU se fueron haciendo más rápidos. Pasa que las GPU eran tan rápidas que nunca pudieron alcanzarlas y por supuesto los desarrolladores de juegos descubrieron lo maravilloso que era tener gráficos a velocidad instantánea, lo que les permitía hacer juegos de gráficos cada vez más atractivos. Si miras Quake 3 y lo comparas con Batman de hoy, simplmente no puedes comparar, es imposible, ¿Verdad? Entonces, los desarrolladores de contenido se enamoraron de lo que era básicamente un subsistema gráfico infinitamente más rápido, de modo que el contenido podía seguir fluyendo y ser cada vez más hermoso, así que el contenido aumentó, la resolución aumento, la gente quiso más filtro Anti Aliasing y eso a su vez requería de GPUs más poderosas y más y más.
Hace unos siete años, empecé a ver que si haces el chip gráfico no importa cuán rápido pero capaz de hacer una sola cosa (mapeo de texturas), entonces eventualmente todos los desarrolladores de contenido en el mundo iban a tener productos que se verían igual. Rapidísimos pero todos iguales. Si miras a esos viejos juegos de mapas de texturas, las imágenes son muy planas, cada juego era igual al otro, no había estilo, no había arte. Así que decidimos hacer la GPU más programable y esa fue la introducción del shader programable, pero nosotros le añadimos un poco más de programabilidad, y aunque era muy poco bastó para que los desarrolladores de juegos se volvieran locos, porque notaron que sus juegos se veían diferentes, completamente diferentes. Entonces la programabilidad llegó al mundo y lo que hizo al final fue añadir expresión artística a los gráficos computacionales. Trajimos estilo. Trajimos arte a la industria de los juegos de computador.
Una vez que ofreces la capacidad de hacer arte, ellos (los desarrolladores) quieren tener infinitas habilidades para contar una historia, asi que en este punto dijeron que querían que todo fuera programable. No querían ver cientos de shaders, querían tener cientos de procesadores cosa de poder escribir cualquier programa quie quisieran. En 10 años cada CPU será heterogéneo, cada CPU tendrá núcleos CPU y núcleos GPU, de eso no hay duda. La pregunta es si acaso estarán todos en el mismo chip y yo creo que no, absolutamente no. Algunas veces tendrás todo en un chip, otras veces en dos. A veces un CPU y muchos GPU, en un servidor la mezcla será diferente. Depende de la necesidad. Esto es el futuro.
Creo que esta arquitectura que hemos hecho durará unos 30 años en la industria, porque la última arquitectura duró 30 años. Una vez que los desarrolladores de contenido aprenden una arquitectura no quieren cambiarla porque quieres que la aplicación que escribes hoy corra en el futuro.