¿Cómo puedo ver qué aplicación/proceso está utilizando mi VRAM?

iStat Menus me muestra que la memoria RAM de mi GPU se está agotando.

El Monitor de actividad no parece mostrar el uso de VRAM.

ingrese la descripción de la imagen aquí

¿Qué estás buscando hacer si obtienes un gráfico? Los componentes internos de la GPU son realmente administrados por los controladores y no es algo que pueda "modificar". ¿O está buscando información sobre instrumentos que le permitan medir la canalización de renderizado de los gráficos principales o la capa de metal de los gráficos que envía Apple?
@bmike: mi máquina se siente lenta y veo que mi VRAM está al máximo... así que solo quería saber qué aplicación es la responsable. (Al salir/iniciar aplicaciones, vi que Chrome usa casi 1 GB). Tratando de decidir si debo actualizar a una tarjeta de 4 GB... o más...
Aah, entonces la VRAM no tiene nada que ver con los tiempos de inicio de la aplicación. Puede desconectar todas las pantallas y perfilar eso puramente en la CPU. También puede convencerse de que Chrome en sí mismo no es el problema creando una nueva cuenta de usuario y cronometrando la cantidad de RAM y el tiempo que Chrome se inicia en un nuevo usuario. (cierre la sesión de su antiguo usuario primero, por supuesto).
FWIW: Encontré esto por los mismos síntomas que OP: rendimiento lento, pero la única bandera roja fue la memoria de video al máximo. Resultó que era la tapa de mi computadora portátil que estaba abierta. Cerré la tapa y el rendimiento se resolvió solo.

Respuestas (1)

Una respuesta TL; DR es que la GPU toma toda la RAM y la administra, siempre. A nivel de sistema operativo, el servidor de ventanas decide qué es visible y el núcleo programa cualquier solicitud de activos de GPU.

Entonces, usted elige qué programas se ejecutan y envían sus comandos al controlador y luego obtiene una cantidad variable de trabajo entre los eventos de vsync cuando se actualiza la pantalla.

Podemos controlar las frecuencias de actualización externas/las especificaciones de píxeles de las pantallas adjuntas y la cantidad de pantallas conectadas.


Si está desarrollando una aplicación o simplemente tiene curiosidad, puede usar Instruments en Xcode para inspeccionar con precisión lo que se hace en el lado de la CPU y las llamadas a la GPU usando metal en este ejemplo a continuación:

ingrese la descripción de la imagen aquí

Le muestra las llamadas de la CPU que luego se transmiten a las llamadas de la aplicación Metal que luego llaman al controlador de gráficos, los cuales realizan pases de renderizado. Este gráfico es el resultado de una ventana a http://www.decisionproblem.com/paperclips/index2.html en Safari en High Sierra más adelante en el juego cuando la pantalla está ocupada constantemente. El área de color es de aproximadamente 75 ms en la primera imagen y si hace zoom a 3 ms más o menos, la actividad de la CPU con la R en un círculo son aproximadamente 15 rastros de pila cada uno para que pueda inspeccionar el usuario más pesado del tiempo en ese momento. Esa es la imagen inferior:

ingrese la descripción de la imagen aquí

Evan a este nivel de detalle, medir lo que está usando VRAM ni siquiera se considera algo que valga la pena medir, ya que la restricción que importa es el tiempo de renderizado y la VRAM es lo que es, por lo que reduce lo que carga en la VRAM para obtener los renderizados. necesita entre eventos vsync para que la velocidad de fotogramas esté donde usted quiere que esté (como programador o como alguien que compara un programa).

La VRAM es sin duda algo bueno para medir si tiene razones para creer que algo está causando una fuga de memoria en la GPU...
En Linux con una GPU Nvidia, puedo ver con precisión cuánta memoria usa cada proceso en la GPU con el nvidia-smicomando. Y en Windows GPU-Z le dará un total de memoria utilizada (y no se suma). Así que tal vez podría ser posible en Mac. Y como dijo @iAdjunct, sería una métrica muy útil al igual que lo es para la RAM de la CPU.
Esto no responde a la pregunta "¿Cómo puedo ver qué aplicación/proceso está utilizando mi VRAM?" Decir que la GPU toma todo el vram y lo administra no es diferente a decir que la CPU toma todo el ram y lo administra. Todavía es útil saber en qué aplicaciones están usando la mayor cantidad de memoria GPU. Photoshop, por ejemplo, hará que mi sistema se acelere si dejo que use todo el vram, pero es una de las pocas aplicaciones que tiene una configuración para cuánto usa.