zheo parece que te duele que digamos que la 360 supera a la PS3 en algunas cosas. Tienes la actitud de un niño pequeño pataleando.
zheo escribió:Pero la afirmación "la mayor parte de la potencia del los juegos no es de coma flotante" es falsa. Simple y llanamente.
Por supuesto que es verdadera, en el contexto en el que la estaba diciendo, es decir, al hablar del Cell o del triple core de la 360. Menos de un 20% del código ejecutado por el procesador principal en los juegos publicados en los últimos 5 años usa la coma flotante vectorizada. Si lo dudas échale un vistazo al código fuente de los juegos de fuentes abiertas que se pueden encontrar en Internet, incluido el Quake III.
zheo escribió:En qué te crees que programas con la PS3, ¿en BASIC?
Si no es en C/C++ dinos tú en qué se programan. Si crees que se programan en otra cosa estás MUY equivocado. Cuando se cuenta con tiempo suficiente en ocasiones se pueden optimizar pequeñas partes del código en ensamblador, pero el resto C/C++.
zheo escribió:Y por otro lado, no se si habrás programado mucho en multihilo, pero con C++ dista mucho de ser "simple y llano"
Sí que lo he hecho, mucho más de lo que puedas pensar. He sido profesor de programación durante 5 años y dedicaba más de 4 meses al año sólo a la programación concurrente con POSIX threads. Aunque he trabajado también con los hilos de Windows, y en mis proyectos personales he usado los hilos de la biblioteca Boost; además dí dos asignaturas de programación concurrente con ADA.
Mi apelativo de "simple y llano" sólo lo aplicaba al lenguaje C++, es decir un C++ sin extensiones como las que son necesarias para programar las vectoriales SPUs.
La programación multihilo no es que no sea "simple y llana" en C++, esque no lo es en casi ningún otro lenguaje. Sin embargo con las tecnologías modernas de autoparalelización y las extensiones del estándar OpenMP (presentes en Visual C++ 2005), se simplifica mucho la programación multihilo de varios cores SIMÉTRICOS.
zheo escribió:Por último, al utilizar un core para IA y físicas ya estás dividiendo el trabajo, y en PS3 puedes usar un SPU para físicas y el PPU para IA y el proceso principal.
Dicho de otro modo, no creo que en PS3 veamos enemigos estúpidos...
Tampoco en la 360 con 6 hilos de ejecución.
Tienes una fijación con la 360.
Yo ya daba por supuesto que todos saben que la 360 tampoco es aprovechada al máximo!!
Yo siempre he confiado en la potencia del Cell. Alabo su capacidad de cómputo. Su procesamiento masivo en coma flotante le va a permitir hacer cosas sorprendentes, sobre todo en los juegos futuros en los que la coma flotante tomará cada vez más relevancia. Pero vuelvo a repetir: el problema está en la dificultad que hay en programarlo. Tareas como la sincronización entre las SPU (que debe realizar el núcleo PPC) no son nada triviales. Su torpeza en la ejecución eficiente de saltos condicionales anidados tampoco colaborará.
Otro gran problema de la arquitectura es el ancho de banda en su comunicación con la RAM: Si eres capaz de realizar muchos cálculos tienes que asegurarte que no exista un cuello de botella con la memoria principal. En mi opinión, para que las SPUs no se ahoguen entre ellas deberían haber dejado al menos un ancho de banda de unos 35GB/s, frente a los ~20GB/s que han dejado en la realidad. Es decir que el límite no estará impuesto por la potencia bruta en coma flotante, sino por la capacidad de leer y escribir datos en memoria con la suficiente fluidez.
Y fijémonos que el ancho de banda es similar (y en ciertas cosas inferior) al de la 360.
¿Por qué en la 360 no metieron 4 cores PPC? Entre otras cosas porque el ancho de banda que es de unos ~20GB/S se diseñó para que no supusiera un cuello de botella cuando estuvieran los 3 cores con una E/S al máximo. Si se metiera un core más se tendría que haber calculado un ancho de banda de unos 27GB/s. En caso contrario los micros se interrumpirían unos a otros demasiado.