jueves, 31 de agosto de 2017

¿Qué es una tarjeta gráfica?

Mucha gente que juega a videojuegos quiere una gráfica mejor a la que tiene o presume de tener una maravilla que puede ejecutar cualquier juego del mercado, pero en realidad si les preguntas qué hace una tarjeta gráfica a nivel hardware te responderán con una aseveración parecida a la siguiente (normalmente con más tacos): “Hace que mis videojuegos se vean bien”. Pero ¿Qué mierdas es una tarjeta gráfica? ¿Lo sabéis? Pues yo sí, y aquí llega una nueva entrada del Tecnópata Obsoleto.

Cada cosita verde es un  "adolescente"

Empezaremos con lo básico: Un procesador se encarga de procesar información *aplausos*, en serio, ejecutan MUCHA información (un intel i5 de hace 5 años ejecuta 12 millones de operaciones por segundo). El microprocesador de vuestro ordenador es lo que más rápido ejecuta código casi siempre. – “¿Casi siempre?” – Eso he dicho, deja de repetir y atiende. 

Os ilustraré con una metáfora de las que tanto me gustan. Un procesador es como un economista y una tarjeta gráfica es como una horda de 1.000 adolescentes con calculadoras. Si pido a ambos que hagan una suma, el economista tardará menos que los adolescentes, si pido a ambos que me hagan la declaración de la renta también acabará antes el economista, sin embargo, si les pido que hagan 10.000 operaciones matemáticas, los adolescentes acabarán antes, porque harán 10 cada uno mientras que el economista tendrá que hacer las sumas una a una.

“¿Y qué? Pueden hacer cosas a la vez ¿en qué me ayuda eso?” – Todo programa en 3D (hablo ahora de juegos) representa cada punto que aparece con tres coordenadas (x, y, z). Si imaginas un solo coche de Gran Turismo 5, un juego de 2010, tiene más de 200.000 puntos (como curiosidad, diré que sólo el bigote de Solid Snake del Metal Gear Solid 4 tenía más de 1500 puntos). Si queremos mover el coche, tendremos que avanzar en la coordenada X (por ejemplo). pero hay 200.000 puntos que tienen cada uno su coordenada X, así que tendremos que avanzar en 200.000 puntos. Esto se traduce en 200.000 sumas.

Sólo ese bigote tiene 1500 puntos
“¿200.000 sumas? si un procesador hace 12 millones de operaciones no es tanto ¿No?” – Imagina ahora esto: el coche avanza por un circuito enorme, cuando en una curva que tiene tierra en el suelo se choca, levantando una nube de polvo y dando vueltas de campana avanzando hacia un muro sin que por ello sus ruedas dejen de girar. Además de esto se deforman un par de piezas. En esta detallada descripción que ha llenado vuestras mentes en un fantástico atardecer nos encontramos con varios millones de operaciones en cada instante. Sin contar que habrá otros coches en la pista y que también hay que calcular sus inteligencias artificiales. Podéis imaginar que esta cantidad de pequeñas operaciones matemáticas (todas fáciles por separado), dejan al procesador hundido en la miseria y lamentándose. Pero, ¿Y si inventamos un aparato que haga las sumas de 1000 en 1000? 200.000 sumas se convertirán en 200 operaciones. Parece una buena idea, pongámosla en práctica y llamémoslo Tarjeta gráfica, que será justo eso, un montón de procesadores puestos en paralelo que por separado hacen operaciones matemáticas tirando a despacio, pero que juntas hacen muchísimas cuentas a la vez, acelerando una borriquería las sumas de un montón de datos en paralelo.
Coordenadas de un punto en 3D

Algunos se preguntarán – “¿Por qué no cambiamos el procesador por una tarjeta gráfica si tan rápido va, eh listo?” – Volvamos a la metáfora de antes y dime, atento lector, si se te ocurre alguna forma de dividir entre 1.000 estudiantes el trabajo de hacer una declaración de la renta sin que sea más engorroso que pedírselo al economista que tienes a sueldo. No sólo es más fácil para quien los organiza (el programador) sino que además en la mayor parte de tareas irá más rápido tu preciado procesador-economista.


Así que ya sabes, una tarjeta gráfica no es más que eso. Una horda de adolescentes con calculadora que sumarán, restarán, multiplicarán, harán senos y cosenos muy rápido, pero no les pidas que hagan nada más complejo porque no es su cometido y te costarán más dinero que los caramelos que les das por trabajar. Ahora dime, ¿Has aprendido algo nuevo hoy?

2 comentarios:

Unknown dijo...

No pueden ser 1000 adolescentes porque la temperatura se dispararía por las hormonas (buen post, por cierto)

Ismael Gonjal dijo...

¿Por qué te crees que llevan esos ventiladores las tarjetas gráficas?