Comentario Original:

Hola Urian, como una vez más, muy buen post, yo por desgracia coincido con el compañero en la falta de base para entender todo de una forma perfecta, pero las ideas/mensajes/finalidad de los post los entiendo sin problema.

Veamos que puedo hacer en ese aspecto en una entrada posterior, no lo he ignorado en ningún momento pero estoy teniendo algunos problema en ese aspecto, principalmente falta de tiempo por un lado y el problema de que he tenido ya dos avisos de WordPress por colgar contenido con copyright asociado y prefiero no jugarmela.

Urian permíteme preguntarte algunas dudas que me han surgido con tu último párrafo, ¿Ves probable que la próxima consola de Microsoft sea con GPU de Nvidia?

Es una posibilidad que existe y que yo no descartaría en absoluto, la que si que no veo con Nvidia es Sony por el hecho de que si hacemos caso de la «Patente Cerny» esta muy claro y se entiende de forma implicita que van a continuar con AMD.

En ese caso, ¿Como quedaría la retro compatibilidad que tanto han anunciado a bombo y platillo y prometido que tendrían las próximas consolas con los juegos XBOX ONE y anteriores? Tanto por la parte de los juegos de 360 como los de Xbox ONE y más específicamente los de XBOX X Enhanced, los menciono así por ese orden, porque si hacen emulación por software creo que en ese orden iría el incremento de dificultad por ese método, si es como los juegos de 360, seria parchear uno por uno para hacer todo el catalogo tanto Firts como Third party compatible con la nueva consola con la GPU de Nvidia, cosa que me parecería una tarea titánica, o empezar como los de 360 e ir poco a poco hasta tener un catalogo decente durante la vida de la nueva consola, imagino que sería más fácil la emulación si mantienen una CPU de AMD para ayudar a emularlos más fácilmente por “tener así medio Hardware de la consola anterior”

En realidad la GPU es un problema realmente menor por la naturaleza que tienen estas en la estructura de las cosas. También entre la GPU de Xbox 360 y la de Xbox One hay una diferencia sustancial enorme hasta el punto que son arquitecturas distintas pese a tener el mismo proveedor y podemos ejecutar los juegos de Xbox 360 en Xbox One. ¿A través de un emulador? ¿A través de un interprete? No, la trampa esta en el procesador de comandos que es el que lee las listas de ordenes de la GPU generadas por el back-end de la API a tiempo real y se encarga de gestionar las diferentes instrucciones que van llegando y a distribuir el trabajo en la GPU.

¿Que es lo que ha hecho Microsoft? Ha sido crear un procesador de comandos desde Xbox 360 en adelante de manera general que tenga correlación con Direct3D de manera directa de tal manera que no sea necesario un intérprete por software, lo que es un controlador/driver. ¿Como lo hicieron en Xbox One? Es simple, para asegurarse que su Direct3D tuviese compatibilidad en la GPU de Xbox One añadieron otro procesador de comandos para gráficos aparte del propio de AMD.

xbox-one-gpu-bus-overview

No es que sean dos procesadores de comandos trabajando en paralelo, son dos procesadores de comandos completamente conmutados el uno respecto al otro. El que ha añadido Microsoft tiene una correlación 1:1 con la API Direct3D para las Xbox de Microsoft y es lo que facilita que los juegos de Xbox 360 corran en Xbox One sin problemas. Por lo que lo único a nivel de GPU que necesitaría Microsoft sería adaptar el procesador de comandos de las Xbox a una GPU de Nvidia y … ¡voila!

¿Y que CPU usarían? AMD + GPU Nvidia? Intel + Nvidia?

Ayer hubo la presentacion de la GTC 2018 de Nvidia y entre varias cosas durante un tiempo hablaron del mapa de ruta de los Tegra y hablaron del futuro Tegra «Orin»… A mi esto me llamo la atención,

nvid0684

Según el CEO de Nvidia, el SoC llamado Orin ha de tener 1/2 de la potencia de un Drive Pegasus.

NvidiaPegasus

El Pegasus esta compuesto por un Tegra Xavier con 20 DL Tops y 512 núcleos CUDA, en la entrada de ayer os comente como la GPU del Pegasus seguramente acabará siendo una GPU con una potencia 7X pero la misma arquitectura Volta para poder llegar a los 140 DL Tops y unos 3584 nucleos. Orin sería la combinación de la GPU dedicada con el Tegra Xavier en un solo SoC creando un monstruo con 4096 unidades CUDA en total. No llegaría al nivel de la GV100 con 5120 unidades CUDA activas pero algo es algo.

Obviamente Microsoft no utilizaría el proceso de 10nm sino el de 7nm de TSMC, el cual tiene una densidas 3.3 veces mayor que el actual utilizado en el Tegra Xavier.

xavier

Las interfaces de memoria obviamente no serán LPDDR4 en Orin sino seguramente GDDR6 para poder alcanzar los 512 GB/s esperados, la GPU será expandida hasta los 4096 núcleos CUDA… ¿Y la CPU? La del Tegra Xavier es superior en rendimiento a los Jaguar de AMD en Xbox One y Xbox One X.  Luego elimina todo lo superfluo para una consola de videojuegos como es el CVA y… Tienes el SoC de la Xbox 2020 en el caso de que lo hagán con Nvidia.

Obviamente esto es pura y dura especulación por mi parte, puede que me equivoque al 100%. Pero lo que teneís que tener claro es que con la tontería del procesador de comandos Microsoft puede escoger el proveedor y en cuanto a la CPU… En realidad no debería ser un problema desde el momento en que Microsoft tiene un inteprete x86-ARM de la misma manera que tiene un PPC-x86. Precisamente esa es otra de las ventajas de Microsoft en estos momentos respecto a Sony, esto les permite para poder tener una compatibilidad hacía atrás contar con una enorme caja de posibilidades que van más allá de heredar el hardware.

En realidad es la apuesta de Microsoft por el DirectX Raytracing y el hecho de haber salido de la mano de Nvidia con ello en la GDC y no AMD es lo que me hace sospechar que Microsoft se ha planteado un cambio de proveedor. En todo caso con Xbox One X recien lanzada yo no la esperaría hasta el 2020.

Ahora no recuerdo como acabaron de bien o mal (aunque creo que mal) las relaciones en el en las divisiones de las consolas en la época de XBOX 1 entre Microsoft y Nvidia, que serán diferentes en el apartado de DirectX y cosas así porque son otras divisiones distintas, se que con Sony súper mal por el post que hiciste hace poco de PS3, y más de una vez creo recordar que has dicho que a Nvidia no le interesaba el mercado de consolas, y lo que ha surgido entre Nintendo y Nvidia fue algo en lo que mutuamente salieron ganando las 2 por la situación del Tegra que tenia Nvidia cogiendo polvo.

Bueno eso sería todo, un saludo y sigue así maquina.

El motivo por el cual Microsoft acabo creando su propio procesador de comandos a partir de Xbox 360 es por un motivo bien simple. Nvidia le cobraba $75 por NV2A a Microsoft porque en Redmond no controlaban la fabricación del chip, contrataron a AMD para una GPU similar y una versión alternativa de Xbox y se encontraron con incompatibilidades manifiestas que no permitían que la Xbox con GPU de AMD fuese compatible con todos los juegos.

Esto hizo que en Xbox 360 Microsoft decidiese crear su propio procesador de comandos con una relacion 1:1 con la versión del Direct3D 9 para Xbox 360.

2814933-xbox360lol3

En Xbox One hicieron lo mismo pero manteniendo la compatibilidad hacía atrás con el procesador de comandos de Xbox 360 y esta vez adaptando el procesador de comandos para un superconjunto de Direct3D 11 al que llamaron Direct3D 11.X que fue renombrado con el tiempo a Direct3D 12 en Xbox. En PC se traslado parte de la funcionalidad de ese Direct3D 11.X para hacer el Direct3D 12 de PC que aunque tienen ciertas similitudes generales realmente no son la misma API al 100%. Lo que quiero que entendáis es que existe una correlación directa entre la API Gráfica de bajo nivel y el Procesador de Comandos por el hecho que la primera necesita una correlación 1:1 entre la API y este mismo para no necesitar un controlador que interprete o descomponga las intrucciones de una manera concreta y así ganar rendimiento.

Si Microsoft decidiese irse con Nvidia mantendría la compatibilidad hacía atrás adaptado su procesador de comandos a las GPUs de Nvidia permitiendo que la compatibilidad fuese 1:1 aunque internamente ese procesador de comandos por diferencias arquitecturales entre AMD y Nvidia tendría cambios de cara al código de los juegos si quisieran compatibilidad hacía atrás no se notaría en absoluto y tampoco lo deberían notar los desarrolladores en general desde el momento en que esas diferencias de funcionamiento serían a nivel interno y no accesibles por los desarrolladores. Es decir, simplemente funcionaría y punto… ¿Para que preocuparse como lo hace si hace lo que se le pide?