Conferencia de Rare: Tejidos Cardíacos sobre XBox360
por
- 04/04/2008 a las 22:34 (2675 Visitas)
Hoy por la mañana fui a una conferencia que un empleado de Rare Ltd (si, la Rare de GoldenEye y Perfect Dark) dio en mi universidad. Dicho empleado es en realidad el Dr. Simon Scarle, parte del equipo de desarrollo de utilidades gráficas en la empresa y específicamente trabajando en la sección de partículas y demás parafernalia física y que requiere grandes cálculos matemáticos. Aparte el hombre tiene un doctorado en física, ha trabajado con polímeros, semiconductores, ha hecho posgrados y demás... Un día se hartó de la parte académica y decidió coger un trabajo en la empresa de videojuegos que todos conocemos.
La conferencia como tal trataba sobre la utilización de la XBox360 para la simulación del comportamiento eléctrico del tejido cardíaco. Como al entrar a trabajar en Rare uno pasa varios meses familiarizándose con las herramientas de trabajo propias y con el sistema de desarrollo, se tiene la oportunidad de realizar cualquier tipo de proyecto para practicar.
En este caso Simon Scarle decidió utilizar el código que había desarrollado anteriormente para la simulación en ordenador y prácticamente portarlo tal cual, con algunos pequeños cambios.
Primeramente implementó el código para que funcionara sobre la CPU de la consola y nos dio una demostración directamente desde una unidad de desarrollo (que según él puede costar alrededor de unas 10000 libras). En la pantalla pudimos ver una sencilla pero ilustrativa representación tridimensional de la "ola" que representa la despolarización de las células cardíacas y posteriores cambios que sufren hasta que pueden ser capaces de ser excitadas nuevamente.
El sistema podía cómodamente representar unos 63 fotogramas por segundo mientras procesaba una matriz de, aproximadamente, 20x5 células. Recordemos, todo siendo procesado por la CPU y siendo este un sistema medianamente paralelizado, lo que dificulta más los cálculos necesarios.
El siguiente paso que nos demostró, y que prácticamente era el núcleo central de la conferencia, era la ejecución de la misma simulación pero sobre la GPU. Con esto entramos dentro del campo de la GPGPU, que en inglés viene a significar algo así como Computación de Propósito General en la Unidad de Procesamiento Gráfico.
De todos modos la cosa no se queda solo en el nombrecito. Los resultados hablaban por si mismos: la misma demostración, pero con una matriz de células de 20x20, lograba alcanzar más de 300 fotogramas por segundo sin problemas, mientras que con la misma cantidad de células la demostración sobre la CPU estaría alrededor de 14 fps. Todo eso con una velocidad de reloj de "solo" 500MHz.
No obstante todo tiene su desventaja: estos procesadores están altamente especializados en el cálculo de "materia gráfica", así que al querer ejecutar código general sobre ellos es necesario realizar algunos cambios en la manera en que los datos son presentados. Por otro lado se hace difícil la depuración del código ya que si algo no funciona bien puede deberse a la CPU, a la unidad de "vertex shader" o de "pixel shader"... Y las herramientas para esto no son precisamente de las mejores en la actualidad. No obstante, según Simon Scarle la situación está empezando a cambiar un poco con unas nuevas herramientas que NVidia está desarrollando relacionadas con este tema.
La verdad es que la conferencia estuvo interesante. Algo técnica y fuera de mi campo por momentos, pero no obstante entretenida. Y, claro, aparte me pude llevar algunos recuerdos