Blog Personal.

Uncategorized

Pequeño Feedback

Comentario#1:

Te olvidaste de que el año pasado tú mismo pusiste un chivatazo de un insider sobre que usarían los shaders en menor precision, enteros de 8 y 4 bits…

Criticabas a los que decían que usarían los shaders

Es irónico que tuvieras una primicia mundial y te olvidaras y especularas en contra…

Lo de los Shaders a menor precisión ya aparecía mencionado para futuras iteraciones de Navi cuando sacaron el white paper de Navi 10/RX 5700.

¿Donde apareció? Pues en Navi 14 aka RX 5500, por lo que es normal que traspase a RDNA2 y con ello a ambas consolas de siguiente generación. Eso si… ¿Sabés cual es el problema respecto a esto?

Que si, que si… Que Microsoft ha colocado la propaganda sobre el DirectML en medio del glosarió sobre tecnologias de Xbox Series X pero con esto hay un problema enorme. Esta solución, de utilizar las unidades SIMD es menos eficiente que los arrays sistólicos utilizados por Nvidia, lo que llamamos los Tensor Cores.

Hasta el punto en que AMD para CDNA le da la razón a Nvidia…

Y David Wang lo acabo confirmando.

Nvidia coloca los arrays sistólicos en sus Compute Units/SM porque espera que estos sean utilizados en las aplicaciones CUDA y es una forma de ahorrar espacio al darles al compartir la unidad de control de cada SM con lo que son los «núcleos» CUDA (Int32 y FP32). Los Arrays sistolicos son solo un tipo de ALU y punto que se puede utilizar en cualquier otro tipo de núcleos.

Lo que es una chapuza plus ultra, es lo que hizo AMD con Vega 7nm de utilizar el SIMD sobre registro en las ALUs de las unidades SIMD. Si por algo todo el mundo esta utilizando Arrays Sistólicos/Unidades Tensor es por algo, no es algo solo de Nvidia, sino también del resto de fabricantes y diseñadores de hardware de toda la industria. Eso lo han colocado tal cual en RDNA2, pues vale, muy bien, pues me alegro pero no aporta nada porque cuando una tecnología no es lo suficientemente rápida para hacer lo que tiene que ser no es útil y es como no existiera.

Por eso en consolas de siguiente generación aposte en contra, olvide la necesidad de Microsoft de vender el DirectML. Es gracioso que este en el glosario de tecnologías de Xbox Series X y os digo que se utilizará poco, más que nada porque no otorgan la suficiente potencia para competir contra los Tensor de Nvidia.

Comentario#2:

Hola Urian,
cada cuál ha dado sus especificaciones raytracing como ha querido:

Microsoft ha dicho 380 billones de intersecciones por segundo.
Nvidia habla de 10 Gigarayos/s y 100 TeraOps por segundo para la RTX2080TI. Por otro lado, todo el pipeline de raytracing son 78 RTX-Ops por segundo.
Y a saber qué dice Sony.

¿Podrías relacionarlas, llevarlas a un denominador común?

Lo de los RTX Ops es marketing puro, no existen y por tu salud mental olvidalos.

La métrica de los rayos por segundo es engañosa también, básicamente porque no sabes como va a reaccionar un rayo y en cada intersección con un objeto se pueden generar más rayos o no, dependiendo del caso. Pero dicha métrica tiene una explicación y es que el RT Core de Nvidia no sigue al 100% las especificaciones de DirectX.

¿El motivo? La especificación de DirectX marca que con cada impacto del rayo este se pare y solo continue si se hace una petición desde el Shader, es decir, no impacta continuamente.¿Es eso malo? No, porque si pensamos los recursos limitados en los videojuegos pues tiene sentido poder limitar la cantidad de rebotes y si hay superficies que emiten rayos (iluminación indirecta) o no. En cambio en el mundo del rendering offline que es para el que se iban a vender las Nvidia Quadro hacer rebotar el rayo de manera recursiva en todo el BVH no es un problema y no olvidemos que Turing se presento inicialmente en las Quadro cuyo mercado no es el de las GeForce.

Microsoft en Xbox Series X no habla de rayos porque AMD se limita a seguir la especificación de Microsoft y no la expande más allá de eso.

Comentario#3:

Hola, disculpa la duda (Xbox Series X) no tendrá driver (gráfico)?

El comentario es acerca del Procesador de Comandos de Xbox Series X.

El Driver (Controlador) y la compilación de shaders son cosas distintas. Los shaders se pre-compilan la primera vez que cargamos el área de un juego y dicha compilación se queda en el Disco Duro del juego para luego re-utilizarse. Pues bien, la compilación la suele hacer la CPU, esto para los tiempos de carga es mortal y más si quieres aprovechar la velocidad de carga del SSD.

Es por ello que Microsoft ha colocado una pequeña ayuda que compila esos shaders en vez de hacerlo la CPU. Y tiene sentido no solo de cara a ahorrarle potencia a la CPU sino para que lo haga lo suficientemente rápido como para que la carga de un nuevo escenario no se vea ralentizado por eso.

¿Pero acaso no vienen ya pre-compilados? Bueno, Xbox Series X y Windows con la llegada de DirectX 12 Ultimate que es universal va a permitir utilizar el mismo código o al menos en más de un 95% en ambas plataformas. Es decir, el código de los juegos se entregará con los shaders sin compilar de manera específica, de ahí que en Xbox Series X hayan decidido añadir esta solución.

Comentario#5:

O sea que ese sistema nueva de ponerle hdr a todos los juegos no es propietario de micfrosoft, si no de AMD mas bien.. pues interesa, a ver si sony tb lo tiene estaria bastante bien

Vamos a ver, sabemos que AMD tiene una patente de un codec de video combinado con un motor de inferencia que es lo mismo que hablar de una unidad Tensor/Neural/Array Sistólico… Pero como se encuentra fuera de lo que es el hardware de renderizado no puede ser invocado por los Shaders.

¿Entonces para que sirve? Pues básicamente es lo mismo que las soluciones que de IA que hay en los televisores, es decir, el clásico chip como el X1 Ultimate de Sony que hacen cosas como el aumento de resolución, la interpolación de fotogramas, el paso de SDR a HDR… Hay que tener en cuenta que el Codec de video por hardware lo que hace cuando codifica vídeo por hardware si el objetivo es un juego es tomar el búfer de imagen final que se ha generado e irlo procesando por bloques para generar el video del Gameplay.

La idea de utlizar un motor de inferencia es que son extremadamente rapidos para esto y esto es importante para el Cloud Gaming, Microsoft utilizara el SoC de Xbox Series X en el XCloud y es importante reducir la la latencia para el jugador cliente y de ahí a aumentar considerablemente la potencia del codificador, si además esto permite hacer cosas como el traslado de SDR a HDR pues bienvenido sea.

Comentario#6:

Pues no se Urian, yo creo que los INT 8 y 4 si estan usando los mismo CU y no de forma separada en codec de video.

Los datos que ha dado Microsoft son 8bits 48TOPS Y 4 bits 96TOPS, lo cual coincide con subdivir la ALU FP32 de Xbox:

Xbox FP32 = 12 tflops
FP16 = 24 Tflops
INT 8 = 48 Tops
INT 4 = 96 Tops

Saludos.

No, son cosas distintas.

Como he explicado antes, la aplicación del motor de Inferencia en el codec de vídeo le permite a este realizar ciertos algoritmos de procesamiento de imagen via IA, pero no puedes invocarlos a través de los Shaders porque no están en las Compute Units y están demasiado lejos y darían la respuesta demasiado tarde, aparte que la propia unidad se saturaría por completo ante tanta petición por parte de todas las CUs de la GPU.

Cuando di el ejemplo de equivalencia a los Tensor Cores me refería a la aplicacion del DLSS, este es producto de la ingente capacidad de calculo que aporta el hecho de tener varios arrays sistolicos/tensor cores en cada unidad SM. Para igualarlo se necesitaría que el codec de video con inferencia se necesitaría que el codec de video tuviese la misma capacidad de cálculo, cosa que dudo enormemente y el hecho de que Microsoft no hable de escalado por IA a 4K nos confirma que no hay el equivalente al DLSS en Xbox Series X.

Y con esto volvemos al primer comentario… ¿Desventajas del hardware de AMD respecto al de Nvidia en este tema?

  • En cada SM de Turing tenemos unas 512 ALUs en FP16 que se pueden subdividir en 1024 en Int8 y 2048 en Int4. En cambio en el caso de AMD por cada CU tenemos 64 ALUs en FP32 que se pueden subdividir en 128 en FP16, 512 en Int8 y 1024 en Int 4. Es decir, la potencia por CU/SM de Nvidia es el doble.
  • El hardware de AMD no puede hacer multiplicación de matrices tan rápido, en realidad lo hace tan lento como Pascal.

¿Puede aplicarse el DLSS o algo equivalente en AMD? Pues claro que se puede, pero va ser mucho más lento y lo que en Nvidia puede tomar entre <1ms y 2ms en AMD puede tomar una cifra varias veces superior y por tanto no ser lo suficientemente rápida para poderse utilizar.

Comentario#7:

ahora que lo pienso, este quizá sea el motivo de que ayer se comentaran en varios sitios que la consola estaria pensada para montar mas memoria que te puse en una de tus entradas anteriores, supongo que para poder tener 4 estancias virtuales requerirá también aumentar considerablemente la ram del sistema en las consolas destinadas para xcloud con respecto a los modelos comerciales.

El controlador GDDR6 de Xbox Series X es custo, simplemente a cada byte se le añadido el bit de paridad por lo que tiene un pin más por byte de salida (9 en vez de 8) y esto es porque el SoC es el mismo en Xbox Series X y en XCloud pero el hardware del sistema no es exactamente el mismo.

Xbox Series X utiliza la GDDR6 en modo x16, esto significa que hay un chip GDDR6 por controlador de memoria. Se llama x16 porque la GDDR6 hace uso de 2 canales de 16 bits.

Existe un modo que es el X8 donde los 2 canales de 16 bits se convierten en 4 canales de 8 bits desde el controlador de memoria. Pero los chips GDDR6 no permiten aumentar los canales por lo que se quedan con la mitad de ancho de banda cada uno, esto permite conectar un segundo chip por controlador de memoria y aumentar la densidad sin aumentar el ancho de banda.

Tu pregunta es interesante porque como muchos sabréis las Xbox One utilizan un hypervisor, este le permite correr varios sistemas operativos por encima como máquinas virtuales.

Las Xbox One no tienen la potencia para correr varias instancias del Exclusive OS donde se ejecuta el juego. Pero el SoC de Xbox Series X si que las tiene, pero necesitamos unos 8GB de memoria por máquina virtual realmente… ¿De donde la sacamos? Pues del modo Clamshell x8, podemos tener hasta 40GB si utilizamos chips GDDR6 con 2GB de densidad.

Que por cierto, creo que a nivel doméstico la Xbox Series X también va a poder hacerlo, pero creo que en red local y para transmitir a otras pantallas como el móvil, la tablet que estén conectadas a la misma.

Esto es todo, tenéis el Discord y los comentarios de esta entrada para comentarla.

0 0 vote
Article Rating
6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Dani

Creí entender en el video de Digital Foundry y en su entrevista a Andrew Goosen que las ALUs se pueden subdividir para permitir cálculos FP16, INT8 e INT4. De ahí que digan 97 TOPS.

Están lejos de los 430 TOPS de los Tensor Core de Nvidia, pero ¿serán suficientes para la super-resolución? Si las ALUs tardan menos en ese escalado IA que en renderizar a 4K nativo es posible.

Por cierto, muchas gracias por la explicación del raytracing. Entiendo que los shaders limitarán el RT antes que las unidades de intersección.

Jorge

Estamos seguros que lo del HDR generico es de AMD? Ojala lo veamos en otros sitios.

Yo creo haber leido que los que hicieron Gears of War 5 usaron machine learning usando HDR de otros juegos de Xbox. Lo mismo es PR de Microsoft pero me suena haberlo leido.

Y sobre lo del DirectML… pues no se no se…parece todo humo ya que lo han sacado en el 2018? y no hemos vuelto a saber nada..ningun juego lo ha usado. Se supone que se puede usar como el DLSS de Nvidia…correcto?

Dani

Lo que es de AMD es el codificador, y supongo que también estará presente en PS5. Las aplicaciones que cada cual le encuentre serán las propietarias, como ese auto-HDR.

Sony tiene el XDR en sus TV desde hace unos años, que es otra simulación de HDR.

Jorge

Pues mira que bien. Gracias por la info.

Nitupensis

Si en Series X una de las caracteristicas que indico phil, es que tendra un modo «console streaming» mejorado sobre el que están usando en xbox one o como hace ps4, para hacer funcionar las series X domesticas como nuestro propio servidor privado de streaming/xcloud para los juegos que tengamos comprados, pero entiendo que solo podrá trasmitir hacia un solo dispositivo.

Big crunch

Los tensor cores están parados la mayor parte del fotograma Poner a los shaders en int8 o int4 siendo mucha más área del chip que los tensor cores debería compensar, si les asignamos el mismo tiempo que están parados esperando a los tensor Lo que creo que pasa es que no es suficiente. De hecho es noticia que vulkan permite que la cpu ayude a la gpu con el raytracing… Se trata de combinar todo lo que sea útil para el raytracing. En vez de tener a los shaders parados pues que trabajen en raytracing a la vez que los… Read more »