Autor Tema: Actualizacion AMD ASrock?¿  (Leído 13412 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado plunplan

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 7545
  • pwning
Re: Actualizacion AMD ASrock?¿
« Respuesta #45 : agosto 30, 2013, 12:07:24 pm »
Colocho de eñe 2.0

Enviado desde mi Nexus 4 usando Tapatalk 4

New Rig

Old Rig

Desconectado Charlie

  • The Communiter-
  • *
  • Mensajes: 5592
Re:Actualizacion AMD ASrock?¿
« Respuesta #46 : agosto 30, 2013, 12:23:12 pm »
ah y charlie, en realidad es igual de importante la velocidad del framebuffer y la velocidad de la memoria donde esta almacenadas las texturas, si estan almacenadas en un sistema lento, eso afecta grandemente la velocidad de los ROP.

O sea si influye como decis en sistemas lentos por ejemplo cuando la cantidad de memoria de vídeo utilizada por el juego es mayor que la memoria con que cuenta una tarjeta de video y esta empieza a utilizar la memoria RAM del sistema para cache de texturas, porque estamos hablando de una memoria mucho mas lenta que encima esta limitada al ancho de banda del canal PCI Express.

Pero lo decía porque en el caso de la GTX 660 esa memoria aun tendría 48GB/s lo cual asumiendo que solo puede almacenar en ella 0.5 GB de texturas es mas que suficiente, mientras que con el frame buffer es distinto ya que estamos hablando de docenas de frames por segundo para presentar en pantalla, cada uno de ellos compuesto por sus multiples samples para obtener el anti-aliasing, cada uno de dichos samples con su back buffer, z-buffer, stencil buffer, etc. lo cual hace que prácticamente puedan llevar a tope el ancho de banda de la memoria.

La textura en cambio hasta donde entiendo solo es almacenada y es cargada según se va requiriendo no como en el frame buffer que el uso es repetitivo e intensivo basado en la resolución, el antialiasing y la cantidad de fotogramas presentados por segundo, es interesante hacer mención a algo relacionado con esto y es el caso del Xbox 360 y el Xbox One que dedican una memoria pequeña pero muy veloz exclusivamente al frame buffer, lo cual le permite un buen nivel de anti-aliasing aun cuando el resto de memoria utilizada para video no sean tan veloz.

Bueno ya te an respondido, en la practica se traduce en menor rendimiento, así que yo no engaño a nadie, pero si el articulo no te basta, podes ir a los foros, donde la gente "cacherra" y que te cuente como les fue con sus sli de gtx 660 en sonrrund(resoluciones altas) y el impacto que tuvieron al sobrepasar los 1,5gb.

Pero el problema es que como ya dijo g00mba en el escenario extremo que planteas vos cualquier otra tarjetas de esa categoría sale mal parada aun cuando tenga un mapeo de memoria simétrico.

Pero en la practica en los juegos modernos por ejemplo yo he visto como la GTX 660 rivaliza en rendimiento con por ejemplo una Radeon HD 7870 que posee 256 bits, manejo de memoria simétrico e incluso posee un mayor ancho de banda, siendo ambas de 2 GB.

Por cierto también hay una GTX 660 ti de 3GB la cual tendría un mapeo simétrico de memoria pero en los reviews no demostró una gran ventaja sobre la versión de 2GB.


betoxd

  • Visitante
Re:Actualizacion AMD ASrock?¿
« Respuesta #47 : agosto 30, 2013, 12:28:28 pm »
A ver Goomba, justamente en resoluciones Altas es donde juegos exigentes,pueden llegar a usar mas 1,5gb, y creo que ese el tema que al sobrepasar es cantidad, vendría los problemas por tener ese controlador funcionando a 64btis, que eso implica menos ancho de banda, por lo tanto una reducción en el rendimiento, obviamente mientras no sobrepase va a ir normal como si nada.

También hay que recordad que cada contralador tiene asignada su memoria, asi que no se puede distribuir la carga, siempre a uno por ley le tocaría 2 memorias mas, por lo cual iría mas saturado cuando se USE ese extra (512), así que físicamente no se puede hacer nada, solo aumentado el Bus a 256bits o asigno un multiplo que seria 3gb, es mas si no tengo mal entendido hay Gtx 660 de 3gb.

Luego llegaría la optimizacion por software, que pudieran reducir ese cuello gestionando mejor los datos, pero eso imposible hasta donde tengo entendido porque se tuviera que trabajar abajo nivel, y eso jamas va apasar en PC por la cantidad de hardware.

Desconectado Charlie

  • The Communiter-
  • *
  • Mensajes: 5592
Re:Actualizacion AMD ASrock?¿
« Respuesta #48 : agosto 30, 2013, 01:36:54 pm »
También hay que recordad que cada contralador tiene asignada su memoria, asi que no se puede distribuir la carga, siempre a uno por ley le tocaría 2 memorias mas, por lo cual iría mas saturado cuando se USE ese extra (512), así que físicamente no se puede hacer nada, solo aumentado el Bus a 256bits o asigno un multiplo que seria 3gb, es mas si no tengo mal entendido hay Gtx 660 de 3gb.

Creo que entendes mal el concepto de funcionamiento del bus de memoria, si se usa los 512MB restantes el controlador no se "satura" mas sino que simplemente accede a dicha memoria a una menor velocidad (64 bits) que es lo que ya se discutió ampliamente.

Para hace una alegoría seria asi:

Tenes 3 puertas en la que cada una da a una bodega (los 3 bancos de 512MB que funcionan a 192 bits) en las que podes almacenar six-packs de cerveza, cuando requeris ir a traer o almacenar cerveza las moves de six-pack en six-pack, pero atrás de una de dichas bodegas hay una puerta extra que conduce a otra bodega del mismo tamaño que las demas (el banco de 512 MB que funciona a 64 bits) en la que solo esta permitido tener cervezas individuales y cuando haces uso de esta cuarta bodega solo podes traer 2 cervezas una en cada mano es decir justo un tercio de la capacidad que brinda el six-pack (asi como 64 bits es solo un tercio de 192 bits).

Cada una de las puertas tiene asignado un empleado (el controlador de memoria) que tarda exactamente lo mismo en ir a dejar o traer las cervezas, los tres empleados hacen la misma cantidad de viajes y tardan el mismo tiempo en traer los six-packs a cada una de sus sus respectivas puertas excepto que cuando se le pide al empleado de la puerta que conduce a la bodega extra que no admite six-pack que retire algo de dicha bodega, este tarda lo mismo que sus compañeros con la diferencia que solo puede mover 2 cervezas por viaje y no 6.

Es decir cuando vas a traer cervezas a la cuarta bodega no haces mas viajes ni te "saturas" solo porque uses la misma puerta que usaste para ir la bodega de six-pack sino que simplemente cada ida a dicha bodega permite mover menos cervezas que cuando usas las otras bodegas que si almacenan six-packs.

El empleado de dicha bodega no se satura, no se sobrecarga, no hace mas trabajo que los otros debido a que la cantidad de viajes que puede hacer y el tiempo que se tarda son iguales a los de sus compañeros independientemente de si va por un six-pack o va por 2 cervezas  (debido a que la frecuencia de funcionamiento de las memorias es la misma esta no cambia por mucho que haya el doble de bancos de memoria).

Creo que tu error esta en pensar que por haber dos bancos de memoria en un controlador este accede a dos posiciones de memoria simultáneamente y no es así dicho controlador al igual que los otros accede a una posición de memoria a la vez.

« Última Modificación: agosto 30, 2013, 01:38:47 pm por Charlietwo »

Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14587
  • SOMOS LEGION
    • ALABADO SEA MONESVOL
Re:Actualizacion AMD ASrock?¿
« Respuesta #49 : agosto 30, 2013, 01:45:01 pm »
O sea si influye como decis en sistemas lentos por ejemplo cuando la cantidad de memoria de vídeo utilizada por el juego es mayor que la memoria con que cuenta una tarjeta de video y esta empieza a utilizar la memoria RAM del sistema para cache de texturas, porque estamos hablando de una memoria mucho mas lenta que encima esta limitada al ancho de banda del canal PCI Express.
no realmente, influye tambien en el caso hipotetico que vos propones. porque estarias imponiendo un cuello de botella de todos modos.

Pero lo decía porque en el caso de la GTX 660 esa memoria aun tendría 48GB/s lo cual asumiendo que solo puede almacenar en ella 0.5 GB de texturas es mas que suficiente, mientras que con el frame buffer es distinto ya que estamos hablando de docenas de frames por segundo para presentar en pantalla, cada uno de ellos compuesto por sus multiples samples para obtener el anti-aliasing, cada uno de dichos samples con su back buffer, z-buffer, stencil buffer, etc. lo cual hace que prácticamente puedan llevar a tope el ancho de banda de la memoria.
ahi creo que estas confundido, todos esos buffers son SEPARADOS y no es que exista uno por cada frame. el frame buffer como su nombre lo dice un buffer que almacena los cuadros TERMINADOS solamente, es decir guarda la imagen a mostrarse tal y como aparece en la pantalla, es decir ya esta procesado. este frame es el resultado de las operaciones hechas con los demas buffers, pero no hay una instancia de cada buffer por cada cuadro. asi que de hecho es bien facil saber que tan grande es el framebuffer que tu tarjeta esta usando, es tu resolucion multipicada por la cantidad de bits multiplicado por cuantos cuadros tiene buffereados tu tarjeta a la vez. por

ejemplo para una resolucion 1080P a 32 bits de profundidad con triplebuffering activado.:

( 1920x1080)x32x3)/8 ) da 24883200 Bytes, esto es aproximadamente 24 Megabytes para el framebuffer. como ves, es en realidad una cantidad pequeña. el grueso de datos almacenados es de hecho todo el resto de buffers, en particular las texturas.

La textura en cambio hasta donde entiendo solo es almacenada y es cargada según se va requiriendo
noooo. eso es cierto SOLO en los juegos que usan texture streaming, pero en realidad solo se usa texture streaming cuando tenes juegos que ocupan cantidades exageradas de memoria. te lo voy a poner asi, de estas DESPRECIANDO de gran manera la forma en que se usan las texturas. cada textura que vez en pantalla tiene por lo menos tres versiones de si misma cargadas (para hacer algo llamado mipmapping) y eso es cuando es una textura plana. cuando tienen algun efecto de mapeado, teselado o shading, la cantidad requerida para cargar esa textura aumenta.
el comportamiento que vos decis se llama texture streaming y en realidad se ocupa porque en los juegos actuales, la cantidad de datos que necesita para generar la imagen muchas veces las texturas consumen (si se hiciera de la forma tradicional) muchos gigas mas de los que las tarjetas tienen. las texturas de rage por ejemplo son alrededor de veinte gigabytes. una imagen en rage facilmente puede llegar a tener cinco o seis gigas que sin texture streaming (John Carmack lo llama "Megatexture") no podrian cargarse en pantalla a la vez.

no como en el frame buffer que el uso es repetitivo e intensivo basado en la resolución, el antialiasing y la cantidad de fotogramas presentados por segundo,
no realmente, el tamaño del framebuffer solo cambia cuando cambias la resolucion y  si usas double o triple buffering, segun la ecuacion que te puse arriba.

es interesante hacer mención a algo relacionado con esto y es el caso del Xbox 360 y el Xbox One que dedican una memoria pequeña pero muy veloz exclusivamente al frame buffer, lo cual le permite un buen nivel de anti-aliasing aun cuando el resto de memoria utilizada para video no sean tan veloz.
precisamente por lo que te estoy diciendo es que las consolas al tener resolucion fija podes predecir que tan grande va a ser tu buffer siempre y asi podes asignar esa cantidad de memoria especificamente.


A ver Goomba, justamente en resoluciones Altas es donde juegos exigentes,pueden llegar a usar mas 1,5gb, y creo que ese el tema que al sobrepasar es cantidad, vendría los problemas por tener ese controlador funcionando a 64btis, que eso implica menos ancho de banda, por lo tanto una reducción en el rendimiento, obviamente mientras no sobrepase va a ir normal como si nada.
esque mira, creo que no has entendido como funcionan internamente las tarjetas de video. el problema NO es que se tope la memoria o no. el problema se da solo y exclusivamente cuando el chip de video tiene que acceder a dos direcciones de memoria que estan en el mismo controlador, SIMULTANEAMENTE.

la tarjeta, en un ciclo de trabajo, NO puede acceder a toda la memoria a la vez. en el caso de la 660 la tarjeta puede acceder solamente a 192 bits de esos dos millones y pico de bits que tiene de memoria por ciclo. ENTONCES, si logras distribuir tus datos de manera que cada controlador te de un bloque de esos 192 bits no tenes problema, el problema es cuando mas de un grupo de bits estan en el mismo controlador, esto no pasa en tarjetas que tienen cantidades de memoria y cantidades de bits que son potencias de dos. pero cuando NO son potencias de dos, pero si cuando tenes que poner dos chips de memoria por controlador, porque solo podes acceder a uno de los dos por ciclo. ENTONCES, la solucion esta en distribuir la memoria de manera que las situaciones donde tu gpu pida dos grupos de memoria del mismo controlador sea la menor cantidad de veces posibles. el algoritmo es relativamente facil, simplemente le decis que si un grupo de bits esta asociado a otro, que NO lo ponga en el mismo controlador.



También hay que recordad que cada contralador tiene asignada su memoria, asi que no se puede distribuir la carga,
esque SI se puede. si no se pudiera distribuir como se reparten los datos dentro de la memoria de un sistema, programarlo seria imposible. lo que pasa es que vos te imaginas que dentro de la tarjeta estan el vergo de chunches integros, acordate que todos esos datos son unos y ceros. siempre y cuando lleves un registro de donde esta cada cosa, podes partir todo en pedazos pequenisismos para ser procesados.


siempre a uno por ley le tocaría 2 memorias mas, por lo cual iría mas saturado cuando se USE ese extra (512), así que físicamente no se puede hacer nada, solo aumentado el Bus a 256bits o asigno un multiplo que seria 3gb, es mas si no tengo mal entendido hay Gtx 660 de 3gb.
si se puede hacer algo. implementas un algorimo de balanceo de carga.


Luego llegaría la optimizacion por software, que pudieran reducir ese cuello gestionando mejor los datos, pero eso imposible hasta donde tengo entendido porque se tuviera que trabajar abajo nivel, y eso jamas va apasar en PC por la cantidad de hardware.
NOOOO esa optimizacion se hace en el scheduler del GPU, esa optimizacion es por HARDWARE.
« Última Modificación: agosto 30, 2013, 01:54:50 pm por g00mba »

Desconectado Charlie

  • The Communiter-
  • *
  • Mensajes: 5592
Re:Actualizacion AMD ASrock?¿
« Respuesta #50 : agosto 30, 2013, 02:27:39 pm »
no realmente, influye tambien en el caso hipotetico que vos propones. porque estarias imponiendo un cuello de botella de todos modos.
ahi creo que estas confundido, todos esos buffers son SEPARADOS y no es que exista uno por cada frame. el frame buffer como su nombre lo dice un buffer que almacena los cuadros TERMINADOS solamente, es decir guarda la imagen a mostrarse tal y como aparece en la pantalla, es decir ya esta procesado. este frame es el resultado de las operaciones hechas con los demas buffers, pero no hay una instancia de cada buffer por cada cuadro. asi que de hecho es bien facil saber que tan grande es el framebuffer que tu tarjeta esta usando, es tu resolucion multipicada por la cantidad de bits multiplicado por cuantos cuadros tiene buffereados tu tarjeta a la vez. por

ejemplo para una resolucion 1080P a 32 bits de profundidad con triplebuffering activado.:

( 1920x1080)x32x3)/8 ) da 24883200 Bytes, esto es aproximadamente 24 Megabytes para el framebuffer. como ves, es en realidad una cantidad pequeña. el grueso de datos almacenados es de hecho todo el resto de buffers, en particular las texturas.

En este punto no concuerdo es que segun vos das a entender el frame buffer consiste solo del front buffer que es el que definis y es el que si contiene el fotograma final a presentar en pantalla ese hasta donde se es el menos demandante y requiere relativamente poco ancho de banda, que como pones en el caso de ejemplo seria:

( 1920x1080)x32x3)/8 ) = 24 MB

Pero no estoy hablando de CANTIDAD DE MEMORIA sino de ANCHO DE BANDA es decir tenes que multiplicar los 24MB x el numero de fotogramas si fueran por ejemplo 60 FPS

24MB x 60 FPS = 1440 MB/s

Ahora bien como dije el problema es que un juego seria super sencillo de ejecutar si solo se tratara de front buffer el problema es el famoso ANTIALIASING en cuyo caso por ejemplo para un muestreo de antialising de 4x habria que considerar todo el back buffer implicado seria mas o menos asi:

(1080 x 1920x32x4)/8) + ( 1920x1080)x32x2)/8 ) asumiendo que esta ultimo calculo solo comprende los dos buffer extras usados para el triple buffer

Esto daria 32MB utilizados para el antialiasing y aproximadamente 16 para los otros dos buffers dando un total aproximado de 48 MB.

Si multiplicamos 48 MB x 60 FPS = 2880 MB/s

A todo esto no estamos considerando el filtrado anisotropico que consume otro monton de cantidad de memoria y ancho de banda.

Lo que quiero dar a enteder es que el ancho de banda requerido aumenta dramaticamente entre mayor resolucion y antialiasing le pongamos a un juego y de ahi la gran importancia de este cuando se juega a altas resoluciones o con un antialiasing muy elevado.


noooo. eso es cierto SOLO en los juegos que usan texture streaming, pero en realidad solo se usa texture streaming cuando tenes juegos que ocupan cantidades exageradas de memoria. te lo voy a poner asi, de estas DESPRECIANDO de gran manera la forma en que se usan las texturas. cada textura que vez en pantalla tiene por lo menos tres versiones de si misma cargadas (para hacer algo llamado mipmapping) y eso es cuando es una textura plana. cuando tienen algun efecto de mapeado, teselado o shading, la cantidad requerida para cargar esa textura aumenta.
el comportamiento que vos decis se llama texture streaming y en realidad se ocupa porque en los juegos actuales, la cantidad de datos que necesita para generar la imagen muchas veces las texturas consumen (si se hiciera de la forma tradicional) muchos gigas mas de los que las tarjetas tienen. las texturas de rage por ejemplo son alrededor de veinte gigabytes. una imagen en rage facilmente puede llegar a tener cinco o seis gigas que sin texture streaming (John Carmack lo llama "Megatexture") no podrian cargarse en pantalla a la vez.

Creo que no definí bien lo que quería dar entender, lo que quise decir es que como dije antes el frame buffer mantiene un uso constante y sostenido del ancho de banda ya que una vez que estableces una determinada resolución, un nivel de antialiasing y el juego empieza a correr a una tasa casi uniforme de FPS el consumo de ancho de banda debido a esto es constante y sostenido, no así en el caso de las texturas que aun estando almacenadas en memoria son accedidas BAJO DEMANDA a medida que se requiere que estas sean presentadas en un fotograma determinado, por ejemplo tenes cargado todo un escenario de una nivel de un juego con sus respectivas texturas en la tarjeta de vídeo pero solo se accede a las que se están visualizando en el fotograma que se muestra en pantalla, por lo cual su impacto en el ancho de banda seria variable y no creo que llegue al nivel de requerimiento de un frame buffer con antialiasing elevado.

betoxd

  • Visitante
Re:Actualizacion AMD ASrock?¿
« Respuesta #51 : agosto 30, 2013, 02:36:47 pm »
Pues estas confundido cada chip de memoria en este caso de 256mb, tiene un controlador asignado, al ser 8 el de las gtx 660, estan distribuidos de 2 por controlador, osea 2(chips de memoria de 256mb)por 1 controlador, ese controlador al ser de doble canal (supongo no estoy muy seguro) accederían por su propio canal, cada chip de 256mb, así que si los 6 chips de memoria esta distribuidos en los 3 controladores, los otros dos  chips quedarían a la deriba, pero en este caso se los asignado aun único controlador, entonces estariamos que uno de esos 3 controladores tendría que soportar 4 chips de memorias.

Osea quedaría algo así 2 controladores de 2 memorias cada uno con su propio canal de acceso, y 1 controlador con 4 memorias, ese controlador al usarse los 2 chips restantes (512) sufriria en lo que hablo que solo podría acceder con 48Gb/s (64bits, ahí vendrían la perdida de rendimiento.

Asi  que esas memorias extras 2 , no se pueden distribuis, en diferentes controladores, porque lo únicos que harías seria agrabar mas, porque ya no seria un único controlador con mas carga, si no 2 (si se distribuyen en 2 diferentes). asi que Nvidia fue inteligente y solo se lo dejo, a uno así el limite estaría en 1,5gb, cosa que le convenía porque los porque con esa potencia y a resoluciones normales, seria muy complicado de pasar de eso 1,5gb, al fina de cuentas los mas exigente se van por las gamas altas.

Y te estas confundiendo, todo lo que estamos hablando esta presente de manera física en el PBC:
http://www.ixbt.com/video3/images/gk104-5/asus-gtx680-scan-front.jpg

(Si es de una gtx 680) Ahi se pueden ver los chips de memoria. por mi caso hoy si hasta aquí llego, creo esta bastante claro, otra cosa seria seguir sacando hipótesis.
« Última Modificación: agosto 30, 2013, 02:40:50 pm por betoxd »

Desconectado Charlie

  • The Communiter-
  • *
  • Mensajes: 5592
Re:Actualizacion AMD ASrock?¿
« Respuesta #52 : agosto 30, 2013, 03:02:29 pm »
Pues estas confundido cada chip de memoria en este caso de 256mb, tiene un controlador asignado, al ser 8 el de las gtx 660, estan distribuidos de 2 por controlador, osea 2(chips de memoria de 256mb)por 1 controlador, ese controlador al ser de doble canal (supongo no estoy muy seguro) accederían por su propio canal, cada chip de 256mb, así que si los 6 chips de memoria esta distribuidos en los 3 controladores, los otros dos  chips quedarían a la deriba, pero en este caso se los asignado aun único controlador, entonces estariamos que uno de esos 3 controladores tendría que soportar 4 chips de memorias.

Osea quedaría algo así 2 controladores de 2 memorias cada uno con su propio canal de acceso, y 1 controlador con 4 memorias, ese controlador al usarse los 2 chips restantes (512) sufriria en lo que hablo que solo podría acceder con 48Gb/s (64bits, ahí vendrían la perdida de rendimiento.

Asi  que esas memorias extras 2 , no se pueden distribuis, en diferentes controladores, porque lo únicos que harías seria agrabar mas, porque ya no seria un único controlador con mas carga, si no 2 (si se distribuyen en 2 diferentes). asi que Nvidia fue inteligente y solo se lo dejo, a uno así el limite estaría en 1,5gb, cosa que le convenía porque los porque con esa potencia y a resoluciones normales, seria muy complicado de pasar de eso 1,5gb, al fina de cuentas los mas exigente se van por las gamas altas.

Y te estas confundiendo, todo lo que estamos hablando esta presente de manera física en el PBC:
http://www.ixbt.com/video3/images/gk104-5/asus-gtx680-scan-front.jpg

(Si es de una gtx 680) Ahi se pueden ver los chips de memoria. por mi caso hoy si hasta aquí llego, creo esta bastante claro, otra cosa seria seguir sacando hipótesis.

Todo lo que decís es lo que ya se hablo y se entiende perfectamente en el gráfico de anandtech:



Es decir como se ve son 3 controladores de memoria cada uno de 64 bits (distribuidos en dos buses de 32 bits uno para cada banco de memoria) con la salvedad de que uno de los controladores accede a 2 bancos extra de memoria cada uno de 2 Gb (256MB).

No entiendo tu punto nadie a dicho que los 512 MB sobrantes corran a igual velocidad o se distribuyan en otros controladores o lo que sea que queres dar a entender, aquí no se trata de quien tiene la ultima palabra o de decir yo tengo la razón y vos no sino simplemente se trata de depurar la información errónea o equivocada.

En este caso lo que yo dije es que es falso pensar que uno de los controladores de memoria, el que maneja los 512 MB adicionales se "sature" como decias o haga mas trabajo sino que como repito por enésima vez simplemente mueve los mismos 64 bits de siempre para los que esta capacitado, pero al no estar en sincronía con los otros dos controladores cuando accede a dicha memoria en conjunto el bus total del sistema no mueve 192 bits simultaneamente sino solo 64 bits.

Es decir para ser claros el problema es un menor ancho de banda debido a que se reduce la cantidad de bits que se mueven a un tercio, pero el problema no es "saturacion" del controlador, ese era lo único que quería dejar en claro pero lo de que si que se reduce el ancho de banda a un tercio eso nunca lo he puesto en discusión.


Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14587
  • SOMOS LEGION
    • ALABADO SEA MONESVOL
Re:Actualizacion AMD ASrock?¿
« Respuesta #53 : agosto 30, 2013, 03:44:50 pm »
En este punto no concuerdo es que segun vos das a entender el frame buffer consiste solo del front buffer que es el que definis y es el que si contiene el fotograma final a presentar en pantalla ese hasta donde se es el menos demandante y requiere relativamente poco ancho de banda, que como pones en el caso de ejemplo seria:

( 1920x1080)x32x3)/8 ) = 24 MB

creo que ahi tenes algo confundido el concepto.
Citar
A Framebuffer (or sometimes Framestore) is a video output device that drives a video display from a memory buffer containing a complete frame of data.

The information in the memory buffer typically consists of color values for every pixel (point that can be displayed) on the screen. Color values are commonly stored in 1-bit binary (monochrome), 4-bit palettized, 8-bit palettized, 16-bit highcolor and 24-bit truecolor formats. An additional alpha channel is sometimes used to retain information about pixel transparency. The total amount of the memory required to drive the framebuffer depends on the resolution of the output signal, and on the color depth and palette size.

un framebuffer es solamente eso.
http://en.wikipedia.org/wiki/Framebuffer


Pero no estoy hablando de CANTIDAD DE MEMORIA sino de ANCHO DE BANDA es decir tenes que multiplicar los 24MB x el numero de fotogramas si fueran por ejemplo 60 FPS

24MB x 60 FPS = 1440 MB/s
ahi estan malas tus cuentas. el ejemplo que puse es de tres frames almacenados en la tarjeta.
para calcular la cantidad de datos a mover seria asi:
(1920x1080x32 / 8 ) eso te da aproximadamente 8294400 bytes,  mas o menos 8.4 megabyes por frame. por tu caso hipotetico de 60 frames por segundo, lo que te da que para mandar 60 frames por segundo estas mandando 504 MB por segundo a la pantalla. esto no es NADA, es menos del 0.5% del ancho de banda de una tarjeta high end. hasta un video integrado se cagaria de la risa de una carga tal.


Ahora bien como dije el problema es que un juego seria super sencillo de ejecutar si solo se tratara de front buffer el problema es el famoso ANTIALIASING en cuyo caso por ejemplo para un muestreo de antialising de 4x habria que considerar todo el back buffer implicado seria mas o menos asi:

(1080 x 1920x32x4)/8) + ( 1920x1080)x32x2)/8 ) asumiendo que esta ultimo calculo solo comprende los dos buffer extras usados para el triple buffer

Esto daria 32MB utilizados para el antialiasing y aproximadamente 16 para los otros dos buffers dando un total aproximado de 48 MB.

Si multiplicamos 48 MB x 60 FPS = 2880 MB/s
ahi estas mal, el antialiasing NO se procesa sobre el framebuffer, se procesa en los stages ANTERIORES a que el cuadro se termine. los unicos que funcionan asi son el FXAA y el MLAA y por eso no se consideran AA "de verdad" sino que un filtro de imagen mas sencillo. y ahi el problema no es realmente la velocidad de la memoria, es la velocidad de los shaders para aplicar el filtro el limitante mas grande.

A todo esto no estamos considerando el filtrado anisotropico que consume otro monton de cantidad de memoria y ancho de banda.
el filtrado anisotropico apenas tiene efecto en el rendimiento. esto es porque es intensivo en proceso y en memoria, , PERO, las tarjetas modernas tienen circuiteria dedicada para hacer la operacion  de manera eficiente y usando un minimo necesario de memoria, asi que su impacto es bien minimo, no consume una cantidad significativa de recursos.


Lo que quiero dar a enteder es que el ancho de banda requerido aumenta dramaticamente entre mayor resolucion y antialiasing le pongamos a un juego y de ahi la gran importancia de este cuando se juega a altas resoluciones o con un antialiasing muy elevado.
si pero el costo se deriva mas de que las operaciones con texturas se multiplican. el antialiasing es intensivo en ambos en tiempo de proceso y cantidad de memoria a usar.


no así en el caso de las texturas que aun estando almacenadas en memoria son accedidas BAJO DEMANDA a medida que se requiere que estas sean presentadas en un fotograma determinado, por ejemplo tenes cargado todo un escenario de una nivel de un juego con sus respectivas texturas en la tarjeta de vídeo pero solo se accede a las que se están visualizando en el fotograma que se muestra en pantalla, por lo cual su impacto en el ancho de banda seria variable y no creo que llegue al nivel de requerimiento de un frame buffer con antialiasing elevado.
esque charlie, aunque NO veas la textura en determinado momento, esa textura SI tiene que estar cargada en memoria local (local entiendase VRAM, no en la RAM principal) consumiendo memoria. si tenes razon, cuando estan cargadas no consumen ancho de banda porque no se esta haciendo nada con ellas, el problema es que vos subestimas en gran medida la importancia que las texturas tienen. y el problema charlie es que esa textura TIENE que estar descomprimida. es decir, cada textura puede facilmente varias decenas o hasta cientos de kilobytes, y cada superficie puede tener multiples texturas, y cada una de esas texturas puede tener multiples efectos de shading implementados. es decir, cada textura al final puede costar megabytes enteros. eso, en una escena completa es UN VERGO.

Pues estas confundido cada chip de memoria en este caso de 256mb, tiene un controlador asignado, al ser 8 el de las gtx 660, estan distribuidos de 2 por controlador, osea 2(chips de memoria de 256mb)por 1 controlador, ese controlador al ser de doble canal (supongo no estoy muy seguro) accederían por su propio canal, cada chip de 256mb, así que si los 6 chips de memoria esta distribuidos en los 3 controladores, los otros dos  chips quedarían a la deriba, pero en este caso se los asignado aun único controlador, entonces estariamos que uno de esos 3 controladores tendría que soportar 4 chips de memorias.

Osea quedaría algo así 2 controladores de 2 memorias cada uno con su propio canal de acceso, y 1 controlador con 4 memorias, ese controlador al usarse los 2 chips restantes (512) sufriria en lo que hablo que solo podría acceder con 48Gb/s (64bits, ahí vendrían la perdida de rendimiento.

Asi  que esas memorias extras 2 , no se pueden distribuis, en diferentes controladores, porque lo únicos que harías seria agrabar mas, porque ya no seria un único controlador con mas carga, si no 2 (si se distribuyen en 2 diferentes). asi que Nvidia fue inteligente y solo se lo dejo, a uno así el limite estaría en 1,5gb, cosa que le convenía porque los porque con esa potencia y a resoluciones normales, seria muy complicado de pasar de eso 1,5gb, al fina de cuentas los mas exigente se van por las gamas altas.
uta men si sos cuerudo. si ordenas bien los datos, NO HAY PROBLEMA en tener mas de dos bancos de memoria en un solo controlador. siempre y cuando no pidas dos datos que estan en distintos bancos en el mismo controlador.

ahi estas equivocado que un programa solo por estar a 1024x768 no puede topar 2 gigs de ram. obviamente tendria que ser un programa muy mal hecho, pero la resolucion NO determina cuanta ram estas usando. es el proceso en su totalidad.
« Última Modificación: septiembre 05, 2013, 03:23:48 pm por g00mba »

Desconectado Charlie

  • The Communiter-
  • *
  • Mensajes: 5592
Re:Actualizacion AMD ASrock?¿
« Respuesta #54 : agosto 30, 2013, 04:28:54 pm »
esque charlie, aunque NO veas la textura en determinado momento, esa textura SI tiene que estar cargada en memoria local (local entiendase VRAM, no en la RAM principal) consumiendo memoria. si tenes razon, cuando estan cargadas no consumen ancho de banda porque no se esta haciendo nada con ellas, el problema es que vos subestimas en gran medida la importancia que las texturas tienen. y el problema charlie es que esa textura TIENE que estar descomprimida. es decir, cada textura puede facilmente varias decenas o hasta cientos de kilobytes, y cada superficie puede tener multiples texturas, y cada una de esas texturas puede tener multiples efectos de shading implementados. es decir, cada textura al final puede costar megabytes enteros. eso, en una escena completa es UN VERGO.

Bueno has dicho varias cosas que no sabia pero creo que lo que vos no me estas entendiendo es que yo estoy hablando del impacto de las texturas en el ancho de banda no en la utilización de espacio en memoria, que ahí ya se que muchos juegos modernos hacen uso de una enorme cantidad de memoria de texturas, es decir lo que planteaba desde el principio es simple yo decía que el ancho de banda elevado tiene un mayor impacto en las operaciones de buffer es decir resolución y antialiasing, que en las texturas.

Es decir bajo mi punto de vista una tarjeta de gama baja por ejemplo una Radeon HD 6670 con un ancho de banda de 64 GB/s puede manejar con soltura las texturas cuando funciona a una resolución no muy alta, pero a altas resoluciones tendría un pobre rendimiento siendo que en ambos casos (baja y alta resolución) tenga la misma carga de texturas, debido a que aun cuando su ancho de banda puede mover con soltura las texturas necesarias, no es suficiente para mantener las operaciones de buffer requeridas a alta resolución ello debido a su falta de ancho de banda y no por su falta de memoria.

Por ahí no se si me equivoque pero esa era mi idea, para que se entienda, esto lo digo mas que todo porque en casi todo review veo una relación directa y considerable entre ancho de banda y rendimiento a alta resolución por ejemplo al comprarla misma version de una tarjeta usando GDDR3 con otra que utiliza GDDR5 o versiones de 64 bits vs la de 128 bits.

Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14587
  • SOMOS LEGION
    • ALABADO SEA MONESVOL
Re:Actualizacion AMD ASrock?¿
« Respuesta #55 : agosto 30, 2013, 04:35:55 pm »
Por ahí no se si me equivoque pero esa era mi idea, para que se entienda, esto lo digo mas que todo porque en casi todo review veo una relación directa y considerable entre ancho de banda y rendimiento a alta resolución por ejemplo al comprarla misma version de una tarjeta usando GDDR3 con otra que utiliza GDDR5 o versiones de 64 bits vs la de 128 bits.
hmm vaya, dejame explicar algo, lo que jode no es el subir la resolucion per se, osea mandar el frame a la pantalla realmente tiene un costo negible, lo que jode es lo que subir la resolucion IMPLICA en terminos de calculos adicionales para llenar todos esos pixeles, tenes que calcular los shaders sobre un area mayor, tenes que aplicar muchas mas texturas a superficies mucho mas grandes iluminar un area mayor, etc etc.