FlashBackMan360 escribió:
¿Fue Microsoft forzada a sacar una máquina de juegos antes de lo previsto, estando pronosticada para finales de 2014?
En el Roadmap de éste post, encontraréis ésta respuesta entre otras, tales como una leve comparativa de arquitecturas entre máquinas, el por qué del sufrimiento con algunos juegos Third Party en XBox One en su salida, y el por qué juegos como Ryse o Forza están muy por encima del resto, la explicación a los SDK de desarrollo primerizos con DUAL-VGA. por qué elegir DDR3+esRAM en canal troncal... etc.
Con la salida a la luz del secreto a voces mejor guardado por parte de Microsoft la gente está empezando a entender lo que éstos tenían entre manos. Vamos a tratar de explicar la confusión generada entre API's y arquitecturas, como siempre se intenta, lo haré todo lo legible que pueda para los que necesitan la información desmenuzada.
https://twitter.com/XboxP3/status/446873135594225664
Algunas características de DX12 están presentes desde el inicio de la máquina, "léase" Ryse y Forza, éstos usaban una alpha del controlador nativo de DX12 para XBox One, que como sabemos, es completamente nativo en la máquina de Microsoft.
Muchos de vosotros recordaréis que en febrero existió una actualización de SDK'S por parte de Msoft hacia su máquina, donde múltiples desarrolladores exclamaron que se había mejorado mucho la gestión de recursos, abordando 1080/60 facilmente. Ésto representa la evolución de los drivers alpha de los estudios first party de Msoft, a la base "beta" para third partys. La implementación real y completa existirá en 2015. Es por esto y no por otra cosa por la que hasta hace poco se ha usado para las terceras compañías el driver "mono" una API de 32 bits incapaz de hacer trabajar a la máquina en DP (doble precisión) ya explicada en otros post.
http://www.3djuegos.com/comunidad-foros/tema/28899916/0/supercomputer-based-soc-apu-basado-en-super-computacion-tecnologia-2014/
Además, las middleware, simplemente no llegaban a tiempo de estar preparadas. Los motores gráficos requieren para la implementación de DX12 de forma nativa, que trabajen con estructuras de 64 bits, los mas avispados habréis notado que todas las actualizaciones de motores gráficos en la GDC trabajan a 64 bits y DX12 nativo. Conociendo las arquitecturas de la X1 y la PS4: La GPU de XBox One no es una GPU GCN en toda regla y norma, está modificado de forma masiva,
http://www.3djuegos.com/comunidad-foros/tema/29226108/0/directx12-next-gen-gpu-x1-2014-vs-modern-gpu-ps4-2012/
microsoft requería una GPU multitarea desarrollada para aplicaciones nativas de la futura API DX12. Originalmente hicieron varios modelos de SOC con los correspondientes SDK apuntalando en ella una GPU DUAL discreta y separada de forma nativa por naturaleza (físicamente) pero Microsoft y AMD llegaron a un acuerdo de 3 Billones de dolares para crear un diseño completamente nuevo que no encareciera la consola y que no hiciese que fuera un tostador en tema de temperaturas.
El diseño del GPU está tomado desde la base de un núcleo GCN efectivamente, ya que con ello permite que el núcleo maneje los dos hilos de hardware de forma lógica y DUAL que básicamente significa que tenemos un GPU FÍSICIO con dos tareas de renderizado paralelas con la posibilidad de gestionar tareas y recursos asignados de forma externa a bufers o otros procesadores de apoyo, maximizando la multi tarea. Se diseñó el concepto de alta y baja prioridad para maximizar las fluctuaciones de demanda de recursos que hacen que el 60% del tiempo, CPU'S y GPU'S estén esperando peticiones de proceso estándar. Lo que significa que XBox One tiene un GPU plenamente pensado para optimizar y maximizar el rendimiento del mismo.
Uno se pone a pensar en las arquitecturas simples actuales derivadas del x86 y se da cuenta que el audio que se procesa en la actualidad desde la GPU está empezando a tomar una altura y unas características que hacían consumir muchas operaciones por ciclo, por lo que Microsoft pensó en hacer un bloque a parte y generar con tecnología "tensilica" un DSP y así evitar el gasto de cómputo extra. Esto es una descarga muy importante, ya que en la actualidad el audio está tomando alrededor de 0,200tflops. Microsoft con éste movimiento quería que el la posibilidad del recurso de gestión en CPU estuviera libre así como el de procesamiento de cómputo, la parte del GPU.
La arquitectura de XBox One está pensada para las tablas nativas de gestión de recursos de DX12, por eso se insertaron en el SOC los coprocesadores de hardware así como los 4 motores de movimiento de datos, cada uno con lógica propia y capacidad de gestión en paralelo si fuera necesario.
Evidentemente, las actuales VGA del mercado "compatibles" con DX12 lo hacen a través del software, el driver Direct3D12, por lo cual se necesitará mucho más cómputo global para generar el mismo efecto visual. Éste es un paso más para entender que en la actualidad entre CPU y GPU a pesar de que la coherencia se aumentó, las colas y la ejecución del código no estaban optimizadas, provocando esperas que impedían rendir al SOC el 100% del tiempo.
Existen multitud de cosas de la pasada generación de consolas en general que impedían rendir al hardware más allá del 40% del tiempo y que ahora, ya no están ahí gracias a la arquitectura de XBox One, además Kinect 2 tiene su propio hilo de gestión de recursos y sus procesadores dedicados deja al sistema trabajar a pleno rendimiento.
Ahora, todo es eficiencia, todo es el provecho y la gestión del recurso disponible, no la fuerza bruta. La época donde más Tflops es mejor acabó, hay que dejar atrás el misticismo y la mentalidad obsoleta de generaciones pasadas.
Todos los viejos motores gráficos (middleware) no utilizaban todas estas características de gestión de recursos en alta y baja prioridad de forma nativa a través de las tuberías de renderizado, ni usaban coprocesadores de movimiento y gestión de recursos. Así que optenemos que la primera API de microsoft que ofreció a las third party denominada "mono" bloqueaba el acceso a bajo nivel de la arquitectura. La API beta ofrecida en febrero, denominada "stereo" tiene una lógica DUAL en 64bits y una carga completa en el hardware a través de DX12.
El dolor más grande para los desarrolladores a la hora del lanzamiento de una máquina pensada para 2014 fue la gestión de recursos de un hardware novedoso con unos drivers inacabados. En el inicio de los tiempos, (algunos recordaréis por las polémicas) los SDK de desarrollo de XBox One tenían 2 tarjetas gráficas en CROSSFIRE, de forma concreta 2x7970 para lograr emular la tecnología que se nos venía encima puesto que los drivers evidentemente no estaban listos. Sólo las first party tenían acceso al driver ALPHA (Ryse Forza). Microsoft sabiendo que a través de Sony y su lanzamiento prematuro se verían obligados a sacar la consola con antelación a lo previsto, dotó a la máquina de un poco de más poder en SP, (Single Precisión) acelerando el hardware en Hz (hercios) tanto como fue posible dentro de la linea de flotación segura.
Intentemos comparar lo básico; El diseño de la GPU de PS4 es un diseño moderno y análogo de lógica representativa única. 1.8 Teraflops de precisión y coherencia simple sin dejar de recordar que la GPU de PS4 se ve obligada a abordar la carga de gestión del AUDIO a través de su CPU y el proceso del mismo a través de la GPU. Añadiendo a ello también la gestión del recurso de su cámara, que también es capaz de trabajar vértices de movimiento en un cuerpo humano a un nivel de precisión a medio camino entre Kinect 1 y 2. Los que entendáis como funciona un canal de instrucciones sabréis que ésto, son una cantidad desorbitada de instrucciones.
XBox One es una GPU digital, es una representación de lógica dual y no necesita ocupar recursos ni para audio ni para kinect, el GPU en cuestión es "IDENTICO" a un GPU DUAL nativo (físico). También es un GPU DX12 completo al 100% por lo antes mencionado gracias a los motores de movimiento de datos, aceleradores y viceversa, es a nivel de efecto 2 GPU's (2headsbest than One. DX12 Slogan) pero hecho por capas de hardware de alta y baja prioridad a través de optimizaciones y renderizados paralelos que a su vez tienen lógica dual. Esta y no otra es la evolución de la GPU, al igual que el primer procesador en el mercado de doble núcleo. Ahora los CU's (Core Unit) de la GPU de XBox One y los nativos DX12, pueden emitir de forma efectiva y dependiendo de la middleware usada entre
2 y 4 veces más de operaciones por ciclo de instrucción. por lo que los 14 CU's de XBox One insertados en el SOC (recordemos, 2 desactivados) se ven reforzados por ésta regla.
Además por si fuera poco y empezando a superar el misticismo hacia el "azure o nube" de microsoft, y no en vano, microsoft plantea una modificación en plano donde el controlador de red se ve integrado directamente dentro del SOC y dejando fuera de juego al NB. Esto permite que la latencia interna y la gestión del recurso esté libre y sea instantánea desde la nube. Ahora los datos recibidos desde internet pueden trabajar directamente en un movimiento pensado claramente para las descargas de recurso masivas de efectos tales como iluminación, físicas, IA, haciendo que desaparezca el lag producido en hardware's que no poseen ésta tecnología integrada. Rompiendo el mito, ¿GDDR5 es mejor que la configuración actual que posee XBox One? Microsoft, compañía de software que entiende perfectamente lo que necesita y requiere para trabajar con un hardware de nuevo nivel, es tonta y se flagela ella sola? Vamos a verlo a través de varios ejemplos. Comprendamos XBox 360.
La memoria GDDR5 trabaja 176 GB/s, pero el número real y que importa es la cantidad de bits, que son 256bits, mientras que el EDRAM de XBox 360 está trabajando a sólo 128 bits pero con transferencia DUAL o lo que es lo mismo, lectura / escritura . PS4 GDDR5 176GB/s 256bits XBOX 360 26GB/s 128Bits
Sabemos que AMD en la GDC a mostrado un ROADMAP interesante que hace que se descubra que va a ir a una memoria apilada en las próximas GPUs ¿y eso por qué?, pues es bastante sencillo, son límites físicos del material de producción, el coste de la alimentación del sistema se agrega a la mayor demanda de potencia necesaria y por lo tanto, más calor se obtiene. No se puede simplemente seguir añadiendo CU's a los rendimientos decrecientes del silicio, al igual que tampoco se pueden poner más silicio dedicado a memoria, sería inviable. Por lo cual, AMD y la industria en general adopta el diseño de apilación.
Os pongo un ejemplo. PS4 GDDR5 176GB/s 256bits de ancho de banda Memoria apilada (stacked memory) 125GB/s 1024bits de ancho de banda. Se puede ver en el ejemplo que la memoria apilada tiene 4 veces más de ancho de banda. Sabiendo ahora que XBox ONe no tiene una GPU de la misma generación que la PS4 y que está modificada muy altamente aquí se lanzan las pruebas que demuestran varias cosas.
Terminemos de entender "La optimización de microcódigo sensible " PS4
http://develop.scee.net/files/presentations/gceurope2013/ParisGC2013Final.pdf
Léase, página 50
" ¿Por qué tener este control de código fino? "
XBox One no posee control de código fino por que no lo requiere(
software de estructura DX12 para aprovechamiento OPENGL). Es un GPU
basada en la alineación de GPU'S de AMD de la serie R9 280, 270X y 270 que están ligeramente modificadas en compatibles en referencia a la gama 7000, con la que basan PS4 (pc).
Ejemplo básico:
Por un lado tenemos la única tarjeta gráfica de la serie 6000 capaz de gestionar la memoria como la serie 7000. HD6990 (2gpu fisicos) con 3072 procesadores de flujo (stream processors), por otro la GPU HD7970 (1gpu físico) con 2048 procesadores de flujo pero ambas tienen partes GCN con cambios en la estructura de gestión de la memoria tales como el ancho de banda de E/S que es más potente que su generación anterior lo que aplica menos generación de calor a su vez. Ambas usan una tecnología similar de gestión a pesar de ser generaciones diferentes.
XBox One fue fabricada con tecnología existente y optimizada para el futuro.
Nick Baker dijo: No, queríamos un solo silicio, como dije, si hubiera habido un período de tiempo diferente (forzados a sacar la consola un año antes) o las opciones tecnológicas hubieran estado disponibles, tal vez podríamos haber tenido una tecnología diferente (DDR4), pero no por el producto requerido(capacidades técnicas requeridas) en el plazo de tiempo, la inclusión de ESRAM era la mejor opción para facilitar el ancho de banda que la arquitectura requería"]
Desglosando la esRAM (ESram).(E/S ram) de XBox One.
Dejando de lado el pico de 209gb/s en una sola dirección obtenemos:
ESram 160 GB/s, de flujo ambidireccional a 1024bits de ancho de banda
Nick Baker: La interfaz posee 4 carriles, cada carril - a ESRAM es de 256 bits que componen un total de 1024 bits y eso es en cada dirección "
Todos ellos están conectados a través de una barra transversal y por lo tanto , de hecho, es cierto que se puede ir directamente y de forma simultánea a la DRAM y ESRAM ".
Eso significa que el GPU puede leer / escribir con 1024bits de ancho de banda más los 256bits DDR3. 64x4 tal como el gráfico muestra.
Esto es una configuración de memoria troncal extramadamente nueva. No hay una GPU en el mercado en cualquier lugar y plataforma (ni siquiera el R9 290) que pueda leer y escribir en 1024bits + DDR 3 256bits. 32mb+8GB de memoria bien gestionados y poniendo cada bit en su lugar y con el procesamiento de prioridades y colas trabajando con middlewares de 64 bits adaptadas a la arquitectura de la futura generación de apilamiento de memoria es igual a la configuración de XBox One. Microsoft ha adaptado tecnología existente de forma inteligente.
Andrew Goossen comentó que sería muy interesante que todo el destino de representación computacional no tuviera que vivir de la eDRAM (limitaciones en XBox 360) y así lo hicieron en XBox One, diseñando eSRAM con capacidad de E/S en la cual tenemos la capacidad de desbordar la esRAM en la DDR3 lo cual hace que la esRAM esté totalmente integrada en las tablas de paginación para que se pueda mezclar y combinar ambas memorias a medida que la DDR3 va solicitando recursos.
Por lo cual, la estructura de memoria de X1 no se trata sobre la estupidez de microsoft por crear un hardware, no se trata de abaratar costes de producción, no se trata de cualquier falacia inventada por la "SDF" (sony defence force), se trata sobre crear con tecnología existente la necesidad del futuro.
PS4 GDDR5 176GB/s 256bits de ancho de banda
XBox One Esram 160 GB / s , 1024bits de ancho de banda y sin DDR3
XBox One capacidad total troncal 228GB/s 1280bits de ancho de banda intregando DDR3
Los slices de la GCN apuntan a esto.
AMD próximos GPU de gama high end (alta) de 1 TB/s y 1024bits de ancho de banda. Futuras R9 y R10 con memoria apilable (stacking)
AMD próximos GPU discretos, (gama media, baja) 200GB/s y 1024bits de ancho de banda. Futuras R9 y R10 con memoria apilable (stacking)
Las futuras actualizaciones de las VGA aportan una nueva visión en el concepto de entender la memoria, básicas para el correcto funcionamiento de forma nativa del DX12, ya que potencian el SP hasta 4 veces.
XBox One DX12 nativa, 1.3Tflops SP = un mínimo de 2.6 Tflops hasta 5.2Tflops posibles en DP dependiendo middleware.
Sony ha jugado su carta, lanzando la consola lo antes posible con una tecnología moderna con más tflops en SP que microsoft. No es next gen auténtica y tiene a cambio de lo poco que se ha gastado en el SOC, una máquina acorde a ello. Obligó a Msoft a lanzar la consola sin los drivers y API's correspondientes haciendo uso en la mayoría de third party de sólo 1.3tflops y sin aprovechar la arquitectura de la máquina, además hablando de que las middleware no andaban adaptadas.
A partir del año próximo, API completa DX12, middlewares adaptadas... la primera batalla parece que la venció Sony, veamos quien gana la guerra final.
P.D A pesar de que pienso que Sony hace lo que puede en la industria y va ha ser aplastada por Msoft a nivel técnico, considero que las consolas están hechas para jugar y que al fin y al cabo cuenta la experiencia. Una máquina más o menos potente técnicamente que la otra no nos debería importar si las experiencias que nos brinda su software son exquisitas.
No tengáis duda que cuando merezca la pena tener una PS4, me haré con ella. Cuando salgan los títulos que me atraen más, léase Uncharted y compañia, no pienso escapar la oportunidad de vivir la experiencia jugable que tan mágicamente brinda Sony con sus franquicias... al igual que no pienso dejar de disfrutar las de Microsoft. Siendo un hardcore gamer es lo mínimo a lo que se debería aspirar. A jugar a cuantas más experiencias AAA mejor.
A veces uno entra a los foros y tanta desinformación y tanto troleo gratuito me echan para atrás. La gente tiende a mezclar los escasos conocimientos que poseen y una mezcla con lo "que ellos opinan" que se crean debates de lo más absurdo, que aburren hasta a las cabras.
No vendría mal un poco más de respeto mutuo y aceptación de ideas dispares. Todo el mundo aprendería de todo el mundo en vez de intentar hacer valer su idea por encima de todas. Una idea tonta vs una idea absurda = a troleos y faltas de respeto mutuos. Llevemos el debate con inteligencia. Es más lucrativo. Espero que os haya ayudado a entender lo que pasa y agradezco vuestra lectura. Un saludo a todos.