Mostrar feed RSS

My Two Cents

Conferencia de Rare: Tejidos Cardíacos sobre XBox360

Calificar esta entrada
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

Enviar "Conferencia de Rare: Tejidos Cardíacos sobre XBox360" a ¡Menéame! Enviar "Conferencia de Rare: Tejidos Cardíacos sobre XBox360" a Technorati Enviar "Conferencia de Rare: Tejidos Cardíacos sobre XBox360" a Digg Enviar "Conferencia de Rare: Tejidos Cardíacos sobre XBox360" a del.icio.us Enviar "Conferencia de Rare: Tejidos Cardíacos sobre XBox360" a Google Enviar "Conferencia de Rare: Tejidos Cardíacos sobre XBox360" a Finclu Enviar "Conferencia de Rare: Tejidos Cardíacos sobre XBox360" a Copada Enviar "Conferencia de Rare: Tejidos Cardíacos sobre XBox360" a StumbleUpon Enviar "Conferencia de Rare: Tejidos Cardíacos sobre XBox360" a Reddit Enviar "Conferencia de Rare: Tejidos Cardíacos sobre XBox360" a FaceBook

Categorías

Comentarios

  1. Avatar de AOJ
    Que cabróoooooooon! Suertudo! . Yo también quiero que me inviten o se hagan conferencias de este tipo en mi Universidad :S

    Muy interesante, esto parece un poco la competencia de PS3 y sus "supercálculos matemáticos de la hostia juntando 10 PS3"

    Va bien que gente que realmente sabe del temas de física se ponga en el mundillo de los videojuegos. Ahora miraremos con lupa el próximo juego de Rare y su sistema de partículas xD
  2. Avatar de cheszan
    Muy interesante esta entrada.

    Gracias.
  3. Avatar de dardo
    Chorradas, cosas como esas las hace IBM todos los días con PS3.

    Cita Iniciado por Nikkei
    IBM Japan plans to start selling the Cell high-performance microprocessor to new customers this month for use in computers, expanding the chip's applications beyond powering Sony Computer Entertainment Inc.'s PlayStation 3 video game console. IBM Japan is expected to procure Cell chips from the U.S. parent's plant in the state of New York and sell them through Fixstars Corp., a Tokyo venture company that has been co-developing Cell software with IBM Japan. The processor will be sold to companies as part of an expansion board for high-performance personal computers.
    De todas maneras hay supercomputadoras de usop especifico para la representación 3D como las Onyx2.

    En cualquier caso la comparativa es la que sigue. Para "pintar" un punto en un entorno 3D con Z-buffer y algo más necesitas unas treinta lineas de código en C que compilado pueden ser unas cincuenta lineas en ensamblador y que en la arquitectura x86 van a necesitar una media de 100 ciclos para ser ejecutadas mientras que con una GPU lo haces con una sola instrucción que tarda dos ciclos.
    Actualizado 05/04/2008 a las 12:42 por dardo
  4. Avatar de bulbastre
    no he entendido una mierrrrrrrrrrrrrrrrrrrrrrrrda
  5. Avatar de dardo
    Usan tío de Rare usa una computadora diseñada especificamente para correr un software de simulación de comportamiento del tejido cardíaco y luego la GPU de una Xbox360 sin que esta última lo haga tan lento como en un principio pudiera parecer.

    Significa que ese tío es un hacha adaptando código que ya tenía a la Xbox360 y que es un código perfectamente utilizable para simular ciertos procesos físicos de manera realista en una videoconsola.
  6. Avatar de dn@
    Muy interesante, si señor, ¿podrías expandir un poco de información técnica acerca de los algoritmos de calculos de representación sobre la CPU de los 3 nucleos? ¿o solo lo hizo rodar sobre uno? en cualquier caso es intersante
  7. Avatar de Yataran
    En mi opinión el tema principal de la presentación era que procesadores tipo las GPU modernas tienen una estructura más apta para ejecutar determinadas aplicaciones que los procesaodres "normales", como puede ser una CPU de las habituales, debido a que pueden ejecutar más instrucciones de manera paralela. Ejemplos de esto puede ser, obviamente, la realización de complejos gráficos tridimensionales, la simulación de procesos biológicos o, esto ya se me ocurre a mí, la implementación de redes neuronales artificiales. Sobre todo en hardware que, digamos, se encuentra al alcance del consumidor "de a pié".

    Como ejemplos mencionó el tema de "Folding at Home", que IBM está utilizando el procesador Cell en sus ordenadores de alto nivel o que ciertos equipos de investigación están usando 10 PS3 para la realización de cálculos relacionados con agujeros negros.

    Aunque mencionó las características del procesador central de la XBox360 (y según unos comentarios que hizo me dio la sensación de que considera que el Cell es superior, ya que dijo que el de XBox360 es "decente") no hizo ningún comentario al respecto de si utilizaba un solo núcleo o varios. La impresión que me dio es que solo utilizaría uno, ya que comentó que el código fue pasado directamente de PC a la XBox con pequeños cambios, al menos en el primer intento que fue ejecutarlo sobre la CPU de la consola. Así que si no hizo grandes cambios en la estructura del código es mi suposición de que probablemente se esté ejecutando sobre un solo núcleo.

    La cuestión sobre la que luego invirtió más tiempo fue explicar que estrategia utilizó para poder ejecutar ese código sobre la GPU, dejando a la CPU que solo ejerciera acciones de coordinación, por decirlo de una manera.

    Si recuerdo bien: debido a la alta especialización de la GPU para realizar cálculos utilizando 4 variables - 3 colores RGB y "alpha"; y las 3 coordenadas en el espacio y otra cosa que se me olvidó - la cuestión estaba en poder adaptar la información que quieres procesar a ese formato... Aquí es cuando la cosa se puso bastante técnica y en algunos momentos me perdía un poco.

    Por lo visto esto es algo que se viene haciendo desde un tiempo, pero este hombre intentó una estrategia diferente a la que se ha usado normalmente aprovechándose de algunas características del hardware (algo relacionado con el canal de memoria, creo). Le preguntaron si eso podría ser portado fácilmente para ser usado en un PC, a lo que él contestó que no cree que fuera posible usando la estrategia empleada en la presentación debido precisamente a eso de la memoria, que funciona diferente en PC.

    En fin, la conferencia se grabó en vídeo y se supone que la ponen luego en Internet. Estaré atento a ver cuando aparece, por si a alguien le interesa y se defiende con el inglés
  8. Avatar de dn@
    si, el superbuffer ese que tiene la 360 de 10MB, puede que sea por eso lo de no poder pasarlo a pc, supongo que te refieres a que pasó algo así como r=x g=y b=z alpha=magnitud etc. Jodé parece que se un pollazo, pero tampoco es que pudiese enterarme de mucho xD Pero si suben la conferencia y la encuantras postea el link, porfavor
  9. Avatar de Yataran
    Me fijaré a ver si encuentro la conferencia en vídeo.

    En cuanto a lo de las coordenadas, si, era XYZ y algo más... Pero lo curioso es que el hombre hablaba del conjunto de 4 variables de colores por un lado (alpha siendo el nivel de transparencia) y de las coordenadas por otro.

    Luego recuerdo que comentó que los datos de lo que tú ya quisieras hacer se introducían mediante matrices de 4x4. Un profesor que asistió a la conferencia comentó que eso se podría reducir de alguna manera con otras operaciones matemáticas, a lo que Simon contestó que debido a la manera de trabajar de la GPU era mejor darle la información de esta manera.

    Por otro lado encontré que el algoritmo que usa para el cálculo de la simulación es un algoritmo genético. Y no son sencillos ya que los modelos actuales utilizan sistemas de ecuaciones diferenciales no lineales, que requieren bastante tiempo de procesado.

    Realizó el proyecto ese porque estuvo trabajando durante casi 3 años en el departamento de informática de mi universidad, en la sección de "biología de sistemas computacionales" (o algo así al traducirlo).