Hablemos del interior de Xbox One

Urian escribió:¿Por qué mientes tanto?

Me estoy empezando a cansar de este tipo de comentarios.
Si miente, supongo que no te sera difícil demostrarlo, ¿no?

A la próxima acusación que se haga sin aportar absolutamente nada, el premio sera gordo.
indigo_rs está baneado por "saltarse el ban con un clon"
Sigue abierto el hilo, nunca pense que diera para tanto el interior de Xbox One.
Urian escribió:
Szasz escribió:¿Entonces si yo juego en modo ventana en mi PC y pongo el internet explorer en modo Snap, estoy usando 2 CPs?

¿Por que el GPU MMU tiene 16 espacios virtuales?
¿Por que ha modificado Microsoft los ACEs y los ha cambiado por CPs con al menos el doble de work streams?
¿Por que pone en el paper q no es definitivo y q puede haber cambios más adelante?
¿Para q un Shape y diferentes modificaciones en I+D en puntos "sensibles" de la arquitectura?
¿Sistema virtualizado?
¿Por que tengo tantas dudas en tantas partes, cuando todo esta tan claro?

¿Todo para kinect y snap mode? Me resulta tan difícil de creer....


¿Por qué mientes tanto?

Edito porque ya te ha contestardó el moderador .Pero vamos creo algunos estáis ya perdiéndolas formas si no se OS da la razon
Esto se está convirtiendo en una discusión de besugos. No creo que haya más solución. El hilo finalmente se cerrará. No logro entender tanto interés en desacreditarlo todo.

Es una verdadera pena, porque aunque no me entero de muchas cosas, me gustaba ver como muchos compañeros lanzaban sus teorías, fueran o no descabelladas. Al fin y al cabo de eso se trata no? de pasar ratos agradables viendo cosillas de lo que lleva xbox one por dentro. De si podrá hacer esto o lo otro.

Y lo siento pero, aunque la culpa es de ambos bandos, no me entra en al cabeza poner tantisimo empeño en enturbiar ciertas opiniones, sean pajas mentales o no lo sean.

Saludos para todos, por favor moderar vuestro comentarios, si no preveo un cierre FINAL del hilo. Al tiempo
No, os pongáis como os pongáis un CP no está exclusivamente dedicado al sistema. Sería absurdo dedicar la mitad de los recursos a algo que necesita un 10%. El 2o puede cambiar perfectamente entre juego y sistema, y de hecho es lo que hace. La otra unidad de geometría supongo que también estará dedicada al sistema...venga no os flipéis.

Si el reparto fuera 50/50 pues si lo más natural sería eso. Pero es 90/10 por lo que el 2o lo que hace es cambiar de contexto entre sistema y juego. Por lo que en teoría es tener 1,80 CP para el juego, en la practica algo menos por esos cambios que tiene que hacer la 2a, pero en la practica todo es siempre menos que en la teoría.

Pero si además lo dice la propia entrevista que se ha puesto hace nada, la parte final, donde dice claramente lo de rellenar huecos y hacer 2 cosas a la vez en el tiempo que el sistema no lo necesita, dedicarlo a la aplicación high. No entiendo la necesidad de negar algo que tenéis delante mismo.
serrano_22 escribió:Esto se está convirtiendo en una discusión de besugos. No creo que haya más solución. El hilo finalmente se cerrará. No logro entender tanto interés en desacreditarlo todo.

Es una verdadera pena, porque aunque no me entero de muchas cosas, me gustaba ver como muchos compañeros lanzaban sus teorías, fueran o no descabelladas. Al fin y al cabo de eso se trata no? de pasar ratos agradables viendo cosillas de lo que lleva xbox one por dentro. De si podrá hacer esto o lo otro.

Y lo siento pero, aunque la culpa es de ambos bandos, no me entra en al cabeza poner tantisimo empeño en enturbiar ciertas opiniones, sean pajas mentales o no lo sean.

Saludos para todos, por favor moderar vuestro comentarios, si no preveo un cierre FINAL del hilo. Al tiempo

Por desgracia creo que a veces hay gente que su objetivo es finalizar el hilo, para mi es uno de los mejores de todo eol
darksch escribió:No, os pongáis como os pongáis un CP no está exclusivamente dedicado al sistema. Sería absurdo dedicar la mitad de los recursos a algo que necesita un 10%. El 2o puede cambiar perfectamente entre juego y sistema, y de hecho es lo que hace. La otra unidad de geometría supongo que también estará dedicada al sistema...venga no os flipéis.

Si el reparto fuera 50/50 pues si lo más natural sería eso. Pero es 90/10 por lo que el 2o lo que hace es cambiar de contexto entre sistema y juego. Por lo que en teoría es tener 1,80 CP para el juego, en la practica algo menos por esos cambios que tiene que hacer la 2a, pero en la practica todo es siempre menos que en la teoría.

Pero si además lo dice la propia entrevista que se ha puesto hace nada, la parte final, donde dice claramente lo de rellenar huecos y hacer 2 cosas a la vez en el tiempo que el sistema no lo necesita, dedicarlo a la aplicación high. No entiendo la necesidad de negar algo que tenéis delante mismo.

Sobre todo porque hasta que no llegue DX12 no pueden usar ese doble contexto al 100%...
The current reservation provides strong isolation between the title and the system and simplifies game development (strong isolation means that the system workloads, which are variable, won't perturb the performance of the game rendering). In the future, we plan to open up more options to developers to access this GPU reservation time while maintaining full system functionality.

To facilitate this, in addition to asynchronous compute queues, the Xbox One hardware supports two concurrent render pipes.



esto lo dijeron a colación del famoso 10% reservado a kinect y de esas dos render pipes. Vamos, que yo por lo menos doy por sentado que esa abstracción la pueden bajar de ese 10% que dicen @darksch. Y tener casi todos los ciclos de esos dos contextos para juegos. Por mucho que tambien lo usen para el snap de aplicaciones.
Bueno, dado el despropósito al que se está llegando en este hilo voy a explicar lo que significa el PDF famoso.

Primero unas preguntas y respuestas rápidas importantes para entender la explicación:
- ¿Tiene Xbox ONE doble GPU?: NO.
- ¿Reserva ONE CPs o CUs para el sistema?: NO.
- ¿Podemos tener una GPU que admita multihilo sin tener doble contexto gráfico?: SI. Podemos tener 2 CP pidiendo tareas a la GPU y la GPU irá realizando las tareas pero no simultáneamente (por ejemplo pensad en un núcleo de CPU de 2 hilos, lo que ejecutan no es simultáneo sino que los hilos cogen la capacidad de proceso según el otro hilo ya no lo necesita). Para que una GPU realice dos tareas GRÁFICAS en paralelo DEBE tener 2 contextos gráficos (no podemos pintar en un lienzo en dos puntos al mismo tiempo si no tenemos dos pinceles). Resalto gráficas porque una GPU puede realizar GPGPU al mismo tiempo que renderiza.

Aquí habláis desde la teoría pero no desde la práctica., y es por eso que no se entiende el porqué de la estructura de One. Para entender la tecnología hay que entender el rendering, el porqué y el cómo se hacen las distintas técnicas actuales y futuras. El factor determinante es el doble contexto gráfico. Ésto es MUY importante, la clave es la palabra "gráfico".

Un ejemplo muy sencillo de renderizado de sombras seria: CPU prepara y pide crear una sombra de un objeto, la GPU entra en juego y la genera. Y así sucesivamente por cada sombra. Hay que tener una cosa MUY clara, renderizar una sombra no necesita PARA NADA los 12 CUs de la consola, ni por tener 12 o 18 va a renderizarla más rápido, una sombra necesita una capacidad de cómputo determinada y que posiblemente con 1 única CU nos bastaría. El problema es que cuando se renderiza se OCUPA la GPU, por lo tanto aunque no necesitemos los 12 CUs, los 12 CUs se van a bloquear para poder pintar la sombra. Obviamente podemos distribuir los CUs, y decir que sólo queremos usar un máximo de CUs para renderizado, y el resto para GPGPU (y aprovechar así el tiempo de renderizado para sacar cómputo). Pero a la hora de renderizar y para los CUs asignados a renderizar TODOS quedan bloqueados.

A partir de aquí C es CPU y G es GPU. Si queremos generar 4 sombras tenemos:
C > G > C > G > C > G > C > G

¿Qué sucede en One?. Que al tener 2 contextos gráficos puede renderizar 2 sombras al mismo tiempo. Con lo que nos queda:

> G > G
C > C
> G > G

Esto es, ni más ni menos, que la mitad del tiempo. ¿Estamos duplicando en este caso el rendimiento gráfico de One?: SÍ. ¿Es One más potente por ello?: NO. La capacidad de cómputo de One es la misma solo que el rendimiento es el doble.

Otro ejemplo seria un engine gráfico basado en tiled forward (http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading). Esta implementación se basa en generar el frame final a base de tiles o porciones de pantalla pequeñas (pequeños rectángulos). A parte de las características negativas y positivas de ésta técnica (toda técnica tiene su lado bueno y su lado malo), a dónde quiero ir a parar es en el hecho en el que... teniendo 2 contextos gráficos simultáneos podemos dibujar 2 de esas porciones SIMULTÁNEAMENTE. Con lo que el resultado es que obtenemos el frame en la mitad del tiempo y por tanto doblamos el rendimiento. Aquí también quiero hacer incapié en otra característica única de One: su eSRAM. Dado que esta técnica no requiere de gran ancho de banda, lo que más le beneficia es una memoria RÁPIDA, es decir de bajísima latencia (no confundir RAPIDEZ con ANCHO DE BANDA, no tienen NADA que ver, la rapidez la determina el tiempo para que la memoria vuelva a estar disponible para una nueva petición y ahí importa la latencia, el ancho de banda sólo sirve para MOVER grandes cantidades de memoria de un punto A a un punto B). Quiero decir con esto que de aplicar esta técnica en ambas consolas, One ganaría por absoluta goleada. Pero si aplicamos técnicas más antiguas como un deferred engine PS4 tiene ventaja por su ancho de banda (y de aquí vienen las diferencias en multis hasta ahora en cuanto a resolución o framerate).

A todo esto hay que añadirle que One tiene Full HSA, es decir coherencia total de memoria, algo básico si tenemos más de un contexto gráfico y además GPGPU, porque sí, One puede renderizar dos cosas y hacer GPGPU AL MISMO TIEMPO y compartiendo la MISMA memoria. Y esto es MUY potente y da una serie de posibilidades únicas.

¿Bien... significa todo esto que One doblará su rendimiento?: NO. One doblará su rendimiento GRÁFICO en múltiples tareas gráficas pero el rendimiento GLOBAL de un juego no SÓLO depende de la GPU. Hay muchos otros factores: CPU, memoria, técnicas gráficas utilizadas...

Ahora bien, si a mi se me pregunta: ¿Cuánto crees en promedio que mejorará el rendimiento de One?. Sinceramente y, bajo MI opinión, One incrementará con DX12 el rendimiento entre un 50 a un 75%.

Sorry por el tocho y espero haber dejado bastantes cosas claras.
pspskulls escribió:Bueno, dado el despropósito al que se está llegando en este hilo voy a explicar lo que significa el PDF famoso.

Primero unas preguntas y respuestas rápidas importantes para entender la explicación:
- ¿Tiene Xbox ONE doble GPU?: NO.
- ¿Reserva ONE CPs o CUs para el sistema?: NO.
- ¿Podemos tener una GPU que admita multihilo sin tener doble contexto gráfico?: SI. Podemos tener 2 CP pidiendo tareas a la GPU y la GPU irá realizando las tareas pero no simultáneamente (por ejemplo pensad en un núcleo de CPU de 2 hilos, lo que ejecutan no es simultáneo sino que los hilos cogen la capacidad de proceso según el otro hilo ya no lo necesita). Para que una GPU realice dos tareas GRÁFICAS en paralelo DEBE tener 2 contextos gráficos (no podemos pintar en un lienzo en dos puntos al mismo tiempo si no tenemos dos pinceles). Resalto gráficas porque una GPU puede realizar GPGPU al mismo tiempo que renderiza.

Aquí habláis desde la teoría pero no desde la práctica., y es por eso que no se entiende el porqué de la estructura de One. Para entender la tecnología hay que entender el rendering, el porqué y el cómo se hacen las distintas técnicas actuales y futuras. El factor determinante es el doble contexto gráfico. Ésto es MUY importante, la clave es la palabra "gráfico".

Un ejemplo muy sencillo de renderizado de sombras seria: CPU prepara y pide crear una sombra de un objeto, la GPU entra en juego y la genera. Y así sucesivamente por cada sombra. Hay que tener una cosa MUY clara, renderizar una sombra no necesita PARA NADA los 12 CUs de la consola, ni por tener 12 o 18 va a renderizarla más rápido, una sombra necesita una capacidad de cómputo determinada y que posiblemente con 1 única CU nos bastaría. El problema es que cuando se renderiza se OCUPA la GPU, por lo tanto aunque no necesitemos los 12 CUs, los 12 CUs se van a bloquear para poder pintar la sombra. Obviamente podemos distribuir los CUs, y decir que sólo queremos usar un máximo de CUs para renderizado, y el resto para GPGPU (y aprovechar así el tiempo de renderizado para sacar cómputo). Pero a la hora de renderizar y para los CUs asignados a renderizar TODOS quedan bloqueados.

A partir de aquí C es CPU y G es GPU. Si queremos generar 4 sombras tenemos:
C > G > C > G > C > G > C > G

¿Qué sucede en One?. Que al tener 2 contextos gráficos puede renderizar 2 sombras al mismo tiempo. Con lo que nos queda:

> G > G
C > C
> G > G

Esto es, ni más ni menos, que la mitad del tiempo. ¿Estamos duplicando en este caso el rendimiento gráfico de One?: SÍ. ¿Es One más potente por ello?: NO. La capacidad de cómputo de One es la misma solo que el rendimiento es el doble.

Otro ejemplo seria un engine gráfico basado en tiled forward (http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading). Esta implementación se basa en generar el frame final a base de tiles o porciones de pantalla pequeñas (pequeños rectángulos). A parte de las características negativas y positivas de ésta técnica (toda técnica tiene su lado bueno y su lado malo), a dónde quiero ir a parar es en el hecho en el que... teniendo 2 contextos gráficos simultáneos podemos dibujar 2 de esas porciones SIMULTÁNEAMENTE. Con lo que el resultado es que obtenemos el frame en la mitad del tiempo y por tanto doblamos el rendimiento. Aquí también quiero hacer incapié en otra característica única de One: su eSRAM. Dado que esta técnica no requiere de gran ancho de banda, lo que más le beneficia es una memoria RÁPIDA, es decir de bajísima latencia (no confundir RAPIDEZ con ANCHO DE BANDA, no tienen NADA que ver, la rapidez la determina el tiempo para que la memoria vuelva a estar disponible para una nueva petición y ahí importa la latencia, el ancho de banda sólo sirve para MOVER grandes cantidades de memoria de un punto A a un punto B). Quiero decir con esto que de aplicar esta técnica en ambas consolas, One ganaría por absoluta goleada. Pero si aplicamos técnicas más antiguas como un deferred engine PS4 tiene ventaja por su ancho de banda (y de aquí vienen las diferencias en multis hasta ahora en cuanto a resolución o framerate).

A todo esto hay que añadirle que One tiene Full HSA, es decir coherencia total de memoria, algo básico si tenemos más de un contexto gráfico y además GPGPU, porque sí, One puede renderizar dos cosas y hacer GPGPU AL MISMO TIEMPO y compartiendo la MISMA memoria. Y esto es MUY potente y da una serie de posibilidades únicas.

¿Bien... significa todo esto que One doblará su rendimiento?: NO. One doblará su rendimiento GRÁFICO en múltiples tareas gráficas pero el rendimiento GLOBAL de un juego no SÓLO depende de la GPU. Hay muchos otros factores: CPU, memoria, técnicas gráficas utilizadas...

Ahora bien, si a mi se me pregunta: ¿Cuánto crees en promedio que mejorará el rendimiento de One?. Sinceramente y, bajo MI opinión, One incrementará con DX12 el rendimiento entre un 50 a un 75%.

Sorry por el tocho y espero haber dejado bastantes cosas claras.

Una explicación increíble, sencilla y para todos los públicos

Me quito el sombrero

Imagen
@Polyteres @Urian y demás

Este hilo se llama "Hablemos del interior de Xbox One" sin embargo, cuando uds entran a hablar lo hacen de forma que parece que es una tontería hablar aquí porque ya se sabe todo y lo que hacemos es el tonto de diversas maneras, ya sea posteando cosas que no tienen nada que ver con Xbox One o volviendo a sacar temas que parecían zanjados, etc etc...

No voy a entrar en quien es más tonto, si nosotros por hablar o vosotros por intentar convencernos de que no lo hagamos.

Yo no soy un publicista de Xbox One ni de PS4, soy como la inmensa mayoría un tipo normal que le encanta la tecnología pero no tengo unos grandes conocimientos en materias de hardware. Repito, estoy seguro de que el 99% de los que seguimos/escribimos en este hilo coinciden con mi perfil.

Tampoco voy a entrar en si lo que mantiene este hilo es que de verdad hay motivos para pensar que Xbox One es una aproximación de la tecnología del futuro con tecnologías existentes o por el contrarío, sólo pensamos así porque somos victimas de una campaña de Underground-Marqueting.

Lo que no se puede negar es que si este hilo sigue "ardiendo", y algunos parecen empeñados en extinguirlo.

Yo os explico como extinguirlo rápidamente.

Si tan claro lo véis todo, no creo que os cueste mucho hacer una comparación punto por punto (imprescindible) de la arquitectura de PS4 vs APU(current gen) vs Xbox One.

En el momento en el que veamos, que efectivamente Xbox One es, practicamente igual que PS4, y, a APUS current gen, nos habréis cerrado la boca.

Sin embargo, si durante el proceso, descubrís que PS4 y las APUS current gen se parecen mucho y, por su parte Xbox One se parece más a lo que está por salir... pues.... [chulito] ejem. Bienvenidos al club.

Un saudo!!! [sonrisa]
Es que encima eso se saca de la propia entrevista:

To facilitate this, in addition to asynchronous compute queues, the Xbox One hardware supports two concurrent render pipes.


La verdad, que no se que es lo que no se entiende de la propia entrevista. Juntas los párrafos y es que es indiscutible.

Sin embargo no hay que olvidar que los ROPs son limitados por lo que igual dedicarse todo el tiempo a doble rendering daría casos de tiempo ocioso. Para evitarlo parte debería usarse en computación, algo en lo cual en M$ están muy interesados, basta ver la propia web de XOne.
amovilar escribió:
pspskulls escribió:Bueno, dado el despropósito al que se está llegando en este hilo voy a explicar lo que significa el PDF famoso.

Primero unas preguntas y respuestas rápidas importantes para entender la explicación:
- ¿Tiene Xbox ONE doble GPU?: NO.
- ¿Reserva ONE CPs o CUs para el sistema?: NO.
- ¿Podemos tener una GPU que admita multihilo sin tener doble contexto gráfico?: SI. Podemos tener 2 CP pidiendo tareas a la GPU y la GPU irá realizando las tareas pero no simultáneamente (por ejemplo pensad en un núcleo de CPU de 2 hilos, lo que ejecutan no es simultáneo sino que los hilos cogen la capacidad de proceso según el otro hilo ya no lo necesita). Para que una GPU realice dos tareas GRÁFICAS en paralelo DEBE tener 2 contextos gráficos (no podemos pintar en un lienzo en dos puntos al mismo tiempo si no tenemos dos pinceles). Resalto gráficas porque una GPU puede realizar GPGPU al mismo tiempo que renderiza.

Aquí habláis desde la teoría pero no desde la práctica., y es por eso que no se entiende el porqué de la estructura de One. Para entender la tecnología hay que entender el rendering, el porqué y el cómo se hacen las distintas técnicas actuales y futuras. El factor determinante es el doble contexto gráfico. Ésto es MUY importante, la clave es la palabra "gráfico".

Un ejemplo muy sencillo de renderizado de sombras seria: CPU prepara y pide crear una sombra de un objeto, la GPU entra en juego y la genera. Y así sucesivamente por cada sombra. Hay que tener una cosa MUY clara, renderizar una sombra no necesita PARA NADA los 12 CUs de la consola, ni por tener 12 o 18 va a renderizarla más rápido, una sombra necesita una capacidad de cómputo determinada y que posiblemente con 1 única CU nos bastaría. El problema es que cuando se renderiza se OCUPA la GPU, por lo tanto aunque no necesitemos los 12 CUs, los 12 CUs se van a bloquear para poder pintar la sombra. Obviamente podemos distribuir los CUs, y decir que sólo queremos usar un máximo de CUs para renderizado, y el resto para GPGPU (y aprovechar así el tiempo de renderizado para sacar cómputo). Pero a la hora de renderizar y para los CUs asignados a renderizar TODOS quedan bloqueados.

A partir de aquí C es CPU y G es GPU. Si queremos generar 4 sombras tenemos:
C > G > C > G > C > G > C > G

¿Qué sucede en One?. Que al tener 2 contextos gráficos puede renderizar 2 sombras al mismo tiempo. Con lo que nos queda:

> G > G
C > C
> G > G

Esto es, ni más ni menos, que la mitad del tiempo. ¿Estamos duplicando en este caso el rendimiento gráfico de One?: SÍ. ¿Es One más potente por ello?: NO. La capacidad de cómputo de One es la misma solo que el rendimiento es el doble.

Otro ejemplo seria un engine gráfico basado en tiled forward (http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading). Esta implementación se basa en generar el frame final a base de tiles o porciones de pantalla pequeñas (pequeños rectángulos). A parte de las características negativas y positivas de ésta técnica (toda técnica tiene su lado bueno y su lado malo), a dónde quiero ir a parar es en el hecho en el que... teniendo 2 contextos gráficos simultáneos podemos dibujar 2 de esas porciones SIMULTÁNEAMENTE. Con lo que el resultado es que obtenemos el frame en la mitad del tiempo y por tanto doblamos el rendimiento. Aquí también quiero hacer incapié en otra característica única de One: su eSRAM. Dado que esta técnica no requiere de gran ancho de banda, lo que más le beneficia es una memoria RÁPIDA, es decir de bajísima latencia (no confundir RAPIDEZ con ANCHO DE BANDA, no tienen NADA que ver, la rapidez la determina el tiempo para que la memoria vuelva a estar disponible para una nueva petición y ahí importa la latencia, el ancho de banda sólo sirve para MOVER grandes cantidades de memoria de un punto A a un punto B). Quiero decir con esto que de aplicar esta técnica en ambas consolas, One ganaría por absoluta goleada. Pero si aplicamos técnicas más antiguas como un deferred engine PS4 tiene ventaja por su ancho de banda (y de aquí vienen las diferencias en multis hasta ahora en cuanto a resolución o framerate).

A todo esto hay que añadirle que One tiene Full HSA, es decir coherencia total de memoria, algo básico si tenemos más de un contexto gráfico y además GPGPU, porque sí, One puede renderizar dos cosas y hacer GPGPU AL MISMO TIEMPO y compartiendo la MISMA memoria. Y esto es MUY potente y da una serie de posibilidades únicas.

¿Bien... significa todo esto que One doblará su rendimiento?: NO. One doblará su rendimiento GRÁFICO en múltiples tareas gráficas pero el rendimiento GLOBAL de un juego no SÓLO depende de la GPU. Hay muchos otros factores: CPU, memoria, técnicas gráficas utilizadas...

Ahora bien, si a mi se me pregunta: ¿Cuánto crees en promedio que mejorará el rendimiento de One?. Sinceramente y, bajo MI opinión, One incrementará con DX12 el rendimiento entre un 50 a un 75%.

Sorry por el tocho y espero haber dejado bastantes cosas claras.

Una explicación increíble, sencilla y para todos los públicos

Me quito el sombrero

Imagen






+1
Urian está baneado del subforo por "Troll"
darksch escribió:No, os pongáis como os pongáis un CP no está exclusivamente dedicado al sistema. Sería absurdo dedicar la mitad de los recursos a algo que necesita un 10%. El 2o puede cambiar perfectamente entre juego y sistema, y de hecho es lo que hace. La otra unidad de geometría supongo que también estará dedicada al sistema...venga no os flipéis.

Si el reparto fuera 50/50 pues si lo más natural sería eso. Pero es 90/10 por lo que el 2o lo que hace es cambiar de contexto entre sistema y juego. Por lo que en teoría es tener 1,80 CP para el juego, en la practica algo menos por esos cambios que tiene que hacer la 2a, pero en la practica todo es siempre menos que en la teoría.

Pero si además lo dice la propia entrevista que se ha puesto hace nada, la parte final, donde dice claramente lo de rellenar huecos y hacer 2 cosas a la vez en el tiempo que el sistema no lo necesita, dedicarlo a la aplicación high. No entiendo la necesidad de negar algo que tenéis delante mismo.


Ejem...

Imagen

:p
Bonito libro de...¿1992?
papatuelo escribió:Bonito libro de...¿1992?

1993 aunque seguro @urian ya lo sabia
La primera edición creo que es de 1992, por eso lo pone como ejemplo de sistemas operativos "modernos". Todo el mundo sabe que desde el 92 no ha pasado nada, ¿que va a pasar en 22 años de nada?
papatuelo escribió:La primera edición creo que es de 1992, por eso lo pone como ejemplo de sistemas operativos "modernos". Todo el mundo sabe que desde el 92 no ha pasado nada, ¿que va a pasar en 22 años de nada?

Su imprenta fue en 1993.

( de otra cosa no pero de libros entiendo xD )

Espera y te busco un sitio que venga que desde donde yo lo miro sin estar registrado no te aparece xD


edito :

http://www.urbe.edu/UDWLibrary/InfoBook.do?id=2270

pie de imprenta 1993.

A partir de ahi ya saldria cuando le diera la gana xD ( ya si hubo otra version es otra cosa)

Aun asi no entiendo que tiene que ver este libro con lo que dice dark. Pero bueno con esto dejo el offtopic ^^
pspskulls escribió:Bueno, dado el despropósito al que se está llegando en este hilo voy a explicar lo que significa el PDF famoso.

Primero unas preguntas y respuestas rápidas importantes para entender la explicación:
- ¿Tiene Xbox ONE doble GPU?: NO.
- ¿Reserva ONE CPs o CUs para el sistema?: NO.
- ¿Podemos tener una GPU que admita multihilo sin tener doble contexto gráfico?: SI. Podemos tener 2 CP pidiendo tareas a la GPU y la GPU irá realizando las tareas pero no simultáneamente (por ejemplo pensad en un núcleo de CPU de 2 hilos, lo que ejecutan no es simultáneo sino que los hilos cogen la capacidad de proceso según el otro hilo ya no lo necesita). Para que una GPU realice dos tareas GRÁFICAS en paralelo DEBE tener 2 contextos gráficos (no podemos pintar en un lienzo en dos puntos al mismo tiempo si no tenemos dos pinceles). Resalto gráficas porque una GPU puede realizar GPGPU al mismo tiempo que renderiza.

Aquí habláis desde la teoría pero no desde la práctica., y es por eso que no se entiende el porqué de la estructura de One. Para entender la tecnología hay que entender el rendering, el porqué y el cómo se hacen las distintas técnicas actuales y futuras. El factor determinante es el doble contexto gráfico. Ésto es MUY importante, la clave es la palabra "gráfico".

Un ejemplo muy sencillo de renderizado de sombras seria: CPU prepara y pide crear una sombra de un objeto, la GPU entra en juego y la genera. Y así sucesivamente por cada sombra. Hay que tener una cosa MUY clara, renderizar una sombra no necesita PARA NADA los 12 CUs de la consola, ni por tener 12 o 18 va a renderizarla más rápido, una sombra necesita una capacidad de cómputo determinada y que posiblemente con 1 única CU nos bastaría. El problema es que cuando se renderiza se OCUPA la GPU, por lo tanto aunque no necesitemos los 12 CUs, los 12 CUs se van a bloquear para poder pintar la sombra. Obviamente podemos distribuir los CUs, y decir que sólo queremos usar un máximo de CUs para renderizado, y el resto para GPGPU (y aprovechar así el tiempo de renderizado para sacar cómputo). Pero a la hora de renderizar y para los CUs asignados a renderizar TODOS quedan bloqueados.

A partir de aquí C es CPU y G es GPU. Si queremos generar 4 sombras tenemos:
C > G > C > G > C > G > C > G

¿Qué sucede en One?. Que al tener 2 contextos gráficos puede renderizar 2 sombras al mismo tiempo. Con lo que nos queda:

> G > G
C > C
> G > G

Esto es, ni más ni menos, que la mitad del tiempo. ¿Estamos duplicando en este caso el rendimiento gráfico de One?: SÍ. ¿Es One más potente por ello?: NO. La capacidad de cómputo de One es la misma solo que el rendimiento es el doble.

Otro ejemplo seria un engine gráfico basado en tiled forward (http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading). Esta implementación se basa en generar el frame final a base de tiles o porciones de pantalla pequeñas (pequeños rectángulos). A parte de las características negativas y positivas de ésta técnica (toda técnica tiene su lado bueno y su lado malo), a dónde quiero ir a parar es en el hecho en el que... teniendo 2 contextos gráficos simultáneos podemos dibujar 2 de esas porciones SIMULTÁNEAMENTE. Con lo que el resultado es que obtenemos el frame en la mitad del tiempo y por tanto doblamos el rendimiento. Aquí también quiero hacer incapié en otra característica única de One: su eSRAM. Dado que esta técnica no requiere de gran ancho de banda, lo que más le beneficia es una memoria RÁPIDA, es decir de bajísima latencia (no confundir RAPIDEZ con ANCHO DE BANDA, no tienen NADA que ver, la rapidez la determina el tiempo para que la memoria vuelva a estar disponible para una nueva petición y ahí importa la latencia, el ancho de banda sólo sirve para MOVER grandes cantidades de memoria de un punto A a un punto B). Quiero decir con esto que de aplicar esta técnica en ambas consolas, One ganaría por absoluta goleada. Pero si aplicamos técnicas más antiguas como un deferred engine PS4 tiene ventaja por su ancho de banda (y de aquí vienen las diferencias en multis hasta ahora en cuanto a resolución o framerate).

A todo esto hay que añadirle que One tiene Full HSA, es decir coherencia total de memoria, algo básico si tenemos más de un contexto gráfico y además GPGPU, porque sí, One puede renderizar dos cosas y hacer GPGPU AL MISMO TIEMPO y compartiendo la MISMA memoria. Y esto es MUY potente y da una serie de posibilidades únicas.

¿Bien... significa todo esto que One doblará su rendimiento?: NO. One doblará su rendimiento GRÁFICO en múltiples tareas gráficas pero el rendimiento GLOBAL de un juego no SÓLO depende de la GPU. Hay muchos otros factores: CPU, memoria, técnicas gráficas utilizadas...

Ahora bien, si a mi se me pregunta: ¿Cuánto crees en promedio que mejorará el rendimiento de One?. Sinceramente y, bajo MI opinión, One incrementará con DX12 el rendimiento entre un 50 a un 75%.

Sorry por el tocho y espero haber dejado bastantes cosas claras.



Primero gracias por la explicación, pero hay una cosa que no comprendo....si se duplica el rendimiento gráfico (o casi) con directx12 cómo se explica que no sea más potente?

No quiere decir eso que podrá mostrar más y mejores gráficos con directx12 y su hardware y conforme se mejore más el api mejores aún?

Alguien también va a decir ahora que no tiene más y mejor margen de mejora que la competencia al tener un hardware pensado para un futuro cercano?

Salu2
castigo diario escribió:
pspskulls escribió:Bueno, dado el despropósito al que se está llegando en este hilo voy a explicar lo que significa el PDF famoso.

Primero unas preguntas y respuestas rápidas importantes para entender la explicación:
- ¿Tiene Xbox ONE doble GPU?: NO.
- ¿Reserva ONE CPs o CUs para el sistema?: NO.
- ¿Podemos tener una GPU que admita multihilo sin tener doble contexto gráfico?: SI. Podemos tener 2 CP pidiendo tareas a la GPU y la GPU irá realizando las tareas pero no simultáneamente (por ejemplo pensad en un núcleo de CPU de 2 hilos, lo que ejecutan no es simultáneo sino que los hilos cogen la capacidad de proceso según el otro hilo ya no lo necesita). Para que una GPU realice dos tareas GRÁFICAS en paralelo DEBE tener 2 contextos gráficos (no podemos pintar en un lienzo en dos puntos al mismo tiempo si no tenemos dos pinceles). Resalto gráficas porque una GPU puede realizar GPGPU al mismo tiempo que renderiza.

Aquí habláis desde la teoría pero no desde la práctica., y es por eso que no se entiende el porqué de la estructura de One. Para entender la tecnología hay que entender el rendering, el porqué y el cómo se hacen las distintas técnicas actuales y futuras. El factor determinante es el doble contexto gráfico. Ésto es MUY importante, la clave es la palabra "gráfico".

Un ejemplo muy sencillo de renderizado de sombras seria: CPU prepara y pide crear una sombra de un objeto, la GPU entra en juego y la genera. Y así sucesivamente por cada sombra. Hay que tener una cosa MUY clara, renderizar una sombra no necesita PARA NADA los 12 CUs de la consola, ni por tener 12 o 18 va a renderizarla más rápido, una sombra necesita una capacidad de cómputo determinada y que posiblemente con 1 única CU nos bastaría. El problema es que cuando se renderiza se OCUPA la GPU, por lo tanto aunque no necesitemos los 12 CUs, los 12 CUs se van a bloquear para poder pintar la sombra. Obviamente podemos distribuir los CUs, y decir que sólo queremos usar un máximo de CUs para renderizado, y el resto para GPGPU (y aprovechar así el tiempo de renderizado para sacar cómputo). Pero a la hora de renderizar y para los CUs asignados a renderizar TODOS quedan bloqueados.

A partir de aquí C es CPU y G es GPU. Si queremos generar 4 sombras tenemos:
C > G > C > G > C > G > C > G

¿Qué sucede en One?. Que al tener 2 contextos gráficos puede renderizar 2 sombras al mismo tiempo. Con lo que nos queda:

> G > G
C > C
> G > G

Esto es, ni más ni menos, que la mitad del tiempo. ¿Estamos duplicando en este caso el rendimiento gráfico de One?: SÍ. ¿Es One más potente por ello?: NO. La capacidad de cómputo de One es la misma solo que el rendimiento es el doble.

Otro ejemplo seria un engine gráfico basado en tiled forward (http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading). Esta implementación se basa en generar el frame final a base de tiles o porciones de pantalla pequeñas (pequeños rectángulos). A parte de las características negativas y positivas de ésta técnica (toda técnica tiene su lado bueno y su lado malo), a dónde quiero ir a parar es en el hecho en el que... teniendo 2 contextos gráficos simultáneos podemos dibujar 2 de esas porciones SIMULTÁNEAMENTE. Con lo que el resultado es que obtenemos el frame en la mitad del tiempo y por tanto doblamos el rendimiento. Aquí también quiero hacer incapié en otra característica única de One: su eSRAM. Dado que esta técnica no requiere de gran ancho de banda, lo que más le beneficia es una memoria RÁPIDA, es decir de bajísima latencia (no confundir RAPIDEZ con ANCHO DE BANDA, no tienen NADA que ver, la rapidez la determina el tiempo para que la memoria vuelva a estar disponible para una nueva petición y ahí importa la latencia, el ancho de banda sólo sirve para MOVER grandes cantidades de memoria de un punto A a un punto B). Quiero decir con esto que de aplicar esta técnica en ambas consolas, One ganaría por absoluta goleada. Pero si aplicamos técnicas más antiguas como un deferred engine PS4 tiene ventaja por su ancho de banda (y de aquí vienen las diferencias en multis hasta ahora en cuanto a resolución o framerate).

A todo esto hay que añadirle que One tiene Full HSA, es decir coherencia total de memoria, algo básico si tenemos más de un contexto gráfico y además GPGPU, porque sí, One puede renderizar dos cosas y hacer GPGPU AL MISMO TIEMPO y compartiendo la MISMA memoria. Y esto es MUY potente y da una serie de posibilidades únicas.

¿Bien... significa todo esto que One doblará su rendimiento?: NO. One doblará su rendimiento GRÁFICO en múltiples tareas gráficas pero el rendimiento GLOBAL de un juego no SÓLO depende de la GPU. Hay muchos otros factores: CPU, memoria, técnicas gráficas utilizadas...

Ahora bien, si a mi se me pregunta: ¿Cuánto crees en promedio que mejorará el rendimiento de One?. Sinceramente y, bajo MI opinión, One incrementará con DX12 el rendimiento entre un 50 a un 75%.

Sorry por el tocho y espero haber dejado bastantes cosas claras.



Primero gracias por la explicación, pero hay una cosa que no comprendo....si se duplica el rendimiento gráfico (o casi) con directx12 cómo se explica que no sea más potente?

No quiere decir eso que podrá mostrar más y mejores gráficos con directx12 y su hardware y conforme se mejore más el api mejores aún?

Alguien también va a decir ahora que no tiene más y mejor margen de mejora que la competencia al tener un hardware pensado para un futuro cercano?

Salu2


La potencia está marcada por el hardware que incorpora la consola y eso no va a cambiar con o sin DX12. A ésto de hecho se refirió Phil Spencer con sus famosas palabras.

Rendimiento significa aprovechar algo, en este caso esa potencia. Y sí, mayor rendimiento lógicamente significan mejores gráficos, porque por cada frame dispones de MÁS tiempo disponible. Si tu tienes un juego a 30fps, y necesitas 33ms para generar cada frame, si con DX12 mejoras un 50% significa que para ese mismo frame tardarías 24ms para generarlo, con lo que los restantes ms hasta 33 puedes usarlos para mejorar la capacidad visual del frame.

Tu puedes tener un coche con 200CV (potencia), pero su máximo de velocidad y capacidad para mantener esa velocidad puede ser menor a un coche que tiene 150CV pero que con un menor diseño (peso, adherencia, tracción, etc) permite aprovechar mucho mejor cada uno de esos CV.

En realidad mejor ejemplo para el coche de 200CV es si de repente cambiamos la gasolina que gasta por una mucho mejor llamada DX12, pues alcanzará mayor velocidad y con mejor estabilidad.
Impresionante cada una de tus explicaciones pspskulls
Se agradecen este tipo de explicaciones bien fundadas. Gracias.
pspskulls escribió:
castigo diario escribió:
pspskulls escribió:Bueno, dado el despropósito al que se está llegando en este hilo voy a explicar lo que significa el PDF famoso.

Primero unas preguntas y respuestas rápidas importantes para entender la explicación:
- ¿Tiene Xbox ONE doble GPU?: NO.
- ¿Reserva ONE CPs o CUs para el sistema?: NO.
- ¿Podemos tener una GPU que admita multihilo sin tener doble contexto gráfico?: SI. Podemos tener 2 CP pidiendo tareas a la GPU y la GPU irá realizando las tareas pero no simultáneamente (por ejemplo pensad en un núcleo de CPU de 2 hilos, lo que ejecutan no es simultáneo sino que los hilos cogen la capacidad de proceso según el otro hilo ya no lo necesita). Para que una GPU realice dos tareas GRÁFICAS en paralelo DEBE tener 2 contextos gráficos (no podemos pintar en un lienzo en dos puntos al mismo tiempo si no tenemos dos pinceles). Resalto gráficas porque una GPU puede realizar GPGPU al mismo tiempo que renderiza.

Aquí habláis desde la teoría pero no desde la práctica., y es por eso que no se entiende el porqué de la estructura de One. Para entender la tecnología hay que entender el rendering, el porqué y el cómo se hacen las distintas técnicas actuales y futuras. El factor determinante es el doble contexto gráfico. Ésto es MUY importante, la clave es la palabra "gráfico".

Un ejemplo muy sencillo de renderizado de sombras seria: CPU prepara y pide crear una sombra de un objeto, la GPU entra en juego y la genera. Y así sucesivamente por cada sombra. Hay que tener una cosa MUY clara, renderizar una sombra no necesita PARA NADA los 12 CUs de la consola, ni por tener 12 o 18 va a renderizarla más rápido, una sombra necesita una capacidad de cómputo determinada y que posiblemente con 1 única CU nos bastaría. El problema es que cuando se renderiza se OCUPA la GPU, por lo tanto aunque no necesitemos los 12 CUs, los 12 CUs se van a bloquear para poder pintar la sombra. Obviamente podemos distribuir los CUs, y decir que sólo queremos usar un máximo de CUs para renderizado, y el resto para GPGPU (y aprovechar así el tiempo de renderizado para sacar cómputo). Pero a la hora de renderizar y para los CUs asignados a renderizar TODOS quedan bloqueados.

A partir de aquí C es CPU y G es GPU. Si queremos generar 4 sombras tenemos:
C > G > C > G > C > G > C > G

¿Qué sucede en One?. Que al tener 2 contextos gráficos puede renderizar 2 sombras al mismo tiempo. Con lo que nos queda:

> G > G
C > C
> G > G

Esto es, ni más ni menos, que la mitad del tiempo. ¿Estamos duplicando en este caso el rendimiento gráfico de One?: SÍ. ¿Es One más potente por ello?: NO. La capacidad de cómputo de One es la misma solo que el rendimiento es el doble.

Otro ejemplo seria un engine gráfico basado en tiled forward (http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading). Esta implementación se basa en generar el frame final a base de tiles o porciones de pantalla pequeñas (pequeños rectángulos). A parte de las características negativas y positivas de ésta técnica (toda técnica tiene su lado bueno y su lado malo), a dónde quiero ir a parar es en el hecho en el que... teniendo 2 contextos gráficos simultáneos podemos dibujar 2 de esas porciones SIMULTÁNEAMENTE. Con lo que el resultado es que obtenemos el frame en la mitad del tiempo y por tanto doblamos el rendimiento. Aquí también quiero hacer incapié en otra característica única de One: su eSRAM. Dado que esta técnica no requiere de gran ancho de banda, lo que más le beneficia es una memoria RÁPIDA, es decir de bajísima latencia (no confundir RAPIDEZ con ANCHO DE BANDA, no tienen NADA que ver, la rapidez la determina el tiempo para que la memoria vuelva a estar disponible para una nueva petición y ahí importa la latencia, el ancho de banda sólo sirve para MOVER grandes cantidades de memoria de un punto A a un punto B). Quiero decir con esto que de aplicar esta técnica en ambas consolas, One ganaría por absoluta goleada. Pero si aplicamos técnicas más antiguas como un deferred engine PS4 tiene ventaja por su ancho de banda (y de aquí vienen las diferencias en multis hasta ahora en cuanto a resolución o framerate).

A todo esto hay que añadirle que One tiene Full HSA, es decir coherencia total de memoria, algo básico si tenemos más de un contexto gráfico y además GPGPU, porque sí, One puede renderizar dos cosas y hacer GPGPU AL MISMO TIEMPO y compartiendo la MISMA memoria. Y esto es MUY potente y da una serie de posibilidades únicas.

¿Bien... significa todo esto que One doblará su rendimiento?: NO. One doblará su rendimiento GRÁFICO en múltiples tareas gráficas pero el rendimiento GLOBAL de un juego no SÓLO depende de la GPU. Hay muchos otros factores: CPU, memoria, técnicas gráficas utilizadas...

Ahora bien, si a mi se me pregunta: ¿Cuánto crees en promedio que mejorará el rendimiento de One?. Sinceramente y, bajo MI opinión, One incrementará con DX12 el rendimiento entre un 50 a un 75%.

Sorry por el tocho y espero haber dejado bastantes cosas claras.



Primero gracias por la explicación, pero hay una cosa que no comprendo....si se duplica el rendimiento gráfico (o casi) con directx12 cómo se explica que no sea más potente?

No quiere decir eso que podrá mostrar más y mejores gráficos con directx12 y su hardware y conforme se mejore más el api mejores aún?

Alguien también va a decir ahora que no tiene más y mejor margen de mejora que la competencia al tener un hardware pensado para un futuro cercano?

Salu2


La potencia está marcada por el hardware que incorpora la consola y eso no va a cambiar con o sin DX12. A ésto de hecho se refirió Phil Spencer con sus famosas palabras.

Rendimiento significa aprovechar algo, en este caso esa potencia. Y sí, mayor rendimiento lógicamente significan mejores gráficos, porque por cada frame dispones de MÁS tiempo disponible. Si tu tienes un juego a 30fps, y necesitas 33ms para generar cada frame, si con DX12 mejoras un 50% significa que para ese mismo frame tardarías 24ms para generarlo, con lo que los restantes ms hasta 33 puedes usarlos para mejorar la capacidad visual del frame.

Tu puedes tener un coche con 200CV (potencia), pero su máximo de velocidad y capacidad para mantener esa velocidad puede ser menor a un coche que tiene 150CV pero que con un menor diseño (peso, adherencia, tracción, etc) permite aprovechar mucho mejor cada uno de esos CV.



estaba escribiendo algo parecido, pero tu te defiendes mucho mejor que yo ni por asomo me acerco a ti [plas] [plas] [plas]
un coche 300 caballos gasolina ,quema sus recursos rápidamente y no llega tan legos como un coche de 150c diesel aprovecha mas su rendimiento ,
Aldebaran323 escribió:Impresionante cada una de tus explicaciones pspskulls


Mi más sincera felicitación a pspskulls por su argumentación. Brillante como hacia tiempo no leía por este hilo y que a base de informar de un modo didáctico, con educación y sobretodo se nota que sabe de lo que habla.
[beer] [beer] [beer]
Gracias, post´s así hacen que aún merezca la pena leer por estos lares. Gran objetividad
pspskulls escribió:Bueno, dado el despropósito al que se está llegando en este hilo voy a explicar lo que significa el PDF famoso.

Primero unas preguntas y respuestas rápidas importantes para entender la explicación:
- ¿Tiene Xbox ONE doble GPU?: NO.
- ¿Reserva ONE CPs o CUs para el sistema?: NO.
- ¿Podemos tener una GPU que admita multihilo sin tener doble contexto gráfico?: SI. Podemos tener 2 CP pidiendo tareas a la GPU y la GPU irá realizando las tareas pero no simultáneamente (por ejemplo pensad en un núcleo de CPU de 2 hilos, lo que ejecutan no es simultáneo sino que los hilos cogen la capacidad de proceso según el otro hilo ya no lo necesita). Para que una GPU realice dos tareas GRÁFICAS en paralelo DEBE tener 2 contextos gráficos (no podemos pintar en un lienzo en dos puntos al mismo tiempo si no tenemos dos pinceles). Resalto gráficas porque una GPU puede realizar GPGPU al mismo tiempo que renderiza.

Aquí habláis desde la teoría pero no desde la práctica., y es por eso que no se entiende el porqué de la estructura de One. Para entender la tecnología hay que entender el rendering, el porqué y el cómo se hacen las distintas técnicas actuales y futuras. El factor determinante es el doble contexto gráfico. Ésto es MUY importante, la clave es la palabra "gráfico".

Un ejemplo muy sencillo de renderizado de sombras seria: CPU prepara y pide crear una sombra de un objeto, la GPU entra en juego y la genera. Y así sucesivamente por cada sombra. Hay que tener una cosa MUY clara, renderizar una sombra no necesita PARA NADA los 12 CUs de la consola, ni por tener 12 o 18 va a renderizarla más rápido, una sombra necesita una capacidad de cómputo determinada y que posiblemente con 1 única CU nos bastaría. El problema es que cuando se renderiza se OCUPA la GPU, por lo tanto aunque no necesitemos los 12 CUs, los 12 CUs se van a bloquear para poder pintar la sombra. Obviamente podemos distribuir los CUs, y decir que sólo queremos usar un máximo de CUs para renderizado, y el resto para GPGPU (y aprovechar así el tiempo de renderizado para sacar cómputo). Pero a la hora de renderizar y para los CUs asignados a renderizar TODOS quedan bloqueados.

A partir de aquí C es CPU y G es GPU. Si queremos generar 4 sombras tenemos:
C > G > C > G > C > G > C > G

¿Qué sucede en One?. Que al tener 2 contextos gráficos puede renderizar 2 sombras al mismo tiempo. Con lo que nos queda:

> G > G
C > C
> G > G

Esto es, ni más ni menos, que la mitad del tiempo. ¿Estamos duplicando en este caso el rendimiento gráfico de One?: SÍ. ¿Es One más potente por ello?: NO. La capacidad de cómputo de One es la misma solo que el rendimiento es el doble.

Otro ejemplo seria un engine gráfico basado en tiled forward (http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading). Esta implementación se basa en generar el frame final a base de tiles o porciones de pantalla pequeñas (pequeños rectángulos). A parte de las características negativas y positivas de ésta técnica (toda técnica tiene su lado bueno y su lado malo), a dónde quiero ir a parar es en el hecho en el que... teniendo 2 contextos gráficos simultáneos podemos dibujar 2 de esas porciones SIMULTÁNEAMENTE. Con lo que el resultado es que obtenemos el frame en la mitad del tiempo y por tanto doblamos el rendimiento. Aquí también quiero hacer incapié en otra característica única de One: su eSRAM. Dado que esta técnica no requiere de gran ancho de banda, lo que más le beneficia es una memoria RÁPIDA, es decir de bajísima latencia (no confundir RAPIDEZ con ANCHO DE BANDA, no tienen NADA que ver, la rapidez la determina el tiempo para que la memoria vuelva a estar disponible para una nueva petición y ahí importa la latencia, el ancho de banda sólo sirve para MOVER grandes cantidades de memoria de un punto A a un punto B). Quiero decir con esto que de aplicar esta técnica en ambas consolas, One ganaría por absoluta goleada. Pero si aplicamos técnicas más antiguas como un deferred engine PS4 tiene ventaja por su ancho de banda (y de aquí vienen las diferencias en multis hasta ahora en cuanto a resolución o framerate).

A todo esto hay que añadirle que One tiene Full HSA, es decir coherencia total de memoria, algo básico si tenemos más de un contexto gráfico y además GPGPU, porque sí, One puede renderizar dos cosas y hacer GPGPU AL MISMO TIEMPO y compartiendo la MISMA memoria. Y esto es MUY potente y da una serie de posibilidades únicas.

¿Bien... significa todo esto que One doblará su rendimiento?: NO. One doblará su rendimiento GRÁFICO en múltiples tareas gráficas pero el rendimiento GLOBAL de un juego no SÓLO depende de la GPU. Hay muchos otros factores: CPU, memoria, técnicas gráficas utilizadas...

Ahora bien, si a mi se me pregunta: ¿Cuánto crees en promedio que mejorará el rendimiento de One?. Sinceramente y, bajo MI opinión, One incrementará con DX12 el rendimiento entre un 50 a un 75%.

Sorry por el tocho y espero haber dejado bastantes cosas claras.





Te he entendido por completo....asi da gusto que te expliquen las cosas....
Tienes mis dieses compi
pspskulls escribió:Bueno, dado el despropósito al que se está llegando en este hilo voy a explicar lo que significa el PDF famoso.

Primero unas preguntas y respuestas rápidas importantes para entender la explicación:
- ¿Tiene Xbox ONE doble GPU?: NO.
- ¿Reserva ONE CPs o CUs para el sistema?: NO.
- ¿Podemos tener una GPU que admita multihilo sin tener doble contexto gráfico?: SI. Podemos tener 2 CP pidiendo tareas a la GPU y la GPU irá realizando las tareas pero no simultáneamente (por ejemplo pensad en un núcleo de CPU de 2 hilos, lo que ejecutan no es simultáneo sino que los hilos cogen la capacidad de proceso según el otro hilo ya no lo necesita). Para que una GPU realice dos tareas GRÁFICAS en paralelo DEBE tener 2 contextos gráficos (no podemos pintar en un lienzo en dos puntos al mismo tiempo si no tenemos dos pinceles). Resalto gráficas porque una GPU puede realizar GPGPU al mismo tiempo que renderiza.

Aquí habláis desde la teoría pero no desde la práctica., y es por eso que no se entiende el porqué de la estructura de One. Para entender la tecnología hay que entender el rendering, el porqué y el cómo se hacen las distintas técnicas actuales y futuras. El factor determinante es el doble contexto gráfico. Ésto es MUY importante, la clave es la palabra "gráfico".

Un ejemplo muy sencillo de renderizado de sombras seria: CPU prepara y pide crear una sombra de un objeto, la GPU entra en juego y la genera. Y así sucesivamente por cada sombra. Hay que tener una cosa MUY clara, renderizar una sombra no necesita PARA NADA los 12 CUs de la consola, ni por tener 12 o 18 va a renderizarla más rápido, una sombra necesita una capacidad de cómputo determinada y que posiblemente con 1 única CU nos bastaría. El problema es que cuando se renderiza se OCUPA la GPU, por lo tanto aunque no necesitemos los 12 CUs, los 12 CUs se van a bloquear para poder pintar la sombra. Obviamente podemos distribuir los CUs, y decir que sólo queremos usar un máximo de CUs para renderizado, y el resto para GPGPU (y aprovechar así el tiempo de renderizado para sacar cómputo). Pero a la hora de renderizar y para los CUs asignados a renderizar TODOS quedan bloqueados.

A partir de aquí C es CPU y G es GPU. Si queremos generar 4 sombras tenemos:
C > G > C > G > C > G > C > G

¿Qué sucede en One?. Que al tener 2 contextos gráficos puede renderizar 2 sombras al mismo tiempo. Con lo que nos queda:

> G > G
C > C
> G > G

Esto es, ni más ni menos, que la mitad del tiempo. ¿Estamos duplicando en este caso el rendimiento gráfico de One?: SÍ. ¿Es One más potente por ello?: NO. La capacidad de cómputo de One es la misma solo que el rendimiento es el doble.

Otro ejemplo seria un engine gráfico basado en tiled forward (http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading). Esta implementación se basa en generar el frame final a base de tiles o porciones de pantalla pequeñas (pequeños rectángulos). A parte de las características negativas y positivas de ésta técnica (toda técnica tiene su lado bueno y su lado malo), a dónde quiero ir a parar es en el hecho en el que... teniendo 2 contextos gráficos simultáneos podemos dibujar 2 de esas porciones SIMULTÁNEAMENTE. Con lo que el resultado es que obtenemos el frame en la mitad del tiempo y por tanto doblamos el rendimiento. Aquí también quiero hacer incapié en otra característica única de One: su eSRAM. Dado que esta técnica no requiere de gran ancho de banda, lo que más le beneficia es una memoria RÁPIDA, es decir de bajísima latencia (no confundir RAPIDEZ con ANCHO DE BANDA, no tienen NADA que ver, la rapidez la determina el tiempo para que la memoria vuelva a estar disponible para una nueva petición y ahí importa la latencia, el ancho de banda sólo sirve para MOVER grandes cantidades de memoria de un punto A a un punto B). Quiero decir con esto que de aplicar esta técnica en ambas consolas, One ganaría por absoluta goleada. Pero si aplicamos técnicas más antiguas como un deferred engine PS4 tiene ventaja por su ancho de banda (y de aquí vienen las diferencias en multis hasta ahora en cuanto a resolución o framerate).

A todo esto hay que añadirle que One tiene Full HSA, es decir coherencia total de memoria, algo básico si tenemos más de un contexto gráfico y además GPGPU, porque sí, One puede renderizar dos cosas y hacer GPGPU AL MISMO TIEMPO y compartiendo la MISMA memoria. Y esto es MUY potente y da una serie de posibilidades únicas.

¿Bien... significa todo esto que One doblará su rendimiento?: NO. One doblará su rendimiento GRÁFICO en múltiples tareas gráficas pero el rendimiento GLOBAL de un juego no SÓLO depende de la GPU. Hay muchos otros factores: CPU, memoria, técnicas gráficas utilizadas...

Ahora bien, si a mi se me pregunta: ¿Cuánto crees en promedio que mejorará el rendimiento de One?. Sinceramente y, bajo MI opinión, One incrementará con DX12 el rendimiento entre un 50 a un 75%.

Sorry por el tocho y espero haber dejado bastantes cosas claras.


¿"Sorry por el tocho"? Tienes que estar de coña XD Gracias por tomarte la molestia de escribir en este hilo, camarada :)
Urian está baneado del subforo por "Troll"
Joder, la gente cachondeandose del libro de Tanembaum. :(

¡Que triste, por Dios!
pspskulls escribió:Bueno, dado el despropósito al que se está llegando en este hilo voy a explicar lo que significa el PDF famoso.

Primero unas preguntas y respuestas rápidas importantes para entender la explicación:
- ¿Tiene Xbox ONE doble GPU?: NO.
- ¿Reserva ONE CPs o CUs para el sistema?: NO.
- ¿Podemos tener una GPU que admita multihilo sin tener doble contexto gráfico?: SI. Podemos tener 2 CP pidiendo tareas a la GPU y la GPU irá realizando las tareas pero no simultáneamente (por ejemplo pensad en un núcleo de CPU de 2 hilos, lo que ejecutan no es simultáneo sino que los hilos cogen la capacidad de proceso según el otro hilo ya no lo necesita). Para que una GPU realice dos tareas GRÁFICAS en paralelo DEBE tener 2 contextos gráficos (no podemos pintar en un lienzo en dos puntos al mismo tiempo si no tenemos dos pinceles). Resalto gráficas porque una GPU puede realizar GPGPU al mismo tiempo que renderiza.

Aquí habláis desde la teoría pero no desde la práctica., y es por eso que no se entiende el porqué de la estructura de One. Para entender la tecnología hay que entender el rendering, el porqué y el cómo se hacen las distintas técnicas actuales y futuras. El factor determinante es el doble contexto gráfico. Ésto es MUY importante, la clave es la palabra "gráfico".

Un ejemplo muy sencillo de renderizado de sombras seria: CPU prepara y pide crear una sombra de un objeto, la GPU entra en juego y la genera. Y así sucesivamente por cada sombra. Hay que tener una cosa MUY clara, renderizar una sombra no necesita PARA NADA los 12 CUs de la consola, ni por tener 12 o 18 va a renderizarla más rápido, una sombra necesita una capacidad de cómputo determinada y que posiblemente con 1 única CU nos bastaría. El problema es que cuando se renderiza se OCUPA la GPU, por lo tanto aunque no necesitemos los 12 CUs, los 12 CUs se van a bloquear para poder pintar la sombra. Obviamente podemos distribuir los CUs, y decir que sólo queremos usar un máximo de CUs para renderizado, y el resto para GPGPU (y aprovechar así el tiempo de renderizado para sacar cómputo). Pero a la hora de renderizar y para los CUs asignados a renderizar TODOS quedan bloqueados.

A partir de aquí C es CPU y G es GPU. Si queremos generar 4 sombras tenemos:
C > G > C > G > C > G > C > G

¿Qué sucede en One?. Que al tener 2 contextos gráficos puede renderizar 2 sombras al mismo tiempo. Con lo que nos queda:

> G > G
C > C
> G > G

Esto es, ni más ni menos, que la mitad del tiempo. ¿Estamos duplicando en este caso el rendimiento gráfico de One?: SÍ. ¿Es One más potente por ello?: NO. La capacidad de cómputo de One es la misma solo que el rendimiento es el doble.

Otro ejemplo seria un engine gráfico basado en tiled forward (http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading). Esta implementación se basa en generar el frame final a base de tiles o porciones de pantalla pequeñas (pequeños rectángulos). A parte de las características negativas y positivas de ésta técnica (toda técnica tiene su lado bueno y su lado malo), a dónde quiero ir a parar es en el hecho en el que... teniendo 2 contextos gráficos simultáneos podemos dibujar 2 de esas porciones SIMULTÁNEAMENTE. Con lo que el resultado es que obtenemos el frame en la mitad del tiempo y por tanto doblamos el rendimiento. Aquí también quiero hacer incapié en otra característica única de One: su eSRAM. Dado que esta técnica no requiere de gran ancho de banda, lo que más le beneficia es una memoria RÁPIDA, es decir de bajísima latencia (no confundir RAPIDEZ con ANCHO DE BANDA, no tienen NADA que ver, la rapidez la determina el tiempo para que la memoria vuelva a estar disponible para una nueva petición y ahí importa la latencia, el ancho de banda sólo sirve para MOVER grandes cantidades de memoria de un punto A a un punto B). Quiero decir con esto que de aplicar esta técnica en ambas consolas, One ganaría por absoluta goleada. Pero si aplicamos técnicas más antiguas como un deferred engine PS4 tiene ventaja por su ancho de banda (y de aquí vienen las diferencias en multis hasta ahora en cuanto a resolución o framerate).

A todo esto hay que añadirle que One tiene Full HSA, es decir coherencia total de memoria, algo básico si tenemos más de un contexto gráfico y además GPGPU, porque sí, One puede renderizar dos cosas y hacer GPGPU AL MISMO TIEMPO y compartiendo la MISMA memoria. Y esto es MUY potente y da una serie de posibilidades únicas.

¿Bien... significa todo esto que One doblará su rendimiento?: NO. One doblará su rendimiento GRÁFICO en múltiples tareas gráficas pero el rendimiento GLOBAL de un juego no SÓLO depende de la GPU. Hay muchos otros factores: CPU, memoria, técnicas gráficas utilizadas...

Ahora bien, si a mi se me pregunta: ¿Cuánto crees en promedio que mejorará el rendimiento de One?. Sinceramente y, bajo MI opinión, One incrementará con DX12 el rendimiento entre un 50 a un 75%.

Sorry por el tocho y espero haber dejado bastantes cosas claras.

Con comentarios así da gusto meterse en un foro a aprender.Aquí se nota la calidad de la información frente a la desinformación.+100000
darksch escribió:No, os pongáis como os pongáis un CP no está exclusivamente dedicado al sistema. Sería absurdo dedicar la mitad de los recursos a algo que necesita un 10%. El 2o puede cambiar perfectamente entre juego y sistema, y de hecho es lo que hace. La otra unidad de geometría supongo que también estará dedicada al sistema...venga no os flipéis.

Si el reparto fuera 50/50 pues si lo más natural sería eso. Pero es 90/10 por lo que el 2o lo que hace es cambiar de contexto entre sistema y juego. Por lo que en teoría es tener 1,80 CP para el juego, en la practica algo menos por esos cambios que tiene que hacer la 2a, pero en la practica todo es siempre menos que en la teoría.

Pero si además lo dice la propia entrevista que se ha puesto hace nada, la parte final, donde dice claramente lo de rellenar huecos y hacer 2 cosas a la vez en el tiempo que el sistema no lo necesita, dedicarlo a la aplicación high. No entiendo la necesidad de negar algo que tenéis delante mismo.


¡Por fin! Context switch, QoS... pero no oye, para acoplar los mensajes hacen falta 6 CU y un CP
Genial el símil del pintor con dos pinceles!! Felicitaciones pspskulls!!

@Urian
En vez de poner la portada de un libro, que no dudo explique las bases de todo SO operativo moderno, cúrrate más tus apotaciones. Sin duda puedes ser muy didáctico, como has demostrado muchas veces en tu blog, pero desde luego tu actitud aquí como en otro foro que conoces no aporta nada más que una imagen de arrogancia

Saludos
Pspskulls, gracias! Eso es opinar, y no soltar los rollos vomitivos de otros.

Enhorabuena, crack! [oki]
Urian está baneado del subforo por "Troll"
aelio escribió:Genial el símil del pintor con dos pinceles!! Felicitaciones pspskulls!!

@Urian
En vez de poner la portada de un libro, que no dudo explique las bases de todo SO operativo moderno, cúrrate más tus apotaciones. Sin duda puedes ser muy didáctico, como has demostrado muchas veces en tu blog, pero desde luego tu actitud aquí como en otro foro que conoces no aporta nada más que una imagen de arrogancia

Saludos


Arrogancia no, el hecho de que se utilicen dos procesadores de comandos en la GPU tiene que ver con la forma en la que un SO lleva los procesos que comunican con el hardware. De ahí la recomendación del libro, no es por joder, es porque esta gratuito por internet y es con el que yo y mucha gente ha estudiado.
pspskulls escribió:
castigo diario escribió:
pspskulls escribió:Bueno, dado el despropósito al que se está llegando en este hilo voy a explicar lo que significa el PDF famoso.

Primero unas preguntas y respuestas rápidas importantes para entender la explicación:
- ¿Tiene Xbox ONE doble GPU?: NO.
- ¿Reserva ONE CPs o CUs para el sistema?: NO.
- ¿Podemos tener una GPU que admita multihilo sin tener doble contexto gráfico?: SI. Podemos tener 2 CP pidiendo tareas a la GPU y la GPU irá realizando las tareas pero no simultáneamente (por ejemplo pensad en un núcleo de CPU de 2 hilos, lo que ejecutan no es simultáneo sino que los hilos cogen la capacidad de proceso según el otro hilo ya no lo necesita). Para que una GPU realice dos tareas GRÁFICAS en paralelo DEBE tener 2 contextos gráficos (no podemos pintar en un lienzo en dos puntos al mismo tiempo si no tenemos dos pinceles). Resalto gráficas porque una GPU puede realizar GPGPU al mismo tiempo que renderiza.

Aquí habláis desde la teoría pero no desde la práctica., y es por eso que no se entiende el porqué de la estructura de One. Para entender la tecnología hay que entender el rendering, el porqué y el cómo se hacen las distintas técnicas actuales y futuras. El factor determinante es el doble contexto gráfico. Ésto es MUY importante, la clave es la palabra "gráfico".

Un ejemplo muy sencillo de renderizado de sombras seria: CPU prepara y pide crear una sombra de un objeto, la GPU entra en juego y la genera. Y así sucesivamente por cada sombra. Hay que tener una cosa MUY clara, renderizar una sombra no necesita PARA NADA los 12 CUs de la consola, ni por tener 12 o 18 va a renderizarla más rápido, una sombra necesita una capacidad de cómputo determinada y que posiblemente con 1 única CU nos bastaría. El problema es que cuando se renderiza se OCUPA la GPU, por lo tanto aunque no necesitemos los 12 CUs, los 12 CUs se van a bloquear para poder pintar la sombra. Obviamente podemos distribuir los CUs, y decir que sólo queremos usar un máximo de CUs para renderizado, y el resto para GPGPU (y aprovechar así el tiempo de renderizado para sacar cómputo). Pero a la hora de renderizar y para los CUs asignados a renderizar TODOS quedan bloqueados.

A partir de aquí C es CPU y G es GPU. Si queremos generar 4 sombras tenemos:
C > G > C > G > C > G > C > G

¿Qué sucede en One?. Que al tener 2 contextos gráficos puede renderizar 2 sombras al mismo tiempo. Con lo que nos queda:

> G > G
C > C
> G > G

Esto es, ni más ni menos, que la mitad del tiempo. ¿Estamos duplicando en este caso el rendimiento gráfico de One?: SÍ. ¿Es One más potente por ello?: NO. La capacidad de cómputo de One es la misma solo que el rendimiento es el doble.

Otro ejemplo seria un engine gráfico basado en tiled forward (http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading). Esta implementación se basa en generar el frame final a base de tiles o porciones de pantalla pequeñas (pequeños rectángulos). A parte de las características negativas y positivas de ésta técnica (toda técnica tiene su lado bueno y su lado malo), a dónde quiero ir a parar es en el hecho en el que... teniendo 2 contextos gráficos simultáneos podemos dibujar 2 de esas porciones SIMULTÁNEAMENTE. Con lo que el resultado es que obtenemos el frame en la mitad del tiempo y por tanto doblamos el rendimiento. Aquí también quiero hacer incapié en otra característica única de One: su eSRAM. Dado que esta técnica no requiere de gran ancho de banda, lo que más le beneficia es una memoria RÁPIDA, es decir de bajísima latencia (no confundir RAPIDEZ con ANCHO DE BANDA, no tienen NADA que ver, la rapidez la determina el tiempo para que la memoria vuelva a estar disponible para una nueva petición y ahí importa la latencia, el ancho de banda sólo sirve para MOVER grandes cantidades de memoria de un punto A a un punto B). Quiero decir con esto que de aplicar esta técnica en ambas consolas, One ganaría por absoluta goleada. Pero si aplicamos técnicas más antiguas como un deferred engine PS4 tiene ventaja por su ancho de banda (y de aquí vienen las diferencias en multis hasta ahora en cuanto a resolución o framerate).

A todo esto hay que añadirle que One tiene Full HSA, es decir coherencia total de memoria, algo básico si tenemos más de un contexto gráfico y además GPGPU, porque sí, One puede renderizar dos cosas y hacer GPGPU AL MISMO TIEMPO y compartiendo la MISMA memoria. Y esto es MUY potente y da una serie de posibilidades únicas.

¿Bien... significa todo esto que One doblará su rendimiento?: NO. One doblará su rendimiento GRÁFICO en múltiples tareas gráficas pero el rendimiento GLOBAL de un juego no SÓLO depende de la GPU. Hay muchos otros factores: CPU, memoria, técnicas gráficas utilizadas...

Ahora bien, si a mi se me pregunta: ¿Cuánto crees en promedio que mejorará el rendimiento de One?. Sinceramente y, bajo MI opinión, One incrementará con DX12 el rendimiento entre un 50 a un 75%.

Sorry por el tocho y espero haber dejado bastantes cosas claras.



Primero gracias por la explicación, pero hay una cosa que no comprendo....si se duplica el rendimiento gráfico (o casi) con directx12 cómo se explica que no sea más potente?

No quiere decir eso que podrá mostrar más y mejores gráficos con directx12 y su hardware y conforme se mejore más el api mejores aún?

Alguien también va a decir ahora que no tiene más y mejor margen de mejora que la competencia al tener un hardware pensado para un futuro cercano?

Salu2


La potencia está marcada por el hardware que incorpora la consola y eso no va a cambiar con o sin DX12. A ésto de hecho se refirió Phil Spencer con sus famosas palabras.

Rendimiento significa aprovechar algo, en este caso esa potencia. Y sí, mayor rendimiento lógicamente significan mejores gráficos, porque por cada frame dispones de MÁS tiempo disponible. Si tu tienes un juego a 30fps, y necesitas 33ms para generar cada frame, si con DX12 mejoras un 50% significa que para ese mismo frame tardarías 24ms para generarlo, con lo que los restantes ms hasta 33 puedes usarlos para mejorar la capacidad visual del frame.

Tu puedes tener un coche con 200CV (potencia), pero su máximo de velocidad y capacidad para mantener esa velocidad puede ser menor a un coche que tiene 150CV pero que con un menor diseño (peso, adherencia, tracción, etc) permite aprovechar mucho mejor cada uno de esos CV.

En realidad mejor ejemplo para el coche de 200CV es si de repente cambiamos la gasolina que gasta por una mucho mejor llamada DX12, pues alcanzará mayor velocidad y con mejor estabilidad.


ok gracias compañero ya me queda más claro ahora.

Resumiendo.......que todos los que han comparado ps4 y xbox one teniendo solo en cuenta la "potencia" o teraflops están más confundidos que un hijoputa buscando la cartilla de nacimiento.

Y la culpa no es de ellos totalmente, han sido engañados una vez más dejandose llevar por modas absurdas de frames, resoluciones, flops y demás números...ya hablarán los juegos con el tiempo.

Salu2
Urian escribió:
aelio escribió:Genial el símil del pintor con dos pinceles!! Felicitaciones pspskulls!!

@Urian
En vez de poner la portada de un libro, que no dudo explique las bases de todo SO operativo moderno, cúrrate más tus apotaciones. Sin duda puedes ser muy didáctico, como has demostrado muchas veces en tu blog, pero desde luego tu actitud aquí como en otro foro que conoces no aporta nada más que una imagen de arrogancia

Saludos


Arrogancia no, el hecho de que se utilicen dos procesadores de comandos en la GPU tiene que ver con la forma en la que un SO lleva los procesos que comunican con el hardware. De ahí la recomendación del libro, no es por joder, es porque esta gratuito por internet y es con el que yo y mucha gente ha estudiado.


Urian, me vas a permitir comentarte una cosilla, y es que ultimamente andas perdidisimo. Antes tus aportaciones sobre el hardware eran bastante coherentes y merecia la pena ser leidas, pero ultimamente parece que absolutamente todos tus textos parecen mas una pataleta con los de "el otro foro" que otra cosa, y te entiendo, pero es que tengo la impresion de que estas dando mas palos de ciego que nunca, por poner un ejemplo mas atras dices que no tiene dos procesadores de comandos, afirmandolo categoricamente, te dicen que no es cierto, que en el paper pone que 2 y "acomodas" tu argumentacion para seguir diciendo que no es nada positivo. Es decir, que tienes unos prejuicios tremendos y te lo has tomado como una guerra personal con esos que van haciendo pantallazos y ji ji jajaja dandose palmaditas en la espalda y diciendo que nos estaban owneando a todos en su foro XD XD
pspskulls escribió:Bueno, dado el despropósito al que se está llegando en este hilo voy a explicar lo que significa el PDF famoso.

Primero unas preguntas y respuestas rápidas importantes para entender la explicación:
- ¿Tiene Xbox ONE doble GPU?: NO.
- ¿Reserva ONE CPs o CUs para el sistema?: NO.
- ¿Podemos tener una GPU que admita multihilo sin tener doble contexto gráfico?: SI. Podemos tener 2 CP pidiendo tareas a la GPU y la GPU irá realizando las tareas pero no simultáneamente (por ejemplo pensad en un núcleo de CPU de 2 hilos, lo que ejecutan no es simultáneo sino que los hilos cogen la capacidad de proceso según el otro hilo ya no lo necesita). Para que una GPU realice dos tareas GRÁFICAS en paralelo DEBE tener 2 contextos gráficos (no podemos pintar en un lienzo en dos puntos al mismo tiempo si no tenemos dos pinceles). Resalto gráficas porque una GPU puede realizar GPGPU al mismo tiempo que renderiza.

Aquí habláis desde la teoría pero no desde la práctica., y es por eso que no se entiende el porqué de la estructura de One. Para entender la tecnología hay que entender el rendering, el porqué y el cómo se hacen las distintas técnicas actuales y futuras. El factor determinante es el doble contexto gráfico. Ésto es MUY importante, la clave es la palabra "gráfico".

Un ejemplo muy sencillo de renderizado de sombras seria: CPU prepara y pide crear una sombra de un objeto, la GPU entra en juego y la genera. Y así sucesivamente por cada sombra. Hay que tener una cosa MUY clara, renderizar una sombra no necesita PARA NADA los 12 CUs de la consola, ni por tener 12 o 18 va a renderizarla más rápido, una sombra necesita una capacidad de cómputo determinada y que posiblemente con 1 única CU nos bastaría. El problema es que cuando se renderiza se OCUPA la GPU, por lo tanto aunque no necesitemos los 12 CUs, los 12 CUs se van a bloquear para poder pintar la sombra. Obviamente podemos distribuir los CUs, y decir que sólo queremos usar un máximo de CUs para renderizado, y el resto para GPGPU (y aprovechar así el tiempo de renderizado para sacar cómputo). Pero a la hora de renderizar y para los CUs asignados a renderizar TODOS quedan bloqueados.

A partir de aquí C es CPU y G es GPU. Si queremos generar 4 sombras tenemos:
C > G > C > G > C > G > C > G

¿Qué sucede en One?. Que al tener 2 contextos gráficos puede renderizar 2 sombras al mismo tiempo. Con lo que nos queda:

> G > G
C > C
> G > G

Esto es, ni más ni menos, que la mitad del tiempo. ¿Estamos duplicando en este caso el rendimiento gráfico de One?: SÍ. ¿Es One más potente por ello?: NO. La capacidad de cómputo de One es la misma solo que el rendimiento es el doble.

Otro ejemplo seria un engine gráfico basado en tiled forward (http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading). Esta implementación se basa en generar el frame final a base de tiles o porciones de pantalla pequeñas (pequeños rectángulos). A parte de las características negativas y positivas de ésta técnica (toda técnica tiene su lado bueno y su lado malo), a dónde quiero ir a parar es en el hecho en el que... teniendo 2 contextos gráficos simultáneos podemos dibujar 2 de esas porciones SIMULTÁNEAMENTE. Con lo que el resultado es que obtenemos el frame en la mitad del tiempo y por tanto doblamos el rendimiento. Aquí también quiero hacer incapié en otra característica única de One: su eSRAM. Dado que esta técnica no requiere de gran ancho de banda, lo que más le beneficia es una memoria RÁPIDA, es decir de bajísima latencia (no confundir RAPIDEZ con ANCHO DE BANDA, no tienen NADA que ver, la rapidez la determina el tiempo para que la memoria vuelva a estar disponible para una nueva petición y ahí importa la latencia, el ancho de banda sólo sirve para MOVER grandes cantidades de memoria de un punto A a un punto B). Quiero decir con esto que de aplicar esta técnica en ambas consolas, One ganaría por absoluta goleada. Pero si aplicamos técnicas más antiguas como un deferred engine PS4 tiene ventaja por su ancho de banda (y de aquí vienen las diferencias en multis hasta ahora en cuanto a resolución o framerate).

A todo esto hay que añadirle que One tiene Full HSA, es decir coherencia total de memoria, algo básico si tenemos más de un contexto gráfico y además GPGPU, porque sí, One puede renderizar dos cosas y hacer GPGPU AL MISMO TIEMPO y compartiendo la MISMA memoria. Y esto es MUY potente y da una serie de posibilidades únicas.

¿Bien... significa todo esto que One doblará su rendimiento?: NO. One doblará su rendimiento GRÁFICO en múltiples tareas gráficas pero el rendimiento GLOBAL de un juego no SÓLO depende de la GPU. Hay muchos otros factores: CPU, memoria, técnicas gráficas utilizadas...

Ahora bien, si a mi se me pregunta: ¿Cuánto crees en promedio que mejorará el rendimiento de One?. Sinceramente y, bajo MI opinión, One incrementará con DX12 el rendimiento entre un 50 a un 75%.

Sorry por el tocho y espero haber dejado bastantes cosas claras.


Estos son los aportes que molan. Que no se pierda por amor de dios.

Imagen
Urian escribió:
aelio escribió:Genial el símil del pintor con dos pinceles!! Felicitaciones pspskulls!!

@Urian
En vez de poner la portada de un libro, que no dudo explique las bases de todo SO operativo moderno, cúrrate más tus apotaciones. Sin duda puedes ser muy didáctico, como has demostrado muchas veces en tu blog, pero desde luego tu actitud aquí como en otro foro que conoces no aporta nada más que una imagen de arrogancia

Saludos


Arrogancia no, el hecho de que se utilicen dos procesadores de comandos en la GPU tiene que ver con la forma en la que un SO lleva los procesos que comunican con el hardware. De ahí la recomendación del libro, no es por joder, es porque esta gratuito por internet y es con el que yo y mucha gente ha estudiado.


Ya me imaginaba que la portada iba por ahí,pero si pones una pequeña explicación , como has hecho en este último post, pues mucho mejor, ya que muchos no conocemos el libro.

Aún así, podrías pasar un enlace please?
Gracias
Ya que estamos con los tiles, una duda que tengo personal a raiz de todo esto.

Los renders de diseño grafico con un motor como el vray, renderizan de diferente forma que un juego. ¿Cuales son las principales diferencias al renderizar?

Es que con lo del tile forward, la explicacion, me he acordado que vray usa un tile por nucleo de cpu y ya me ha entrado la duda de como se genera todo esto :P
Nuhar escribió:Ya que estamos con los tiles, una duda que tengo personal a raiz de todo esto.


Los renders de diseño grafico con un motor como el vray, renderizan de diferente forma que un juego. ¿Cuales son las principales diferencias al renderizar?

Es que con lo del tile forward, la explicacion, me he acordado que vray usa un tile por nucleo de cpu y ya me ha entrado la duda de como se genera todo esto :P


que sepa yo no hay ninguna diferencia vray se usa en juegos yo uso cinema4d y este ultimo renderiza tirando cpu
pspskulls escribió:Bueno, dado el despropósito al que se está llegando en este hilo voy a explicar lo que significa el PDF famoso.

Primero unas preguntas y respuestas rápidas importantes para entender la explicación:
- ¿Tiene Xbox ONE doble GPU?: NO.
- ¿Reserva ONE CPs o CUs para el sistema?: NO.
- ¿Podemos tener una GPU que admita multihilo sin tener doble contexto gráfico?: SI. Podemos tener 2 CP pidiendo tareas a la GPU y la GPU irá realizando las tareas pero no simultáneamente (por ejemplo pensad en un núcleo de CPU de 2 hilos, lo que ejecutan no es simultáneo sino que los hilos cogen la capacidad de proceso según el otro hilo ya no lo necesita). Para que una GPU realice dos tareas GRÁFICAS en paralelo DEBE tener 2 contextos gráficos (no podemos pintar en un lienzo en dos puntos al mismo tiempo si no tenemos dos pinceles). Resalto gráficas porque una GPU puede realizar GPGPU al mismo tiempo que renderiza.

Aquí habláis desde la teoría pero no desde la práctica., y es por eso que no se entiende el porqué de la estructura de One. Para entender la tecnología hay que entender el rendering, el porqué y el cómo se hacen las distintas técnicas actuales y futuras. El factor determinante es el doble contexto gráfico. Ésto es MUY importante, la clave es la palabra "gráfico".

Un ejemplo muy sencillo de renderizado de sombras seria: CPU prepara y pide crear una sombra de un objeto, la GPU entra en juego y la genera. Y así sucesivamente por cada sombra. Hay que tener una cosa MUY clara, renderizar una sombra no necesita PARA NADA los 12 CUs de la consola, ni por tener 12 o 18 va a renderizarla más rápido, una sombra necesita una capacidad de cómputo determinada y que posiblemente con 1 única CU nos bastaría. El problema es que cuando se renderiza se OCUPA la GPU, por lo tanto aunque no necesitemos los 12 CUs, los 12 CUs se van a bloquear para poder pintar la sombra. Obviamente podemos distribuir los CUs, y decir que sólo queremos usar un máximo de CUs para renderizado, y el resto para GPGPU (y aprovechar así el tiempo de renderizado para sacar cómputo). Pero a la hora de renderizar y para los CUs asignados a renderizar TODOS quedan bloqueados.

A partir de aquí C es CPU y G es GPU. Si queremos generar 4 sombras tenemos:
C > G > C > G > C > G > C > G

¿Qué sucede en One?. Que al tener 2 contextos gráficos puede renderizar 2 sombras al mismo tiempo. Con lo que nos queda:

> G > G
C > C
> G > G

Esto es, ni más ni menos, que la mitad del tiempo. ¿Estamos duplicando en este caso el rendimiento gráfico de One?: SÍ. ¿Es One más potente por ello?: NO. La capacidad de cómputo de One es la misma solo que el rendimiento es el doble.

Otro ejemplo seria un engine gráfico basado en tiled forward (http://www.cse.chalmers.se/~olaolss/main_frame.php?contents=publication&id=tiled_shading). Esta implementación se basa en generar el frame final a base de tiles o porciones de pantalla pequeñas (pequeños rectángulos). A parte de las características negativas y positivas de ésta técnica (toda técnica tiene su lado bueno y su lado malo), a dónde quiero ir a parar es en el hecho en el que... teniendo 2 contextos gráficos simultáneos podemos dibujar 2 de esas porciones SIMULTÁNEAMENTE. Con lo que el resultado es que obtenemos el frame en la mitad del tiempo y por tanto doblamos el rendimiento. Aquí también quiero hacer incapié en otra característica única de One: su eSRAM. Dado que esta técnica no requiere de gran ancho de banda, lo que más le beneficia es una memoria RÁPIDA, es decir de bajísima latencia (no confundir RAPIDEZ con ANCHO DE BANDA, no tienen NADA que ver, la rapidez la determina el tiempo para que la memoria vuelva a estar disponible para una nueva petición y ahí importa la latencia, el ancho de banda sólo sirve para MOVER grandes cantidades de memoria de un punto A a un punto B). Quiero decir con esto que de aplicar esta técnica en ambas consolas, One ganaría por absoluta goleada. Pero si aplicamos técnicas más antiguas como un deferred engine PS4 tiene ventaja por su ancho de banda (y de aquí vienen las diferencias en multis hasta ahora en cuanto a resolución o framerate).

A todo esto hay que añadirle que One tiene Full HSA, es decir coherencia total de memoria, algo básico si tenemos más de un contexto gráfico y además GPGPU, porque sí, One puede renderizar dos cosas y hacer GPGPU AL MISMO TIEMPO y compartiendo la MISMA memoria. Y esto es MUY potente y da una serie de posibilidades únicas.

¿Bien... significa todo esto que One doblará su rendimiento?: NO. One doblará su rendimiento GRÁFICO en múltiples tareas gráficas pero el rendimiento GLOBAL de un juego no SÓLO depende de la GPU. Hay muchos otros factores: CPU, memoria, técnicas gráficas utilizadas...

Ahora bien, si a mi se me pregunta: ¿Cuánto crees en promedio que mejorará el rendimiento de One?. Sinceramente y, bajo MI opinión, One incrementará con DX12 el rendimiento entre un 50 a un 75%.

Sorry por el tocho y espero haber dejado bastantes cosas claras.


Toda esta explicación esta muy bien y desde luego es mucho mas coherente que los 4 tflops que tu compañero soltó el otro dia. Bastante mas sensato pero esa explicaciones que das siendo correcta para la CPU no lo es tanto para la GPU. Si quieres rellenar un polígono con una textura normalmente esa textura tendrá mínimo 1024x1024 píxeles. Seguramente mas. La GPU de xbox one tiene 768 stream procesos o alus. Como ves hay píxeles para utilizar todas las alus de toda la GPU para pintar una textura. La GPU es masivamente paralela por que el procesado grafico así lo aconseja debido a que es altamente paralelizable. La gpgpu ya es otra historia. A lo que quiero llegar es que eso de que para renderizar una sombra solo hace falta un cu no es correcto. Hacen falta siempre todos los cus. Todas las alus porque normalmente no pintaras una textura con menos píxeles que alus o pintaras una malla con menos vértices que alus. Así que no es correcto y por tanto esa tasa de mejora que podría tener sentido en CPU ) y tampoco por que el hyperthreading suele merar como un 30% a un 50% el rendimiento de un core fisico, en GPU es mucho menos efectivo. Los tiempos muertos de la GPU suelen ser culpa del ancho de banda o de la CPU en si misma mas que este infrautilizada por el pintado en si. La parte de gpgpu es distinta y ya no es tan paralelizable por lo que ahí si interesa tener cuantos mas dispatchers mejor para aprovechar los tiempos muertos lo mejor posible. Por eso xbo los aves de xbo están vitaminados y pueden manejar 32 primitivas simultáneamente.
Tenmos que acabar el dia bien no?
Brutal comentario de pspkulls. Superdidactico, me he sentido ingeniero y todo [plas] [plas] [plas]
Hasta yo he medio entendido lo que ha dicho el compañero @pspskulls . Muchas gracias por la aportación.
@Urian como quiera que un SO haga ese reparto pues a lo suyo. Te percatarás de tu error en que entonces las GPU con sólo 1 CP qué pasa, que no pueden hacer más que una cosa. Pues si ese CP puede cambiar de contexto por qué el 2º de la XOne no va a poder. Es decir, es que las GPU ya lo hacen con cualquier SO. Pon un juego en modo ventana y me dices que o se mueve el juego o el sistema, pero no ambos. Y que yo sepa ahora mismo ni los SSOO ni las GPU se preocupan de repartir específicamente, y menos en un entorno de hardware abierto donde no sabes que es lo que te vas a encontrar de GPU. Se cambia el contexto juego/sistema y que lo pille quien pueda en la GPU como se diría, y oye hasta funciona y todo. Ya si sé que tengo 2 (hardware cerrado) y hago el sistema para su uso específico, pues mira. Según tu razonamiento, si tengo una GPU con 2 CP y lo pongo en modo ventana la mitad de la GPU sería para el sistema, y no es así.
Nos hemos olvidado de una cosa, y es que en realidad Xbox One no tiene 2 OS, si no TRES!!
http://wccftech.com/xbox-one-architecture-explained-runs-windows-8-virtually-indistinguishable/
Imagen
Y es precisamente el Host OS el que controla todo los recursos, así que los otros dos sistemas operativos no se comunican directamente con la GPU, si no que lo hacen a través de este otro OS.

Tal y como se indica en el enlace,
"All the Direct X draw calls go straight from the Exclusive OS down to the Host OS"
No son dos OS, si no uno solo el que controla la GPU, según dan a entender.

Saludos
Urian está baneado del subforo por "Troll"
darksch escribió:@Urian como quiera que un SO haga ese reparto pues a lo suyo. Te percatarás de tu error en que entonces las GPU con sólo 1 CP qué pasa, que no pueden hacer más que una cosa. Pues si ese CP puede cambiar de contexto por qué el 2º de la XOne no va a poder. Es decir, es que las GPU ya lo hacen con cualquier SO. Pon un juego en modo ventana y me dices que o se mueve el juego o el sistema, pero no ambos. Y que yo sepa ahora mismo ni los SSOO ni las GPU se preocupan de repartir específicamente, y menos en un entorno de hardware abierto donde no sabes que es lo que te vas a encontrar de GPU. Se cambia el contexto juego/sistema y que lo pille quien pueda en la GPU como se diría, y oye hasta funciona y todo. Ya si sé que tengo 2 (hardware cerrado) y hago el sistema para su uso específico, pues mira. Según tu razonamiento, si tengo una GPU con 2 CP y lo pongo en modo ventana la mitad de la GPU sería para el sistema, y no es así.


Imagen

¿Mi razonamiento? ¿El que has cagado tu y luego has autoconsumido? No tengo la culpa de que aquí algunos me tengáis manía. Sí no tienes capacidad de comprensión y/o en su defecto desconoces como funcionan cierta cosas mejor calladito y al rincón.

Pero no pongas palabras en la boca de los demás que no han dicho. }:/
aelio escribió:Nos hemos olvidado de una cosa, y es que en realidad Xbox One no tiene 2 OS, si no TRES!!
http://wccftech.com/xbox-one-architecture-explained-runs-windows-8-virtually-indistinguishable/
Imagen
Y es precisamente el Host OS el que controla todo los recursos, así que los otros dos sistemas operativos no se comunican directamente con la GPU, si no que lo hacen a través de este otro OS.

Tal y como se indica en el enlace,
"All the Direct X draw calls go straight from the Exclusive OS down to the Host OS"
No son dos OS, si no uno solo el que controla la GPU, según dan a entender.

Saludos


pues yo al igual que muchas personas por aqui estabamos pensando en lo mismo que no eran 2 mas bien 3 pero que basicamente solo 1 tiene "contacto directo" con el hard, o porlomenos eso es lo que creo, si estoy equivocado que me corrijan por favor
Declaraciones de Frank Savage (fuente primaria donde las haya) en la Build2014 de Microsoft:

“This turned out to be a really, really hard problem to solve with a single operating system, so in typical Microsoft fashion we built three. The first operating system that we have — the one that boots the console, the one that basically actually owns where everything and how everything works — is the host operating system (HostOS).

“The HostOS owns all the resources, it owns all the memory, it owns all the CPU and GPU, it controls all the controllers, it traffic directs all the network traffic that’s coming in or out of the box, and its job is to be the security layer as well as to control all these interfaces.

Ahí queda eso. Ahora, por favor, explicadme de donde sale eso de que los Command Processors tienen que ver con los dos OS, porque ahí sí que os estáis pasando las fuentes primarias por donde os apetece.

Saludos


Edito:
Añado algunas declaraciones más, totalmente aclaratorias

“But there are other things that need to run way faster than that on the exclusive side in order to get the performance that we need. Those things could be like the video driver. When I’m issuing DirectX 11 commands to draw cars or to draw trees or to figure out what perimeter target I need to use, all of these commands essentially go straight through the exclusive OS to the HostOS through a series of well-known channels"
Urian, la gente te respetaba y respetaba tu blog. Se ve que eres una persona inteligente, la rueda ha empezado a girar y ya nadie puede detenerla. Por mas q te empecines lo unico q conseguiras es dinamitar tu credibilidad y con ello acabar con tu blog.
Urian, comenta lo quieras, esto es un foro libre, pero no faltes el respeto a otro usuario, solo porque creas tener la razón o tu misión sea llevar la contraria.

Así no.
Urian escribió:
darksch escribió:@Urian como quiera que un SO haga ese reparto pues a lo suyo. Te percatarás de tu error en que entonces las GPU con sólo 1 CP qué pasa, que no pueden hacer más que una cosa. Pues si ese CP puede cambiar de contexto por qué el 2º de la XOne no va a poder. Es decir, es que las GPU ya lo hacen con cualquier SO. Pon un juego en modo ventana y me dices que o se mueve el juego o el sistema, pero no ambos. Y que yo sepa ahora mismo ni los SSOO ni las GPU se preocupan de repartir específicamente, y menos en un entorno de hardware abierto donde no sabes que es lo que te vas a encontrar de GPU. Se cambia el contexto juego/sistema y que lo pille quien pueda en la GPU como se diría, y oye hasta funciona y todo. Ya si sé que tengo 2 (hardware cerrado) y hago el sistema para su uso específico, pues mira. Según tu razonamiento, si tengo una GPU con 2 CP y lo pongo en modo ventana la mitad de la GPU sería para el sistema, y no es así.


Imagen

¿Mi razonamiento? ¿El que has cagado tu y luego has autoconsumido? No tengo la culpa de que aquí algunos me tengáis manía. Sí no tienes capacidad de comprensión y/o en su defecto desconoces como funcionan cierta cosas mejor calladito y al rincón.

Pero no pongas palabras en la boca de los demás que no han dicho. }:/


Urian tus aportaciones dejan muchísimo que desear. Además de llamarme mentiroso, mandas callar a la gente sin dar ni una sola explicación. Solo dando a entender que somos tontos.

Me parece muy bien que no estés de acuerdo con lo que se dice. Pero muestra respeto y argumenta tus posturas.
Yo no estoy de acuerdo con Isma82 y Polyteres, pero al menos argumentan sus posturas. Tu prepotencia esta completamente fuera de lugar.

Como sigas así.........reportar e ignorar. No dejas otra opción.
@Urian emmmm...
Arrogancia no, el hecho de que se utilicen dos procesadores de comandos en la GPU tiene que ver con la forma en la que un SO lleva los procesos que comunican con el hardware. De ahí la recomendación del libro, no es por joder, es porque esta gratuito por internet y es con el que yo y mucha gente ha estudiado.


http://www.elotrolado.net/viewtopic.php?p=1737649165
No te preocupes, Polyteres ha puesto a continuación el porque estoy tan seguro de ello.


No es por nada, pero aquí creo que todo el mundo ha entendido de tus comentarios ESO, que 1 CP se reserva para el sistema Y QUE DE AHÍ NO SALE.

¿Qué he hecho qué?. Me parece para mí acabas de perder mi credibilidad por completo, además del respeto. Son tus propios comentarios los que contradicen lo que ya se hace, no los he escrito yo.
17587 respuestas