eloskuro escribió:http://www.extremetech.com/gaming/164934-xbox-one-bus-bandwidths-graphics-capabilities-and-odd-soc-architecture-confirmed-by-microsoftHere’s the important points, for comparison’s sake. The CPU cache block attaches to the GPU MMU, which drives the entire graphics core and video engine. Of particular interest for our purposes is this bit: “CPU, GPU, special processors, and I/O share memory via host-guest MMUs and synchronized page tables.” If Microsoft is using synchronized page tables, this strongly suggests that the Xbox One supports HSA/hUMA and that we were mistaken in our assertion to the contrary. Mea culpa.
You can see the Onion and Garlic buses represented in both AMD’s diagram and the Microsoft image above. The GPU has a non-cache-coherent bus connection to the DDR3 memory pool and a cache-coherent bus attached to the CPU. Bandwidth to main memory is 68GB/s using 4×64 DDR3 links or 36GB/s if passed through the cache coherent interface. Cache coherency is always slower than non-coherent access, so the discrepancy makes sense.
Extremetech se autoedito para no llevarse zascas en este sentido
this strongly suggests that the Xbox One supports HSA/hUMA and that we were mistaken in our assertion to the contrary. Mea culpa.
The other major mystery of the ESRAM cache is the single arrow running from the CPU cache linkage down to the GPU-ESRAM bus. It’s the only skinny black arrow in the entire presentation and its use is still unclear. It implies that there’s a way for the CPU to snoop the contents of ESRAM, but there’s no mention of why that capability isn’t already provided for on the Onion/Garlic buses and it’s not clear why they’d represent this option with a tiny black arrow rather than a fat bandwidth pipe.
marjalone escribió:http://www.computer.org/csdl/mags/mi/preprint/06756701.pdf
MMU hardware maps guest virtual addresses to
guest physical addresses to physical addresses
for virtualization and security. The
implementation sizes caching of fully translated page addresses and uses large pages where
appropriate to avoid significant performance
impact from the two-dimensional translation.
System software manages physical memory
allocation. System software and hardware keep
page tables synchronized so that CPU, GPU,
and other processors can share memory, pass
pointers rather than copying data, and a linear
data structure in a GPU or CPU virtual space
can have physical pages scattered in DRAM and
SRAM. The unified memory system frees
applications from the mechanics of where data
is located, but GPU-intensive applications can
specify which data should be in SRAM for best
performance.
The GPU graphics core and several specialized
processors share the GPU MMU, which
supports 16 virtual spaces. PCIe input and
output and audio processors share the IO MMU,
which supports virtual spaces for each PCI
bus/device/function. Each CPU core has its own
MMU (CPU access to SRAM maps through a
CPU MMU and the GPU MMU).
The design provides 32 GB/second peak DRAM
access with hardware-maintained CPU cache
coherency for data shared by the CPU, GPU,
and other processors. Hardware-maintained
coherency improves performance and software
reliability.
eloskuro escribió:marjalone escribió:http://www.computer.org/csdl/mags/mi/preprint/06756701.pdfMMU hardware maps guest virtual addresses to
guest physical addresses to physical addresses
for virtualization and security. The
implementation sizes caching of fully translated page addresses and uses large pages where
appropriate to avoid significant performance
impact from the two-dimensional translation.
System software manages physical memory
allocation. System software and hardware keep
page tables synchronized so that CPU, GPU,
and other processors can share memory, pass
pointers rather than copying data, and a linear
data structure in a GPU or CPU virtual space
can have physical pages scattered in DRAM and
SRAM. The unified memory system frees
applications from the mechanics of where data
is located, but GPU-intensive applications can
specify which data should be in SRAM for best
performance.
The GPU graphics core and several specialized
processors share the GPU MMU, which
supports 16 virtual spaces. PCIe input and
output and audio processors share the IO MMU,
which supports virtual spaces for each PCI
bus/device/function. Each CPU core has its own
MMU (CPU access to SRAM maps through a
CPU MMU and the GPU MMU).
The design provides 32 GB/second peak DRAM
access with hardware-maintained CPU cache
coherency for data shared by the CPU, GPU,
and other processors. Hardware-maintained
coherency improves performance and software
reliability.
HSA/hUMA en Xbox One Fuente oficial
Grinch escribió:eloskuro escribió:marjalone escribió:http://www.computer.org/csdl/mags/mi/preprint/06756701.pdfMMU hardware maps guest virtual addresses to
guest physical addresses to physical addresses
for virtualization and security. The
implementation sizes caching of fully translated page addresses and uses large pages where
appropriate to avoid significant performance
impact from the two-dimensional translation.
System software manages physical memory
allocation. System software and hardware keep
page tables synchronized so that CPU, GPU,
and other processors can share memory, pass
pointers rather than copying data, and a linear
data structure in a GPU or CPU virtual space
can have physical pages scattered in DRAM and
SRAM. The unified memory system frees
applications from the mechanics of where data
is located, but GPU-intensive applications can
specify which data should be in SRAM for best
performance.
The GPU graphics core and several specialized
processors share the GPU MMU, which
supports 16 virtual spaces. PCIe input and
output and audio processors share the IO MMU,
which supports virtual spaces for each PCI
bus/device/function. Each CPU core has its own
MMU (CPU access to SRAM maps through a
CPU MMU and the GPU MMU).
The design provides 32 GB/second peak DRAM
access with hardware-maintained CPU cache
coherency for data shared by the CPU, GPU,
and other processors. Hardware-maintained
coherency improves performance and software
reliability.
HSA/hUMA en Xbox One Fuente oficial
Pero no decian que era imposible o no podia ser en one ?
eloskuro escribió:Incluso jugar a Halo 2 con sus dos versiones, cada uno en uno de los dos contextos y poner snap del skype... 3 contextos xD
Nah... era broma...
Me parece muy interesante tu reflexion.
Yo creo que DX12 aportará facilidad para estas capacidades extra del doble pipe y la reducción de draw calls. Ahora mismo no creo que muchos third party puedan meterse a programar dos contextos diferentes. Seguramente con la implementación de DX12 vendrán funciones faciles y herramientas en las middlewares para estas cosas.
Eso hará que aprovechen mejor el 100% del hardware. Que eso equivale a un boost actual de un 10% o un 50% ? Eso está por ver y creo que es solo especular. Pero a fin de cuentas, es lo que nos mola en el hilo.
Por eso linkamos de vez en cuando slides que pueden no tener nada que ver con la xbox one. Porque queremos averigüar entre todos, por donde van a ir los tiros.
Pada escribió:@isma82 es lo que te iba decir, que antes digiste que necesitarían una memoria adicional de caché en la CPU para hacer full HSA, y podrían ir por ahi los tiros de ese pool de memoria de eSRAM que se ven en las imágenes del SoC, ya podéis ir sacando la escuadra y cartabón para medir de cuantos MB es, pero a ojímetro diría que es 16+16+8 ... pero bueno, me sorprende que microsoft dijese que hay 32 MB de eSRAM, podrían ser 12+12+8 ?
To facilitate this, in addition to asynchronous compute queues, the Xbox One hardware supports two concurrent render pipes. The two render pipes can allow the hardware to render title content at high priority while concurrently rendering system content at low priority. The GPU hardware scheduler is designed to maximise throughput and automatically fills "holes" in the high-priority processing. This can allow the system rendering to make use of the ROPs for fill, for example, while the title is simultaneously doing synchronous compute operations on the Compute Units.
pspskulls escribió:Bueno, creo que hacen falta algunos datos más para entender lo que dije.
Empezaré comentando que Halo MCC lo único que utiliza es un context switch para cambiar del contexto gráfico que dibuja el juego remasterizado al contexto que renderiza el antiguo. El efecto es rápido puesto que es "gratis": la memoria unificada ya contiene toda lo necesario para renderizar ambos juegos, con lo que una vez hecho el switch de contexto simplemente se renderiza el frame de ese contexto, no hay más. Y mientas un contexto dibuja el otro queda dormido (la lógica de juego es la misma, sólo cambia el contexto con el que dibujamos esa lógica).
Añadir que SÓLO, y repito, SÓLO One tiene doble contexto GRÁFICO, y repito, GRÁFICO. PS4 puede tener dobles colas para renderizado y las peticiones de render irán procesándose según la GPU quede libre. Pero eso no es simultáneo, es primero una petición y luego la otra. Esto se realiza en DX12 mediante nuevos objetos llamados bundles, que se preparan por CPU de dos en dos y se mandan simultáneamente a GPU para renderizar. Aquí tenéis a la izquierda el código DX11, y a la derecha DX12:
Se puede ver cómo hasta hoy en DX11 preparas y pintas el draw 1 y después preparas y puntas el draw 2. En DX12 preparas los 2 y los 2 los renderiza al mismo tiempo.
Bien, comentáis que DX12 se centra en la mejora de rendimiento para la CPU, y en parte así es. Lo que pasa es que, ya tenemos datos oficiales de rendimiento (que sí puedo comentar ya que son públicos) sobre la prueba que hizo Microsoft con 3D Mark y otras pruebas. Lógicamente la prueba se realizó sobre un PC, pero lo que me interesa de la mismo son la serie de resultados que ofrecieron para evitar de una vez por todas el tópico de que DX12 sólo mejorará la parte de CPU y por ello está sobretodo enfocado al mercado PC. No hace falta más que acudir a esas pruebas de Microsoft y hacer mínimos cálculos con excel para darse cuenta en qué optimiza DX12.
Para empezar:
Este es un ejemplo CLARO de optimización de CPU. Es una escena en que la GPU no tiene carga ninguna. Simples cajas que tardan cero coma en pasar y renderizarse por la GPU. Es un ejemplo claro de optimización de drawcalls (llamadas a pintar) que son MUY costosas y que siempre parten de la CPU (es el paso en el que la CPU le dice a la GPU: oye, pinta esto). El tiempo en CPU vemos que pasa de 0.74ms en DX11 a 0.09ms en DX12. Aquí vemos que, no es que doble el rendimiento, es que en DX12 la CPU es 8 veces más rápida. Por supuesto esto es CPU para RENDERIZAR, aquí no entran temas de IA, físicas y otras tareas que una CPU desempeña y por supuesto afectan al rendimiento.
Ahora lo más interesante. En la escena de 3D Mark (algo que sí es más parecido a lo que viene siendo renderizar un juego), tenemos lo siguiente:
Me he permitido hacer un excel:dx12.jpg
Por supuesto esto será una GPU de la leche y no es totalmente extrapolable a One, pero SÍ podemos observar que en esa escena cuyo cómputo de CPU puede resultar sencillo (básicamente llamadas de drawcall y por ello se gana en DX12 un 23% de rendimiento), por la parte de únicamente GPU (GFX-only) con DX12 sólo el rendering está duplicando el rendimiento con un 100% tardando justo la mitad para los procesos gráficos de la escena y ahorrándose 3.33ms. Esto demuestra que DX12 está LEJOS de SÓLO optimizar la parte de CPU de un juego, sinó que gracias a su doble contexto se beneficia totalmente la GPU. Como digo esto en One no va a ser tan brutal por la potencia de su GPU pero bien me creo algo aproximado de un 50% como ya comenté en mi mensaje anterior. Y para muestra el gráfico clarísimo:
En que podéis comprobar los rectángulos amarillos que son proceso gráfico como reflejo en gráfico de los datos. Arriba los 4 hilos de CPU en DX11, abajo los mismos 4 hilos en DX12.
Si queréis documentaros algo más, de aquí podéis ver las imagenes que he sacado:
http://www.dualshockers.com/2014/04/07/directx-12-unveiled-by-microsoft-promising-large-boost-impressive-tech-demo-shows-performance-gain/
http://www.pcworld.com/article/2110085/next-gen-directx-12-graphics-tech-revealed-hitting-microsoft-platforms-in-2015.html
A Polyteres...
1. Microsoft dice que, MIENTRAS estás en el dashboard usarían un contexto para el dashboard y el otro para el juego. Eso NO IMPLICA que ahora con DX12 puedas EN EL JUEGO usar 2 contextos simultáneos. Así que, si quieres inventarte cosas adelante.
2. Por supuesto que los ROPs son importantes, pero lo que no se puede pretender es hacer creer a la gente que One no tiene suficiente capacidad como para renderizar simultáneamente 2 contextos gráficos para un par de sombras, vas fino.
3. Las técnicas de rendering son tan nuevas o viejas como cuando se empiezan a utilizar y desde luego Forward+ lo hemos visto de momento en FH2 y para de contar. Respecto a lo de la latencia... bueno mejor no voy a comentar nada.
4. Y NO, PS4 no puede hacer NADA de lo que he comentado hasta el momento con la misma eficacia que One, simplemente porque ni tiene doble contexto gráfico simultáneos ni tiene eSRAM.
5. No voy a entrar al trapo ni tengo más tiempo para repetir muchas cosas, así que quien quiera que se guarde estos dos últimos mensajes míos porque cosas así difícilmente voy a repetir.
Hookun escribió:Yo es que leo al que escribe las biblias en verso y adecuándolas a sus preferencias y omitiendo lo que le interesa me entra la risa floja. Nunca he conseguido enlazar tantas contradicciones pero bueno halla cada uno. Ponerse a dar lecciones de una arquitectura que uno desconoce es el deporte de este Foro y el de muchos otros.Esto me recuerda a cuando salio la 360 y sus shaders unificados...que salían "expertos" hasta debajo de las piedras asegurando que todo eso era un fracaso y que no daba ninguna mejora y no había nada mejor que la arquitectura que llevaba el RSX de ps3 o hablar de una API que aun ni ha salido y catalogarla ya. Como cuando hablaban halla en el 2008 diciendo que dx11 no incorporaba novedades respecto a DX9c y que era todo una quimera. Me pregunto donde estarán ahora todos esos expertos ?! Porque siempre hay "expertos" de estos gen tras gen.
Respecto a los comentarios de pspskulls : Claros , brillantes y entendibles para todos . Así da gusto pero siempre hay alguno que pese a no querer ver las cosas se empeñe en que los demás tampoco deberían...
pspskulls escribió:Bueno, creo que hacen falta algunos datos más para entender lo que dije.
Empezaré comentando que Halo MCC lo único que utiliza es un context switch para cambiar del contexto gráfico que dibuja el juego remasterizado al contexto que renderiza el antiguo. El efecto es rápido puesto que es "gratis": la memoria unificada ya contiene toda lo necesario para renderizar ambos juegos, con lo que una vez hecho el switch de contexto simplemente se renderiza el frame de ese contexto, no hay más. Y mientas un contexto dibuja el otro queda dormido (la lógica de juego es la misma, sólo cambia el contexto con el que dibujamos esa lógica).
Añadir que SÓLO, y repito, SÓLO One tiene doble contexto GRÁFICO, y repito, GRÁFICO. PS4 puede tener dobles colas para renderizado y las peticiones de render irán procesándose según la GPU quede libre. Pero eso no es simultáneo, es primero una petición y luego la otra. Esto se realiza en DX12 mediante nuevos objetos llamados bundles, que se preparan por CPU de dos en dos y se mandan simultáneamente a GPU para renderizar. Aquí tenéis a la izquierda el código DX11, y a la derecha DX12:
Se puede ver cómo hasta hoy en DX11 preparas y pintas el draw 1 y después preparas y puntas el draw 2. En DX12 preparas los 2 y los 2 los renderiza al mismo tiempo.
Bien, comentáis que DX12 se centra en la mejora de rendimiento para la CPU, y en parte así es. Lo que pasa es que, ya tenemos datos oficiales de rendimiento (que sí puedo comentar ya que son públicos) sobre la prueba que hizo Microsoft con 3D Mark y otras pruebas. Lógicamente la prueba se realizó sobre un PC, pero lo que me interesa de la mismo son la serie de resultados que ofrecieron para evitar de una vez por todas el tópico de que DX12 sólo mejorará la parte de CPU y por ello está sobretodo enfocado al mercado PC. No hace falta más que acudir a esas pruebas de Microsoft y hacer mínimos cálculos con excel para darse cuenta en qué optimiza DX12.
Para empezar:
Este es un ejemplo CLARO de optimización de CPU. Es una escena en que la GPU no tiene carga ninguna. Simples cajas que tardan cero coma en pasar y renderizarse por la GPU. Es un ejemplo claro de optimización de drawcalls (llamadas a pintar) que son MUY costosas y que siempre parten de la CPU (es el paso en el que la CPU le dice a la GPU: oye, pinta esto). El tiempo en CPU vemos que pasa de 0.74ms en DX11 a 0.09ms en DX12. Aquí vemos que, no es que doble el rendimiento, es que en DX12 la CPU es 8 veces más rápida. Por supuesto esto es CPU para RENDERIZAR, aquí no entran temas de IA, físicas y otras tareas que una CPU desempeña y por supuesto afectan al rendimiento.
Ahora lo más interesante. En la escena de 3D Mark (algo que sí es más parecido a lo que viene siendo renderizar un juego), tenemos lo siguiente:
Me he permitido hacer un excel:dx12.jpg
Por supuesto esto será una GPU de la leche y no es totalmente extrapolable a One, pero SÍ podemos observar que en esa escena cuyo cómputo de CPU puede resultar sencillo (básicamente llamadas de drawcall y por ello se gana en DX12 un 23% de rendimiento), por la parte de únicamente GPU (GFX-only) con DX12 sólo el rendering está duplicando el rendimiento con un 100% tardando justo la mitad para los procesos gráficos de la escena y ahorrándose 3.33ms. Esto demuestra que DX12 está LEJOS de SÓLO optimizar la parte de CPU de un juego, sinó que gracias a su doble contexto se beneficia totalmente la GPU. Como digo esto en One no va a ser tan brutal por la potencia de su GPU pero bien me creo algo aproximado de un 50% como ya comenté en mi mensaje anterior. Y para muestra el gráfico clarísimo:
En que podéis comprobar los rectángulos amarillos que son proceso gráfico como reflejo en gráfico de los datos. Arriba los 4 hilos de CPU en DX11, abajo los mismos 4 hilos en DX12.
Si queréis documentaros algo más, de aquí podéis ver las imagenes que he sacado:
http://www.dualshockers.com/2014/04/07/directx-12-unveiled-by-microsoft-promising-large-boost-impressive-tech-demo-shows-performance-gain/
http://www.pcworld.com/article/2110085/next-gen-directx-12-graphics-tech-revealed-hitting-microsoft-platforms-in-2015.html
A Polyteres...
1. Microsoft dice que, MIENTRAS estás en el dashboard usarían un contexto para el dashboard y el otro para el juego. Eso NO IMPLICA que ahora con DX12 puedas EN EL JUEGO usar 2 contextos simultáneos. Así que, si quieres inventarte cosas adelante.
2. Por supuesto que los ROPs son importantes, pero lo que no se puede pretender es hacer creer a la gente que One no tiene suficiente capacidad como para renderizar simultáneamente 2 contextos gráficos para un par de sombras, vas fino.
3. Las técnicas de rendering son tan nuevas o viejas como cuando se empiezan a utilizar y desde luego Forward+ lo hemos visto de momento en FH2 y para de contar. Respecto a lo de la latencia... bueno mejor no voy a comentar nada.
4. Y NO, PS4 no puede hacer NADA de lo que he comentado hasta el momento con la misma eficacia que One, simplemente porque ni tiene doble contexto gráfico simultáneos ni tiene eSRAM.
5. No voy a entrar al trapo ni tengo más tiempo para repetir muchas cosas, así que quien quiera que se guarde estos dos últimos mensajes míos porque cosas así difícilmente voy a repetir.
isma82 escribió:Nada mejor que acudir a la fuente para explicar los diagramas que algunos parece no terminan de pillar aunque estan muy claros....
3DMark – Multi-thread scaling + 50% better CPU utilization
If you’re a gamer, you know what 3DMark is – a great way to do game performance benchmarking on all your hardware and devices. This makes it an excellent choice for verifying the performance improvements that Direct3D 12 will bring to games. 3DMark on Direct3D 11 uses multi-threading extensively, however due to a combination of runtime and driver overhead, there is still significant idle time on each core. After porting the benchmark to use Direct3D 12, we see two major improvements – a 50% improvement in CPU utilization, and better distribution of work among threads.
Forza Motorsport 5 Tech Demo – console-level efficiency on PC
http://blogs.msdn.com/b/directx/archive/2014/03/20/directx-12.aspx
This pair of screenshots further illustrates the model. Total CPU time is dramatically reduced in DX12 by efficiently reallocating data across all cores. Interestingly, while these two screen shots are the same frame, they aren’t using the same lighting model. No word yet on whether or not that’s caused by DX12’s alpha status, or if it’s the results of other lighting changes and program updates.
http://www.extremetech.com/gaming/178904-directx-12-detailed-backwards-compatible-with-all-recent-nvidia-gpus-will-deliver-mantle-like-capabilities
Tiempo de cpu chicos. La rodaja D3D representa el tiempo que tarda el api en ejecutarse en pc en cpu. Se reduce el coste de cpu del api... De esa grafica no se puede sacar el % de mejora de la gpu.
optimus1_prime escribió:Si cuando implementen dx12 la nasa utilizara la xbox. Venga ya hombre!!!
optimus1_prime escribió:Si cuando implementen dx12 la nasa utilizara la xbox. Venga ya hombre!!!
optimus1_prime escribió:Si cuando implementen dx12 la nasa utilizara la xbox. Venga ya hombre!!!
optimus1_prime escribió:Si cuando implementen dx12 la nasa utilizara la xbox. Venga ya hombre!!!
Raistlin2891 escribió:optimus1_prime escribió:Si cuando implementen dx12 la nasa utilizara la xbox. Venga ya hombre!!!
http://tech.firstpost.com/news-analysis ... 91721.html
http://www.techradar.com/news/gaming/co ... ce-1159025
Eso ya está. La próxima vez que entres diciendo cosas así sin aportar nada ya sabes, mira algo por lo menos
ahona escribió:Buenos días.
El hilo iba muy bien, a ver si entre todos somos capaces de que continúe así en vez de citar una y otra vez un comentario. Si dejáis que moderación actúe, ese comentario no pasa de ahí, si le dais coba, hacéis que se desvíe el hilo por completo y se pierdan los aportes que se estaban comentando.
Un saludo.
To facilitate this, in addition to asynchronous compute queues, the Xbox One hardware supports two concurrent render pipes. The two render pipes can allow the hardware to render title content at high priority while concurrently rendering system content at low priority. The GPU hardware scheduler is designed to maximise throughput and automatically fills "holes" in the high-priority processing. This can allow the system rendering to make use of the ROPs for fill, for example, while the title is simultaneously doing synchronous compute operations on the Compute Units.
podría mientras que las ROPs están "libres" pq estoy haciendo trabajo gráfico (o computación) para el juego, aprovechar esta funcionalidad fija para rellenar mis cuadraditos que tienen los botones, las letras
GCN 1.0 combines every 64 shader processor with 4 TMUs and 1 ROP to a compute unit (CU)
AMD en su arquitectura Graphic Core Next utiliza los términos ROP Z/stencil y Color ROP
◾32 z/stencil ROP units
◾8 color ROP units