Jump to content
  • Buscar en
    • Más opciones...
    Encontrar resultados que contengan...
    Encontrar resultados en...

Archivado

Este tema ahora está archivado y cerrado a otras respuestas.

Dosflores

Información resumida sobre el Cell

Publicaciones recomendadas

sunrider Gran Lobo Sif

Publicado
vida restante: 100%
Jeje... me los he leído todos! Imagen Enviada

Yo recomiendo "Dioses Menores". Para mí el mejor de todos con diferencia! Y ahora zanjamos esto antes de que nos manden al planeta off topic!

Gracias de nuevo por explicarme lo del chip Cell (si cuela, cuela...) :)

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

pc_javi IGNIS EXCUBITOR

Publicado
vida restante: 100%
Los compiladores normales no paralelizan el codigo... el compilador del cell si. Ya lo dijeron cuando la demo de la decodificacion simultanea de dvds.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Megatonator Sir Alonne

Publicado
vida restante: 100%
Los compiladores que paralelizan son una utopía. Quien quiera creersela que se la crea, como el vídeo del KZ.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

deathkiller Lord Boros

Publicado
vida restante: 100%
No digeron que fuera completamente automatico, se basa en dar directibas para que el compilador haga la paralelización y la sincronización .

No es ningun milagro, solo sirve para casos de paralelismo extremo como el que mostraron no sirve de nada si los procesos se tienen que comunicar entre si.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Dekkard IGNIS EXCUBITOR

Publicado
vida restante: 100%
La paralelización automática del compilador de Cell se refiere al ordenamiento de instrucciones para aprovechar mejor la segmentación, ya que el Cell hace emisión de instrucciones en orden (y no reordena, como ha sido la tendencia en muchas CPUs modernas).

También puede referirse a la autovectorización, con lo cual sustituiría un bucle de N pasadas por uno de muchas menos, mediante el uso de instrucciones SIMD sin que el programador tenga que optimizar dicho código.

La división del código en threads sigue siendo cosa del programador.

Por cierto, si mal no recuerdo están usando el GCC como compilador en el kit de desarrollo de IBM, y el código del GCC se puede bajar y usar gratis (curiosamente la versión 4.0, lanzada hace poco, añadía autovectorización y curraba en ella gente de IBM).

También leí en la lista de correo del núcleo de linux los parches de IBM para que el 2.6.11 funcione sobre Cell. Hacen una cosa muy rara, la memoria compartida de los SPE/SPU se usa como un sistema de archivos, y añade una función que crea una hebra y la "manda" a uno de los SPE.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Megatonator Sir Alonne

Publicado
vida restante: 100%
Dekkard, yo entiendo que se refiere a la autovectorización sobre todo, es lo más que puede aspirar el compilador. Pero vamos, sólo es de aplicación a una pequeña parte, y lo cierto es que los programadores suelen trabajar directamente con vectores en esos casos en los videojuegos, con lo que no creo que utilicen mucho esa funcionalidad.
El ordenamiento de instrucciones no creo que se llame paralelización automática. Pero sí, es cierto que esa característica es necesaria y viable y funciona, al menos decentemente. Nunca tan bien como la reordenación por CPU pero algo es algo. Por cierto, la ejecución In Order tambien es característica de los cores de x360, así que veremos el mismo tipo de reordenación por parte del compilador.

¿Qué memoria compartida de los SPE?

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

deathkiller Lord Boros

Publicado
vida restante: 100%
Los 512kb de Cache de Nivel 2 creo que estan compartidos aunque por diseño no sea recomendable que los SPU la utlicen (tambien creo que los "local store" de cada SPU se puede acceder directamente desde todos los demas a traves del bus aunque tampoco estoy muy seguro).

Lo que Dekkard menciona se llama paralelización a nivel de instrucción, cualquier estructura con pipeline se suele decir que hace cosas "en paralelo" (como los SPUs son procesadores de 2 vias tiene más sentido en este caso).

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Dekkard IGNIS EXCUBITOR

Publicado
vida restante: 100%
Megatonator, cierto que no es paralelización automática, en el sentido en que debería ser (más bien en el que lo han querido vender).

Aun así la autovectorización ayuda al eliminar la necesidad de usar las instrucciones en ensamblador para manejar vectores, limitándose en su lugar a manejar arrays en lenguajes de alto nivel (más fácil, rápido y legible) mientras el compilador se ocupa de que el código en ensamblador ya opere con vectores en lugar de elementos individuales.

La efectividad del reordenamiento de instrucciones estático (por software) frente al dinámico (por hardware) depende del compilador. Todavía hay que ver lo que tiene IBM con su compilador, pero Intel ya probó con HP en el Itanium y la cosa no fue muy bien. Veremos si IBM logra hacer con su compilador un nuevo avance que justifique la manía de resucitar la arquitectura VLIW.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

ultimamente HARENA TIGRIS

Publicado
vida restante: 75%
pufff,mirar con lo parejas que tan ps3 y xbox360,la cosa se va a decidir en lso juegos,darme un gta,darme un kotor,darme un tekken,darme un shenmue,darme un halo,un pro,un gran turismo,y os dire que consola pillo.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Forista Baal

Publicado
vida restante: 100%
Yo solamente quiero saber si la PS3 puede hacer cosas como la Tech Demo del FFVII como mínimo y ya estoy contento XD

IGjGf12.gif

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

pc_javi IGNIS EXCUBITOR

Publicado
vida restante: 100%
Lo de la reordenacion de las instrucciones por software fue lo primero que se probo cuando aparecio la segmentacion, puesto que implementar por hardware todo lo necesario para leer las instrucciones con antelacion, detectar los conflictos y reordenar las instrucciones sin crear otros es muy complejo.
Yo creo que a la ps3 no le saldra mal, ya que es un formato cerrado. Lo malo es para sacar el cell en ordenadores personales, ya que habria que recompilarlo todo (excepto que sacasen una version del cell mejorada), aunque esto ya se esta haciendo con los procesadores de 64 bits de AMD.
Sobre la autovectorizacion esa... ahorrara muchos disgutos la verdad, estoy harto de los & y los *.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Megatonator Sir Alonne

Publicado
vida restante: 100%

Sobre la autovectorizacion esa... ahorrara muchos disgutos la verdad, estoy harto de los & y los *.

¿Qué tendrá que ver la velocidad con el tocino?

 

La autovectorización lo que hace es que si tienes:

Z1 = X1 + Y1

Z2 = X2 + Y2

Z3 = X3 + Y3

 

en vez de hacer 3 sumas, hace una, pasando eso a vectores:

Preparo vector X.

Preparo vector Y.

Sumo vectores X e Y y guardo en Z.

 

cuando tienes unidades de cálculo vectorial es más rápido.

 

La autovectorización es útil sobre todo con código general con muchas matemáticas. La mayoría de las operaciones en coma flotante en consolas son vectores "per se" (son 3D, con sus coordenadas X, Y y Z), con lo que las operaciones vectoriales se utilizan de manera natural, sin que el compilador tenga que autovectorizar. Pero vamos, en algún caso puede venir bien.

 

En Cell los SPEs se pueden programar en C, en vez de ensamblador como con el EE de PS2. Así que si precisamente habrá algo son & y *.

 

Pero vamos, los hilos de ejecución, para que pueda ir a cada core, son tarea explícita del programador.

 

En arstechnica hay un artículo hoy muy interesante sobre las limitaciones de estas aproximaciones OOOe y demás que comparten Cell y X360, y las limitaciones que tiene.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

pc_javi IGNIS EXCUBITOR

Publicado
vida restante: 100%
... demasiadas cosas se llaman vectores... como se mencionaba al mismo tiempo el compilador pensaba que hablabais sobre estos vectores.
Vamos que segun lo comentado, utilizaria los vectores, como hoy dia se utilizan los real¿?, todo por hardware, o no pa tanto¿? Y si esto es asi, la IA no se yo que tal la manejara por que no tiene que ver con esto, pero la fisica la deberia manejar con la minga... vamos digo yo, que son toda una retaila de formulas vectoriales y la madre que las pario a todos (tengo un poquito de mania a la fisica).

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

KINSLAYER_3 HARENA TIGRIS

Publicado
vida restante: 100%
gracias por la info. pero una pregunta (que al parecer aqui la gente sabe bastabte sobre el tema) el procesador de XBOX 360 en que sentidos es peor, en cuales es mejor y en que se puede notar?
es que no lo tengo claro....
gracias por la info, de nuevo, y si creeis que esto va a dar en una guerra de consolas,no respondais, por favor....

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web

Dekkard IGNIS EXCUBITOR

Publicado
vida restante: 100%

La autovectorización es útil sobre todo con código general con muchas matemáticas. La mayoría de las operaciones en coma flotante en consolas son vectores "per se" (son 3D, con sus coordenadas X, Y y Z), con lo que las operaciones vectoriales se utilizan de manera natural, sin que el compilador tenga que autovectorizar. Pero vamos, en algún caso puede venir bien.

Que las operaciones se usen de forma natural para el programador no significa que el compilador deje de "autovectorizar". De hecho el ejemplo por antonomasia de la autovectorización es la multiplicación de un escalar por un vector. Antes de la autovectorización, toda operación vectorial en la CPU se escribía a base de ensamblador, porque si un compilador no autovectoriza, no aprovecha las instrucciones vectoriales de la CPU.

 

Aqui hay ejemplos de código que el GCC autovectoriza:

 

http://gcc.gnu.org/p...html#vectorizab

 

Incluyendo algunos tan naturales como éste:

 

for (i=0; i

b = x;

 

Aunque si te refieres a otro tipo de vectores, o APIs específicas del SDK de algunas consolas con librerías previamente optimizadas, podrías estar en lo cierto.

Compartir este mensaje


Enlace al mensaje
Compartir en otros sitios web
Guest
Este tema está cerrado a nuevas respuestas.

  • Explorando recientemente

    No hay usuarios registrados viendo esta página.

  • Crear nuevo...