Profundizando en Xbox One y DirectX 12

  Miguel Mellado, nos sorprendió el otro día con un interesante post que el mismo nombró como entendiendo Xbox One. En este artículo nos comentaba las bondades del esperado...

 

Miguel Mellado, nos sorprendió el otro día con un interesante post que el mismo nombró como entendiendo Xbox One. En este artículo nos comentaba las bondades del esperado Directx 12 y el por qué de la arquitectura de la nueva consola de Microsoft. Todo comienza con una breve explicación de la Ley de Moore que nos llevaba a la reinterpretación de la misma por parte de Microsoft.

Como ya se esperaba y se conocía, los ingenieros de Microsoft no son idiotas, y las claves de la Xbox One son el futuro y la sinergia/eficiencia. Las anteriores consolas de Microsoft se han caracterizado por ser maquinas potentes, optimizadas y sencillas de programar y  algo en lo que cualquier persona puede estar de acuerdo es que el hecho por cual esta vez hayan invertido 10 veces más en el  desarrollo de la nueva consola en comparación con su predecesora para lograr un SoC con estructura NoC de supercomputación y paralelización de tareas a traves de un hardware nativo no es un error de la compañia, nada se ha dejado al azar.

La respuesta para la reciente generación de consolas no podía estar únicamente en la potencia bruta, es algo inviable continuar así en el desarrollo de estas debido a dos factores, el encarecimiento del producto y la electromigración.

De ahí, a la solución pasada por esa re-interpretación de Microsoft sobre las leyes de Moore, la optimización de microcódigo. De aquí Miguel nos recuerda otro problema importante, no solo basta con pensar en el microcódigo, hay que tener una arquitectura de hardware pensada para ello de forma nativa.

Cuando tú le hablas a tu consola a bajo nivel a través de optimización de microcódigo y/o API LowLevel y repartes las tareas de manera inteligente obtienes un aumento de la eficiencia del sistema pero también requieres que “quien comunica como se debe repartir las tareas… 1-sea rápido y preciso comunicando 2-sea capaz de hacer muchas cosas a la vez y 3-cuando transporte esas microinstrucciones tenga buenas carreteras en ambas direcciones.

Ps3-cell

Todos sabemos lo que pasó con la pasada generación, en la cual PS3 tuvo numerosos problemas con el CELL debido a la baja cantidad de memoria que disponía para cada SPU (256KB) y como consecuencia, pese a ser en teoría más potente que Xbox 360 siempre estuvo a la sombra de esta en cuanto a resoluciones y texturas. Para solucionar esto tuvieron que crear un nuevo software que diera el salto del codigo representativo en mosaicos y lo enviara paralelamente a cada uno de los SPU.

Llegados a este momento, entender lo que está ocurriendo en esta fase inicial con Xbox One y el tema de resoluciones es bastante sencillo, algo que ya sabíamos todos y no es precisamente esa falta de capacidad que es arduamente puesta en duda en muchos medios. Xbox One está diseñada para aprovechar este concepto, es decir,  para paralelizar, optimizar, romper, canalizar y estructurar todos sus datos de forma nativa a través de hardware pero ha estado usando un software que no estaba preparado para ello, una API y unas middleware que no entendían de forma nativa el proceso de paralelización (directx 11).

xbox_sram_cache2

Microsoft lleva más de 5 años desarrollando una API en concreto con capacidades nativas “to the metal” a niveles “físicos”. DX12.

Para poder aprovechar esta forma de computación, además de comunicarse rápido hay que poder hacerlo de forma paralela, onmidireccional (NoC), hay que tener capacidad de dar órdenes mientras ordenas, un sistema eficiente¿Por qué este es el camino? Una GPU moderna se pasa hasta el 80% de su tiempo en ciertas áreas y técnicas gráficas sin hacer “absolutamente nada” con lo cual, tienes una arquitectura que es completamente ineficiente y no es capaz de hacer rendir su potencia base (Teraflops) como debería.

El objetivo es precisamente eliminar esa carencia o inactividad para usar toda la potencia de manera eficiente eliminando los estados de inactividad, sleep forzados, de un CU.

 

dqdduep-871109

 

Las GPUs son bestias realmente complicadas en esta ocasión. En la era de la Xbox 360, para obtener el máximo rendimiento de la GPU si deseabas optimizar el rendimiento, era todo acerca de cómo ordenar las instrucciones que vienen en su sombreado. Todo con el fin de obtener el máximo rendimiento, ajustarlo todo a mano. En esta era, eso es importante – pero no es tan importante como conseguir que todas las estructuras de datos estén en el lugar correcto para que puedan ofrecerte el máximo uso de ancho de banda a través de todos los diferentes buffers. Por lo que es relativamente fácil conseguir porciones de datos que alimenten y maximicen el rendimiento del GPU. Tienes que tener el GPU constantemente alimentadodijo el director de Xbox de Desarrollo Boyd Multerer.

 

Para ello, Xbox One tiene un diseño basado en el de las supercomputadoras y a pesar de tener una potencia más que humilde y unos ROPs y unos ACEs discretos nos damos cuenta que se han doblado ciertas áreas de la piscina del CU y se ha potenciado y doblado la comunicación. Xbox One maneja dos procesadores de comando para GFX y otros dos rocesadores de comando para GPGPU.

01

Los Render Back Ends, (RBE) y los Raster Operation Pipeline (ROP) ésta vez no son necesarios en la parte de computación general (GPGPU). Las GPU de nueva generación tiene desdobladas ciertas áreas del pool de forma física (como las Unidades Lógicas Aritméticas), los render pipes, los procesadores de comando y un largo etcétera. El aumento de las drawcall entre otras cosas (no todo es drawcall, palabra de moda), junto a la posibilidad de eficiencia en DP y la superioridad de las operaciones por ciclo de la CPU y la GPU crean un sistema sin cuellos de botella y una máquina ultra eficiente con una GPU discreta.

El concepto de PS4 es de el de potenciar la arquitectura actual a través de Teraflops base con lo que sólo tiene un procesador de comando para GFX + los ACE’s extra, para intentar gestionar la parte balanceada de GPGPU.

Si Microsoft no necesita más de 16 ACE para gestionar de base los 1.34Tf ¿por qué Sony pone en PS4 más de los 22-24 que necesitaría para gestionar los 1.8Tf hasta un total de 32? Pues porque es un acercamiento para dotar a la máquina de una capacidad extra en GPGPU a consecuencia de ciertos cuellos de botella que se han visto en Infamous.

El recurso de propósito general y/o GPGPU en Xbox One no se ejecuta con más y más ACE’s como se hace en la arquitectura DX11. El concepto cambia. Mientras el propósito general se ejecuta de manera asincrónica en PS4, en Xbox One tenemos sincronismo en el hilo de ejecución. Sumado al hecho de que DX12 es compatible con múltiples procesadores de comando de manera nativa por hardware de manera eficiente y no por software como hacen las API modernas.

 

DirectX 12 xbox one

Ya bien entrados en el tema nos damos cuenta que DirectX 12 es algo así como el cerebro que necesita Xbox One. Con este nuevo software podremos disfrutar de una importante mejora en nuestra consola porque actualmente se genera un gran tiempo para las tareas de paralelismo en una GPU, pero esto se debe a que la idea en sí de presentar múltiples hilos desde varios subprocesos en paralelo no tiene ningún sentido en las arquitecturas modernas al no estar diseñadas para ello.

Ahora bien, la GPU de Xbox One admite usar dos render pipes concurrentes, es decir, permiten que el hardware pueda representar el contenido del juego en la prioridad alta alta mientras que al mismo tiempo puede representar el contenido del sistema en baja prioridad. Esto está diseñado para maximizar el rendimiento y rellenar vacíos en las tareas de procesado aprovechando así el sistema de una manera más que eficiente.

La alta prioridad puede permitir la prestación del sistema para hacer uso de los programas operativos regionales para el llenado, por ejemplo, mientras que el título está haciendo simultáneamente las operaciones de cómputo sincrónicos en las unidades de cálculo puede estar manejando al mismo tiempo el SO+APP sin problemas. Dicho fácil, las 2 render pipes son para juegos y es trabajo de la gestión de la doble cola de trabajo el gestionar los recursos. DX12 Slogan “2 Cabezas mejor que 1”

 

2HEADS

¿Y qué quiere decir todo esto? Xbox One no está pensada como una máquina moderna, sino que está realmente pensada para el futuro, es decir, no basa su potencia en los Teraflops base, sino en la utilización de estos al 100% de manera eficiente.

Posiblemente después de leer todo esto te estés dando cuenta que muchas de las cosas que teníamos todos por sentadas están cambiando están cambiando totalmente. Si ayer para calcular la potencia de algo decíamos que 4+4=8 es más potente que 3+3=6, hoy ese 3+3 podría cambiar a 3*3=9.

El concepto de GPGPU es el concepto en el cual un GPU pretende ser un CPU, pero usando solo partes de FPU (Floating Point Unit). Así que atendiendo a Moore, la lógica y a la economía y sabiendo que no puedes poner en el salón de tu casa una máquina con 5 Teraflops, Microsoft ha creado un sistema de 1.3 Teraflops discretos que se multiplican por 4 cuando la API correspondiente (DX12) y las herramientas de trabajo (middlewares) están adaptadas. Además hay ciertas soluciones en forma de ASIC a través de procesadores programables tensilica que facilitan la miniaturización y el bajo consumo de la estructura SoC/NoC acelerando el DataFlow (flujo de datos).

¿Por qué decirle a tu GPU que calcule en cada CU una cosa cuando cada CU puede hacerlo todo? Ahora el cálculo primitivo, el vertex, el shader el GPGPU, puede ser gestionado en paralelo en cada CU al mismo tiempo, con lo cual, y citando a Boyd Multerer “poniendo los datos correctos, en el lugar correcto” se obtiene una máquina de increíble eficiencia y poder.

 

Por último, recientemente se hicieron pruebas de portabilidad entre Directx 11.2 y 12 en las que se mejoraba el uso de la CPU en un 50% y de la misma forma en las CPGPU se obtenía otro 50% de eficiencia con tan solo el cambio del software en bruto.

El nuevo DirectX no es únicamente optimización como piensa la mayoría del sector con falta de conocimientos especializados. La gente, de manera errónea, está confundiendo lo que aporta su uso en una arquitectura moderna y actual con las posibilidades que este tiene en una arquitectura nativa para su uso que, previsiblemente se verá de forma nativa en los próximos años en la mayoría de dispositivos.

Ya pudimos ver durante su presentación que Xbox One estaba pensada para DirectX 12, es decir y en mi opinión, tanto DirectX12 como Kinect 2.0 son partes esenciales de la nueva consola de Microsoft y ni mucho menos el hecho de que a partir de junio se vaya a vender sin Kinect supone que se hayan dado por vencidos con él porque ya sabemos que es parte esencial para disfrutar no solo de contenidos adicionales en todos los juegos sino que también será esencial para el uso de la realidad virtual en la consola.

Como nota final, a modo de reflexión y debate, suponiendo que finalmente no ocurra como PS3 y Xbox One logre exprimir toda esa «potencia» o más bien logre ese nivel de eficacia, se producirá un brutal avance en comparación con su rival actualmente pero no hay que cerrar las puertas a una más que posible respuesta en software por parte de Sony Y su OpenGL. Ambas máquinas están destinadas a competir a la par y los usuarios notaremos muy poco estos avances a corto plazo de igual manera que la diferencia visual actual entre los juegos es totalmente ilusoria y está en los números porque cualquier superioridad aplastante podría dejar fuera del mercado a la otra.

Además este dato quizás haga plantearse a los menos partidarios de la consola si Xbox One debería haber salido entonces a la par que DirectX 12. La respuesta a mi parecer es no, no había necesidad, el hardware estaba listo y el reescalador hanna 2 preparado para solventar la carencia del software en los primeros compases de la andadura.

Con esto espero que os sea más fácil comprender lo que supondrá DirectX 12 y el por qué de la arquitectura de Xbox One, todo ha sido muy minuciosamente pensado y desarrollado, en Microsoft no son nuevos e ingenuos.

Fuente: Entendiendo a Moore. Entendiendo Xbox One

Categories
HardwareOpiniónTecnologíaUncategorizedXbox One

Entre la Xbox One y el PC, ¿demasiados juegos?.
    12 Comments on this post.
  • lawrence
    24 mayo 2014 at 18:19
    Leave a Reply

    Leí el articulo al que aquí se hace referencia, y tanto aquel como este me encantan. Yo soy fan del ecosistema Microsoft y sobre todo de sus consolas. Cuando me compre la One oía por todas partes lo de la inferior potencia frente la PS4, pero, de alguna manera, me decía: «es Microsoft, saben lo que se hacen. Me compre la Xbox One antes de saber nada del DirectX12, y, a pesar de estar contentísimo, y de parecerme superior a PS4 en otros muchos aspectos, enterarme de algo como esto me alegro bastante (ni solo por mi como poseedor de la One, sino por los usuarios que se ganaran poco a poco.

    • Tonio
      24 mayo 2014 at 18:36
      Leave a Reply

      Claro, cualquier mejora siempre es buena, también están haciendo un gran trabajo con las actualizaciones.

  • Duwine
    24 mayo 2014 at 20:49
    Leave a Reply

    Gran artículo Toni y muy bien explicado todo!! En el E3 se podrá empezar a ver todo esto y a mi parecer la X1 estaba planeada para salir junto con DirectX 12 pero salió antes debido tb a que Ps4 salió tb antes. Hay muchos rumores sobre el E3 que indican que MS tiene muchas cosas guardadas en la manga. 😉

  • Jorge
    25 mayo 2014 at 09:10
    Leave a Reply

    Un artículo para quitarse el sombrero, superando con holgura a muchas reseñas hechas en otros blogs de renombre, felicidades Tonio por este gran posteriormente.

  • Víctor José
    25 mayo 2014 at 10:33
    Leave a Reply

    ¡Bravo! No solo por el contenido del artículo, sino además por lo bien redactado y explicado. Tengo ya ganas de ver las bondades de DX12 en PC y en Xbox One. Si realmente optimiza tanto la consola se demuestra nuevamente que «la potencia sin control no sirve de nada». La eficiencia es la máxima expresión de la tecnología bien implantada, y si los chicos de Microsoft demuestran que su consola es capaz de tantas cosas con las especificaciones de la misma, estamos ante una verdadera obra de ingeniería. Ya lo decían desde Microsoft «esto es una carrera de fondo, no un sprint». Igualmente es de esperar que desde Sony haya algún tipo de reacción a este movimiento, por eso se prevé una generación de consolas la mar de interesante.

  • txemi01
    26 mayo 2014 at 16:01
    Leave a Reply

    Vergonzoso que os hagais eco de una información
    no contrastada salida de un foro. Resta veracidad a la pagina y confunde a la gente que os sigue.

    • Tonio
      26 mayo 2014 at 16:13
      Leave a Reply

      Podrás estar en mayor o menor medida de acuerdo con la información, pero es información contrastada del evento de presentación de DirectX 12. Igual el que no se ha informado eres tú o no te conviene informarte, pero ya se dijo que Directx 12 aumentaba un 50% el rendimiento en hardware no nativo y el de Xbox One está preparado para Directx 12, te recomiendo que leas bien e intentes no ser tan desagradable ante informaciones que igual por tus circunstancias consideras que no son favorables. Pero vamos el uso de Directx 12 para Windows y Xbox One es una mejora y todas las mejoras son siempre favorables a menos que vivas de que los demás no mejoren.

      • txemi01
        26 mayo 2014 at 20:14
        Leave a Reply

        Precisamente porque se del tema me indigno viendo lo que publicais como noticia. Que habra mejoras, pues claro que las habrá. Los sistemas cerrados como las consolas con el tiempo se mejoran las herramientas de desarrollo con lo cual se le saca mas provecho, pero de ahi a que sea una revolución hay un paso. DirectX 12 no es la panacea, Xbox one no va a ser de la noche a la mañana lo que no puede ser. Por cierto tengo la consola en cuestion así como las anteriores consolas de microsoft.

        • Tonio
          26 mayo 2014 at 20:42
          Leave a Reply

          Ante todo y para comenzar, no está publicado como noticia sino como Opinión. Y segundo, para terminar Directx 12 claro que es una mejora importante porque es el software para el que está pensado el hardware.

  • txemi01
    26 mayo 2014 at 21:22
    Leave a Reply

    Mis disculpas por tratarlo como noticia, en cuanto a la opinión cojea en muchos puntos. Por cierto, la gpu es un bonaire con alguna que otra mejora a requerimiento de microsoft, asi que no hablamos de un diseño Dx12.

    • Tonio
      27 mayo 2014 at 13:47
      Leave a Reply

      No pasa nada, es posible que no quede muy claro. Respecto a lo otro no puedo entrar en el eterno debate 1vs1 🙂 ya tienes todo lo que yo he encontrado arriba, lamento si algo puede estar mal pero hasta donde yo llego, salvo la especulación de x4 a la potencia. La GPU si ha sido modificada por MS y ya se comentó que estaba adaptada a DirectX 12.

      La cuestión es sí será tan drástico el cambio como se especulan o proponen algunos o no. O en todo caso si Xbox One estaba preparada para salir a la calle el pasado mes de noviembre del 2013 o no. xD

    Leave a Reply

    *

    *

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

    Últimos posts

    RELATED BY