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?