Sobre el chip CELL

2.277 mensajesdesde 2004
0 agradecimientos
Bueno, no sabía muy bien si abrir un nuevo post para este tema o usar alguno de los existentes, pero creo que será mejor tener uno propio (si es que el tema interesa).

La cuestión es que el otro día estuve hablando con un colega de la universidad, que estudia informática y tiene una asignatura de procesado concurrente (o sea, trabajar con múltiples procesadores con diferentes procesos a la vez).

El caso es que por lo visto el profesor que da la asignatura es un experto en la materia, y tiene un grupo de estudio y análisis en la propia UPC (Universidad Politècnica de Catalunya). Pues bien, se ve que el hombre tiene un acuerdo con Sony para estudiar y evaluar las posibilidades del CELL.

Y según me cuenta mi colega, el hombre está absolutamente encantado con el chip. Dice que es una auténtica maravilla en temas de multi-procesado, y que el principal problema que le ve es que es demasiado avanzado para su tiempo. Por lo visto el CELL incorpora una serie de órdenes internas para gestionar el multi-proceso que están realmente muy bien diseñadas y permiten obtener un rendimiento brutal.

El problema claro, es que exige una programación específica y un aprendizaje del mismo que no todas las compañías pueden permitirse. En definitiva, la moraleja del cuento es que según este hombre el CELL es una auténtica virguería técnica y con unas posibilidades increíbles. El problema es que quizá actualmente sea demasiado adelantado para el uso que se le va a dar, que es el de jugar.
 
El caso es que por lo visto el profesor que da la asignatura es un experto en la materia, y tiene un grupo de estudio y análisis en la propia UPC (Universidad Politècnica de Catalunya). Pues bien, se ve que el hombre tiene un acuerdo con Sony para estudiar y evaluar las posibilidades del CELL.

Ostias, y no sabrás si éste señor tiene como apellido Calomarde?

Lo he tenido estos últimos meses dándome precisamente una asignatura de programación concurrente en VHDL para FPGAs.

Y sobre lo que comenta, verdaderamente es un problema que requiera una personalización y aprendizae de alto nivel. Al final, será Sony, Konami con su MGS, y puede que Square con los FF quienes se especialicen en cómo trabajar sólo para ella y sacarle así más rendimiento que nadie.
 
Pues ahora mismo no sé el nombre, pero si estás interesado puedo hablar con el colega para preguntárselo.

Y sobre el tema de la especialización, está claro que sacarle el jugo a la PS3 llevará su tiempo. De todas maneras, ya pasó algo así con la PS2, que recuerdo que al principio todos los programadores se quejaban de lo difícil que era manejarla y ahora ya ves.

Ahora parece claro que Sony ha hecho una apuesta por tecnología a largo plazo...veremos como les van al final las cosas.
 
Me interesa, me interesa... :P

Esta discusión la llegamos a tener en el megapost, creo pero no me importa repetir mis conclusiones ya que has abierto otro post. Yo personalmente creo que la principal virtud del Cell que es el multiproceso es a la vez su mayor defecto. Me explico.

Ya dije una vez que yo he hecho temas de multiproceso, y está muy bien, pero como dice Visitor, se necesita programación específica, ya no para el Cell en particular, sinó para el multiprocesador en general.

La programación paralela requiere otro nivel de abstracción más, que es la segmentación de un problema, siempre y cuando este lo permita. Un sistema lineal, por ejemplo, necesita que se acabe un cálculo para efectuar el siguiente, por lo tanto, irá igual de rápido en un monoprocesador que en un multiprocesador, ya sea de 8, 16 o 1000 CPUs. Independientemente de esto, segmentar un problema significa que repartes cálculos entre los diferentes procesadores, pero aún así, siempre tiene que existir un thread "central" que recoja esos resultados y los junte. La eficiencia de un multiproceso depende siempre de dos factores, segmentar bien los cálculos y un proceso central óptimo. A todo esto también se junta el hardware central, CPU y buses de datos, todo tiene que estar pensado para soportar este multiproceso.

La gente que programe el Cell (PS3 en este caso), en ese sentido, tiene que estar mucho mejor preparada que el resto, porque por mucho que se venda, el multiproceso no se hace sólo.

Lo que no sé es la posibilidad de los procesadores Cell de ejecutar instrucciones, cosa que es básica para el multiproceso "real". Si un Cell lo único que puede es efectuar cálculos, la gente de la UPC flipará porque realmente es lo que ellos usarán, para programar no es que sirva de tanto como venden. Por ejemplo, se hablaba de un uso del Cell que consistía en usar un procesador para calcular el movimiento del pelo de un personaje. Bien, un cálculo así consiste en unos parámetros de entrada (posicion anterior, variables como gravedad o viento) y una salida (posición actual). La cpu central, tendrá que mandar unas variables y recoger una salida, interpretarla y mandarla a la gráfica junto con el resto de cosas, en esta situación se podría ganar entre un 20 y un 50%, pero no más.
 
Ya tardabas en entrar Findor! :juas

A ver si hablo otra vez con el colega y le pido datos más específicos, a ver si sacamos algo más de chicha!
 
No, si todo eso es muy bonito. :) Pero el uso masivo del multiproceso tiene también inconvenientes... y eso lo ha aprendido Sony a sangre y fuego, viéndose forzada a DESACTIVAR unidades de proceso del Cell, so pena de que les saliera ardiendo. Y es que el consumo energético (y por ende la disipación) se incrementan exponencialmente.

Vamos, que no todo el monte es orégano. Aunque la tecnología promete, y estoy seguro de que veremos cosas mejores que Cell. ¿PS4, quizás...?

Manu1oo1
 
Visitor Miyamoto dijo:
Ya tardabas en entrar Findor! :juas

A ver si hablo otra vez con el colega y le pido datos más específicos, a ver si sacamos algo más de chicha!
Es que me obligais, hombre :juas

Me gustaría saber más del Cell, más a nivel teórico que técnico. Sobretodo como se programa. Una buen procesador de física lo que hace es calcular cosas por su cuenta, es decir, tu le pides la trayectoria de una partícula con unos parámetros y lo único que haces después es consumir de vez en cuando la posición, pero es la tarjeta la que se ha programado con la partícula.

Si el Cell no hace eso sinó lo que digo, recibir, calcular, devolver y es la CPU la que lleva la "carga", en realidad no hay TANTO beneficio, ya que en el fondo hay un cuello de botella que es el hilo principal del programa.

Mi "preocupación" hacia los programadores de PS3 es que para la segmentación no hace falta saber programar, sinó saber muchas matemáticas, eso puede ser muy determinante para ajustar costes de desarrollo, si para hacer un juego de PS3 necesitas más gente y más diversa...

Venga, queremos saber más!!! :juas
 
Atrás
Arriba