Se descubre un problema de acceso a memoria en las GTX 970

por Antonio Delgado 26/01/2015 3

En los últimos días, algunos usuarios de tarjetas gráficas basadas en la GPU GeForce GTX 970 de Nvidia se han dado cuenta de que programas como el GPU-Z marcaban un máximo de 3,5 GB de memoria utilizados de los 4 GB de los que dispone la tarjeta en total. Sin embargo, en juegos o aplicaciones GPGPU, era posible utilizar los 4 GB de memoria, aunque se notaba un pequeño salto en forma de microcortes cuando se superaban esos 3,5 GB que parecía utilizar la tarjeta.

La respuesta de NVIDIA no se hizo esperar y publicó un comunicado explicando que, si bien la GTX 970 cuenta con 4 GB de memoria dedicada, esta tarjeta gráfica utiliza menos SMM que en el caso de la GTX 980 (que sí muestra los 4 GB de RAM utilizables) quedándose con 13 SMM y menos caché, lo que hace que hayan decidido distribuir los 4 GB en dos particiones, una de 3,5 GB que la 970 puede direccionar sin problemas y otra partición donde se encuentran los 512 MB restantes para direccionar en caso de necesidad.

Se descubre un problema de acceso a memoria en las GTX 970, Imagen 1

La tarjeta gráfica tiene prioridad para acceder a esos 3,5 GB y esa partición es la que verán los programas como el GPU-Z, por eso tan solo se muestra 3,5 GB. Estos 3,5 GB funcionarán al máximo ancho de banda que permite la tarjeta.

Cuando la tarjeta gráfica requiera menos memoria que esos 3,5 GB, solamente tiene que acceder a la primera partición, en el caso de que algún juego o aplicación requiera de más memoria, entonces la GPU necesita acceder a la segunda partición y asignar esos 512 MB para su uso, lo que supone un impacto negativo en el rendimiento, sobre todo en títulos con un uso intensivo de la memoria, ya que el ancho de banda será bastante inferior.

Posiblemente, la razón de esto la podemos encontrar en el propio diseño de la GPU. El chip GM204 completo, el mismo que utiliza la GTX 980, cuenta con 16 SMM, cada dos SMM comparten un bloque de caché L1 de 96 KB, es decir, tenemos 8 bloques de caché capaces de acceder cada uno a 512 MB de memoria GDDR5 con su máximo ancho de banda, por lo que tendremos acceso a máxima velocidad a los 4 GB de memoria de la GTX 980.

La GTX 970 incorpora una versión recortada del GM204, con tan solo 13 SMM. Teniendo en cuenta que cada dos SMM tenemos un bloque de caché L1, nos quedan 6 bloques para 12 SMM y un 7º bloque de caché para el 13º SMM, lo que nos deja con 7 bloques capaces de acceder a 512 MB de vRAM con su máximo ancho de banda, esto es, 3.584 MB, o 3,5 GB de memoria GDDR5 a su máximo ancho de banda.

ACTUALIZACIÓN: Finalmente parece que el problema está relacionado con la caché L2 y con el hecho de que NVIDIA ofreció unas especificaciones erróneas sobre la GTX 970, ya que en vez de 2 MB de caché L2 y 64 ROPS, tan solo ofrece 1,75 MB y 56 ROPS. Más información: Las GTX 970 tienen un bus efectivo de 224 bits y solo pueden usar eficientemente 3,5GB.

Por ello, cuando se requiere acceder a la totalidad de la memoria, el ancho de banda se reduce significativamente al no disponer de la caché suficiente para acceder con el máximo ancho de banda a los 4 GB de memoria.

Para medir ese descenso del rendimiento, Nvidia ha publicado unas pruebas de la GTX 970 ejecutando juegos a distintas configuraciones para que requieran más menos de esos 3,5 GB y los ha comparado en el mismo caso con un GTX 980.

Como podemos ver, sí que hay un % de penalización respecto a la variación al pasar de los 3,5 a los 4 GB que sufre una GTX 980, pero tampoco es algo preocupante, al menos en estos resultados que solamente miden la media de FPS.

Sin embargo, si bien es cierto que en la media de fotogramas por segundo la diferencia es poca, el problema viene cuando al utilizar los 4 GB la tarjeta gráfica tiene que hacer uso de la segunda partición con 512 MB y el ancho de banda se reduce drásticamente a la mitad de 130 GB/s a 65 GB/s y se producen los molestos microcortes o stuttering de los que se quejan los usuarios. Como podemos ver en esta captura de un test específico para medir el ancho de banda de la GTX 970 mientras hace uso de los 4 GB de memoria, publicada en el foro de overclock.net.


Se descubre un problema de acceso a memoria en las GTX 970, Imagen 3

En este otro test, que utiliza las librerías CUDA, podemos ver cómo hay una parte de la memoria donde el ancho de banda se reduce, en este caso parece que el ancho de banda baja a niveles de la memoria DDR3 del propio sistema, por lo que más que la penalización de utilizar los 512 MB de la segunda partición, parece que el benchkmark en sí no es capaz de acceder a más que esos 3,5 GB de la primera partición y el resto utiliza directamente memoria del sistema. Por ello este benckmark sirve para indicar que efectivamente hay 512 MB que se gestionan de manera diferente, pero tampoco indica el rendimiento real de utilizar los 4 GB GDDR5 de la GTX 970, que se acercaría más a lo que os comentamos anteriormente en el test anterior.

En resumen y enfocándonos a un uso en un entorno real de juegos, este problema no afectará a aquellos que utilizan su GTX 970 para ejecutar juegos a 1080p, sin embargo, en ciertos títulos a 4K o incluso 2K con altas exigencias de vRAM, puede ser una molestia bastante considerable el sufrir micro cortes cada vez que se requieran más de 3,5 GB, lo que que hacen que estos casos la GTX 980 posiblemente sea una mejor opción.

Nos hemos puesto en contacto con NVIDIA para conocer su postura sobre el tema y nos han comentado que mañana habrá una respuesta oficial, por lo que publicaremos una nueva noticia para ofreceros todos los detalles.