Te habrás dado cuenta, si miras en el administrador de tareas de Windows 10 y 11, de que el sistema operativo está tomando parte de la memoria RAM para darle más VRAM a la tarjeta gráfica, incluso aunque las que tengamos sea dedicada y tenga su propia memoria y en algún momento llegaste a creer que cosas así no pasarían. ¿Por qué sucede esto y cómo puedes evitarlo? A continuación te lo contamos todo.
Cuando en tu equipo no tienes una tarjeta gráfica dedicada con su memoria VRAM propia, es normal que el sistema asigne parte de la memoria RAM propia del PC a la tarjeta gráfica, ya que es necesario para que funcione y, dependiendo de la cantidad total, así podremos distribuirla para poder ejecutar, por ejemplo, los juegos más avanzados. No obstante, cuando tienes una gráfica dedicada, independiente, con su propia VRAM en cantidades industriales… ¿por qué Windows sigue asignándole parte de la memoria RAM del equipo? ¿Se gana rendimiento con un procedimiento así? ¿Qué ventajas tenemos exactamente de que el OS decida a asignar esos recursos en esas tareas tan concretas?
A continuación os lo vamos a contar en detalle todo lo que ocurre en el ordenador cuando compartimos esta RAM para procesos de la gráfica, si afecta al rendimiento e incluso si es posible optimizarlo para permitirnos que algunas tareas sean todavía más eficientes. Es más, también te explicaremos si esto que hace Windows mejora el rendimiento en juegos y otras tareas y si es una práctica que recomendamos mantener. Así que vamos a lo esencial.
La memoria RAM compartida con la gráfica
Para ver lo que os estamos contando, tan solo tenéis que abrir el Administrador de tareas de Windows, acceder a la pestaña «Rendimiento» y seleccionar GPU en la parte izquierda. Veréis una pantalla parecida a la que os dejamos justo aquí debajo y que muestra una serie de gráficas de consumo tanto de la GPU, como de la memoria RAM y también de las unidades de almacenamiento e incluso la conexión Ethernet.
Si os fijáis en la zona inferior, donde aparece la información de la tarjeta gráfica, aparece «Memoria de GPU dedicada» que es, efectivamente y tomando este ejemplo, la VRAM de la gráfica, 8 GB. Pero justo más abajo aparece «Memoria de GPU compartida«, donde aparece que se están utilizando 300 MB de 16 GB asignados, y de hecho justo a su izquierda aparece el término «Memoria de GPU», donde se puede ver que se están usando 4 de 24 GB, que no son sino los 8 GB físicos de la tarjeta gráfica sumados a los 16 GB adicionales asignados por Windows.
Esto significa que Windows está utilizando parte de la memoria RAM del equipo para asignárselo a la tarjeta gráfica pero, ¿por qué hace esto? Para empezar os diremos que es posible que vayáis a mirar donde os hemos indicado y os topéis con que a vosotros no os pasa, ya que como vamos a explicar a continuación esta asignación de memoria tiene que ver con la iGPU, y si vuestro procesador no tiene gráfica integrada no os toparéis con esta circunstancia.
En cualquier caso y para resumir, si os topáis con esta situación no debéis preocuparos en absoluto ya que es parte de la programación del funcionamiento del sistema operativo, y no es que estéis perdiendo cantidad de memoria RAM para la gráfica sino que simplemente se le asigna cierta cantidad de recursos «por si hacen falta», ni más ni menos. Sin embargo, vamos a ahondar un poco más en la explicación de por qué y cómo sucede esto.
Esta RAM para la gráfica no es real, es virtual
Para empezar os diremos que os os preocupéis, no es que Windows esté «robando» memoria RAM para nada (bueno, en realidad sí pero muy poca). La realidad es que esa memoria gráfica compartida, Windows la utiliza para la iGPU del procesador porque no tenemos la gráfica desactivada en la BIOS (así que si queréis que esto deje de suceder solo tenéis que ir a la BIOS y desactivar la iGPU, aunque no os lo recomendamos por si acaso).
En todo caso, desactivar la iGPU no es algo que recomendamos porque si en un momento dado falla la gráfica dedicada, estaremos bastante indefensos porque no podremos utilizar la integrada mientras tanto y necesitaremos, obligatoriamente, otra gráfica dedicada. De esta forma, lo que hace Windows es cubrirse las espaldas ante el más mínimo problema que pueda producirse y que, como siempre ocurre en estos casos, cuando llega no avisan, y mejor tener una protección que evite que perdamos trabajo o información importante.
Si queréis hacerlo de todos modos, debéis entrar en la BIOS e ir al apartado de ajustes avanzados. A partir de aquí depende del fabricante de la placa base, pero normalmente tendremos que entrar en la configuración del chipset donde encontraremos algo relacionado con «Internal Graphics», donde podremos desactivarlo para que el sistema no vuelva a dejarle recursos tan valiosos como los de la memoria RAM a los procesos de la tarjeta gráfica.
Esta pequeña porción de memoria RAM que Windows nos «roba» son en realidad unos pocos MB, no los 16 GB que tiene «asignados» porque no están asignados como tal, simplemente los tiene disponibles pero no consumidos para asignar a la gráfica en el caso de que fuera necesario. Y, un dato curioso, si en la BIOS seleccionáramos la iGPU como gráfica primaria pero teniendo una dedicada conectada, Windows utilizaría la VRAM de la gráfica dedicada para la iGPU. Por lo que seguiríamos consumiendo recursos de ese componente que, por decirlo de alguna manera, es ajeno a las pastillas de RAM que tenemos pinchadas en la placa base.
En cualquier caso, esto no es lo común, sino que utilice la DDR, por lo que siempre tenemos que tener claro que la VRAM que se asigna de esta manera no tiene nada que ver con la memoria dedicada de una tarjeta gráfica. Si por casualidad veis en el visor de Windows una cantidad que no os encaja con la que sabéis que tiene la gráfica que habéis comprado, es así por la suma de ambas cantidades.
VRAM de la GPU o VRAM con la RAM
En este caso es cierto que ganaremos rendimiento en escritura y lectura secuencial, algo donde la GDDR peca de un rendimiento muy pobre, pero es que su función no se basa en estos términos, sino en la copia, donde multiplica por varias veces el rendimiento de la DDR4 en Quad Channel, ni que decir de la diferencia con Dual Channel. Aunque la parte reservada para la iGPU de la memoria del sistema es a día de hoy minúscula, lo cierto es que las cantidades de ésta deben de incrementarse en poco tiempo debido al aumento del tamaño medio de la RAM y sobre todo de los requerimientos de las nuevas iGPU.
Así que lo esperable es que pasemos a ver 2 GB de asignación o quizás hasta 4 GB para los equipos que tengan 32 GB o más, cifras que en breve serán estándar en cualquier PC medio si el avance con las NAND Flash cumple sus plazos. En todo caso se llegará al punto en que las iGPU tendrán acceso totalmente coherente a la RAM con la CPU, esto evitará tener que tomar prestada parte de la RAM y las cantidades utilizadas en cada momento irán variando según la carga de trabajo.
GPGPU y el uso de la RAM por parte de la gráfica
Las GPUs a día de hoy no solamente se utilizan para renderizar gráficos, sino también para tareas de computación, donde en muchos casos necesita comunicarse en el mismo espacio de memoria que la CPU. La clave es que para que dos unidades de hardware se puedan sincronizar han de utilizar la misma memoria y es por ello que todas las GPU a día de hoy pueden trabajar en dos espacios de memoria:
- Un pozo de memoria no coherente con la CPU que corresponde a su memoria local o VRAM.
- Un pozo de memoria coherente con la CPU, que corresponde a la RAM del sistema.
Muchos programas a día de hoy utilizan las capacidades de la GPU no para renderizar gráficos sino como apoyo para la CPU, para ello hacen que esta interaccione al mismo nivel de memoria. Lo cual es posible con las unidades DMA de la GPU teniendo acceso a la RAM a través del puerto PCI Express, lo que beneficia mucho a esas tareas que requieren de unna enorme cantidad de recursos de proceso, así que a mejor GPU, mejores resultados podemos esperar.
El funcionamiento de ello es simple, la CPU invoca a la GPU a través de un programa Compute Shader, el cual es resuelto por la GPU que escribe de vuelta el resultado en la RAM del sistema en vez de su VRAM. Muchos algoritmos tienen partes que se aceleran no en una, sino en varias órdenes de magnitud cuando son ejecutados en una GPU respecto a hacerlo en la CPU. De esta forma hace tiempo que los fabricantes encontraron en esta memoria RAM reasignada como VRAM una solución perfecta para no tener que acudir siempre a las pastillas de nuestra gráfica. Algo que incrementaría el coste de estas tarjetas y que, además, no se utilizaría para teareas periódicas por lo que deja de tener bastante sentido.
De esta manera, utilizando los recursos de la gráfica por parte de los componentes principales del ordenador (CPU y RAM) conseguimos que esas limitaciones de procesador y cantidad de memoria se relajen un poco, se olviden momentáneamente y logremos obtener un rendimiento superior. Seguramente sea muy pequeño, pero lo suficiente como para que sumandos los tiempos de ahorro, trancurridos varios meses estamos hablando de una ganando considerable.