Detalles del Cell revelados

No entiendo, ¿que diferencia haria en trabajar juntos o individualmentes los SPE? ¿seria mayor poder? ¿y que diferencia habria (mejores fisicas, AI) en cuanto a los competidores?
Os voy a explicar como iria la programación de los SPE.

Imaginaros que teneis un GTA, la CPU principal que es el PPE mueve el juego principal con ayuda del RSX de Nvidia, hasta ahi no hay ninguna novedad y los SPE no hacen falta. Pero podemos asignar a los SPE a hacer tareas concretas:

-Un SPE controla el trafico de los coches.
-Un SPE la meteorologia del escenario.
-Un SPE la policia cuando te persigue, como se organiza y todo (vamos, la IA de la poli).
...

Pueden darse muchas aplicaciones ahi, solo se trata de dividir el codigo en diferentes programas que se ejecuten al mismo tiempo y que esten sincronizados, pero normalmente los SPE se usarian para subprogramas recursivos (IA, Físicas del juego...).
Si solo que los SPE's solo sirven para cálculo en coma flotante, por lo que no se les puede asignar cualquier tarea. Aparte de que necesitan del core principal para rular.
No he leido en profundidad los documentos, pero según tengo entendido, los SPE no son buenos en cálculos que requieran de muchas ramificaciones, como puedan ser la IA o la Física, sin embargo Epic afirma que se puede hacer la física con los SPE de forma notable, como digo tendría que leerme de qué va el asunto.

Lo que si afirmo con más certeza es que los SPE necesitan del procesador principal para que les proporcione datos, ya que ellos tienen su propia memoria direccionable de forma independiente, y que pueden comunicarse entre ellos pasándose datos, no se si necesitan del PPE para esto último. Cuando lea los PDFs en profundidad espero que todo quede más claro. Voy a pasarlos al PDA para tenerlos siempre a mano ;)

PD: Los SPE también tienen unidades de cálculo entero.
Los SPU pueden hacer hasta 4 operaciones con enteros de 32 bit por ciclo en ningun caso son más lentos haciendo calculos con enteros que con coma flotante.

Un hilo de ejecución de un SPU una vez iniciado por el PPU con una DMA no necesita nada del PPU para seguir funcionando, se traen las instrucciones y datos que necesiten de la memoria principal usando DMA y graban los resultados por DMA tambien. Todas las comunicaciones entre SPUs y el PPU se hace por el bus interno de 300GB/s.

Vamos en una arquitectura multicore "normal" para inciar un thread en otro core lo que se haces es usar una funcion que basicamente dice "ejecuta lo que hay en tal dirección de memoria" y probablemente se produce un fallo de cache de l1 o l2, la unica diferencia con los SPU es que la funcion que crea su thread les manda lo que tienen que ejecutar a su memoria local directamente.

La unica limitación que tienen respecto al PPU me parece que es algunas funciones de entrada/salida que solo puede hacer el PPU.

En los calculos de fisicas no hay saltos predecibles solo dinamicamente asi que no ganas nada teniendo un predictor dinamico de saltos.
deathkiller escribió:Los SPU pueden hacer hasta 4 operaciones con enteros de 32 bit por ciclo en ningun caso son más lentos haciendo calculos con enteros que con coma flotante.

Un hilo de ejecución de un SPU una vez iniciado por el PPU con una DMA no necesita nada del PPU para seguir funcionando, se traen las instrucciones y datos que necesiten de la memoria principal usando DMA y graban los resultados por DMA tambien. Todas las comunicaciones entre SPUs y el PPU se hace por el bus interno de 300GB/s.

Vamos en una arquitectura multicore "normal" para inciar un thread en otro core lo que se haces es usar una funcion que basicamente dice "ejecuta lo que hay en tal dirección de memoria" y probablemente se produce un fallo de cache de l1 o l2, la unica diferencia con los SPU es que la funcion que crea su thread les manda lo que tienen que ejecutar a su memoria local directamente.

La unica limitación que tienen respecto al PPU me parece que es algunas funciones de entrada/salida que solo puede hacer el PPU.

En los calculos de fisicas no hay saltos predecibles solo dinamicamente asi que no ganas nada teniendo un predictor dinamico de saltos.


Si, es eso más o menos. En el SPE/SPU hay 2 unidades FXU y FPU, la FXU es una unidad que hace 4 operaciones de enteros y 4 de coma flotante mientras que la FPU hace 4 de coma flotante, todo esto por ciclo de reloj y hablando unicamente de un SPE/SPU. Luego si le añadimos que soportan multihilo y tienen su propio set de registros y su memoria local asignada pues ya tenemos a uno de los SPE.
the_master está baneado del subforo por "No especificado"
Ya veremos si el FPX es aplicable grácias al 2xPPS o por contrario tendremos cuellos de botella entre el PPS y los ROFFO s
Coff, entraron los tecnicos a saco :O .

Segun vosotros...¿le veis potencial REAL al Cell?¿Seran los SPU algo mas que maquinas de calculo en como flotante como nos han intentado vender algunos?...
El potencial depende de lo que el desarrollador quiera hacer. Una manera de simple de usarlos es para fisicas (demo de los patos) y para calculo de iluminación (demo de la cabeza).

Tambien es facil cuando este terminado el RSX usarlos para calcular poligonos (Vertrex Shader).

Lo más complicado seria usarlos para la inteligencia artificial aunque es viable (si consiguieron hacer una buena IA en los MGS2-3 hacerla en un SPU sera facil).

Hay que tener en cuenta que para el resto de codigo del juego el PPU se sobra ampliamente (por que los juegos tengan mejores graficos no van a consumir más CPU automaticamente).
the_master escribió:Ya veremos si el FPX es aplicable grácias al 2xPPS o por contrario tendremos cuellos de botella entre el PPS y los ROFFO s


Ten cuidao con los ROFFO s que son mucho ROFFO s
nxname escribió:PD: no soy anti sony, solo que a mi y a tres amigos se les petó el lector y desde que nos cambiamos a GC y Xbox no ha vuelto a suceder.


Supongo que tú solo te cambiaste a Xbox, que GC es pa niños por no tener GTA's, ¿eh?
60 respuestas
1, 2