Como verificar o tamanho da memória de vídeo?

56

Existe uma maneira de verificar o tamanho da memória de vídeo? Especificamente, existe um que funcione com precisão tanto para placas gráficas integradas como para placas gráficas PCI / AGP?

Muitas GPUs integradas têm memória alocada dinamicamente, portanto, esperamos que a solução retorne a memória de vídeo máxima disponível ou a quantidade atualmente alocada. Para placas NVidia ou ATI independentes, obviamente, retornaria a quantidade total de RAM física da GPU.

lspci -v produz números de memória, mas não acredito que seja a memória de vídeo. Eu suspeito que a figura relatada é alguma alocação de memória do sistema ou tamanho de bloco ou canal, mas eu não sei ao certo. Você pode ver nesses resultados de testes que o lspci estava errado em 5 dos 6 testes:

** ASUS EN210 PCIe - 1024 Mb *** 

01:00.0 VGA compatible controller: nVidia Corporation GT218 [GeForce 210] (rev a2)
        Subsystem: ASUSTeK Computer Inc. Device 8354
        Memory at e3000000 (32-bit, non-prefetchable) [size=16M]
        Memory at d0000000 (64-bit, prefetchable) [size=256M]
        Memory at e0000000 (64-bit, prefetchable) [size=32M]

*** Galaxy 8400GS PCIe - 512 Mb *** 

01:00.0 VGA compatible controller: nVidia Corporation G98 [GeForce 8400 GS] (rev a1)
    Subsystem: nVidia Corporation Device 05cc
    Region 0: Memory at e4000000 (32-bit, non-prefetchable) [size=16M]
    Region 1: Memory at d0000000 (64-bit, prefetchable) [size=256M]
    Region 3: Memory at e2000000 (64-bit, non-prefetchable) [size=32M]

*** VirtualBox VM - 10 Mb (headless server) *** 

00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
        Memory at e0000000 (32-bit, prefetchable) [size=16M]

*** VirtualBox VM - 128 Mb *** 

00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter (prog-if 00 [VGA Controller])
        Memory at e0000000 (32-bit, prefetchable) [size=128M]

*** S3 Savage 4 AGP - unknown Mb (old lspci log), but I don't think they made these cards with 128Mb memory! *** 

00:01.0 VGA compatible controller: S3 Inc. Savage 4 (rev 06) (prog-if 00 [VGA controller])
    Subsystem: IBM Unknown device 01c5
    Region 0: Memory at feb80000 (32-bit, non-prefetchable) [size=512K]
    Region 1: Memory at f0000000 (32-bit, prefetchable) [size=128M]

*** NVIDIA Quadro FX 1800 integrated - 1024 Mb *** 

01:00.0 VGA compatible controller: nVidia Corporation GT215 [Quadro FX 1800M] (rev a2) (prog-if 00 [VGA controller])
    Subsystem: Dell Device 040c
    Memory at e2000000 (32-bit, non-prefetchable) [size=16M]
    Memory at d0000000 (64-bit, prefetchable) [size=256M]
    Memory at e0000000 (64-bit, prefetchable) [size=32M]
    
por drgrog 31.05.2011 / 13:15

5 respostas

26

Este é o / p do dmesg com uma placa de vídeo 1G discreta ATI 6370HD. "RAM VRAM detectada = 1024M, BAR = 256M", verifique esta linha.

sourajit@sourajit:~$ sudo dmesg | grep drm
[    6.126816] [drm] Initialized drm 1.1.0 20060810
[    6.541907] [drm] radeon defaulting to kernel modesetting.
[    6.541910] [drm] radeon kernel modesetting enabled.
[    6.542102] [drm] initializing kernel modesetting (CEDAR 0x1002:0x68E4 0x17AA:0x397A).
[    6.542142] [drm] register mmio base: 0xE0600000
[    6.542143] [drm] register mmio size: 131072
[    7.406572] [drm] Detected VRAM RAM=1024M, BAR=256M
[    7.406576] [drm] RAM width 64bits DDR
[    7.406654] [drm] radeon: 1024M of VRAM memory ready
[    7.406655] [drm] radeon: 512M of GTT memory ready.
    
por Sourajit Basak 28.01.2012 / 07:56
13

nvidia-settings faz isso para cartões usando o driver proprietário nvidia . Pode ser impreciso, mas está correto para o meu cartão em particular. Não conheço nenhuma outra ferramenta de espaço do usuário que consulte especificamente o driver de vídeo.

Você também pode tentar sudo lshw -class display , mas não posso garantir que seja mais preciso que o lspci. Também informa intervalos de memória, não valores, então você teria que fazer alguma matemática.

Acho que grep -i memory /var/log/Xorg.0.log relata corretamente a VRAM no cartão do meu sistema. Não não funciona para o meu laptop usando o driver radeon com o dispositivo integrado Radeon Mobility.

    
por koanhead 03.06.2011 / 05:55
12
LC_ALL=C lspci -v | grep -EA10 "3D|VGA" | grep 'prefetchable' 

Minhas saídas do sistema

Memory at d0000000 (64-bit, non-prefetchable) [size=4M]
Memory at c0000000 (64-bit, prefetchable) [size=256M]

O que significa que ele tem 256 MB de memória dedicada à placa de vídeo integrada.

Atualizar : no entanto, tenha cuidado ao usar uma das placas gráficas Intel HD. Sua memória é normalmente compartilhada com a RAM principal do sistema e é dinâmica, o que significa que aumenta e diminui conforme a demanda. No meu sistema, descobri mais tarde que ele pode crescer até 1,7 GB, e esse valor parece ser padrão se você tiver um sistema com 4,0 GB de RAM (meu caso). Se você usar uma placa gráfica como essa, a saída acima não será de muita ajuda.

    
por thiagowfx 01.06.2014 / 21:16
3

Você pode tentar isso:

echo $"VRAM: "$(($(grep -P -o -i "(?<=memory:).*(?=kbytes)" /var/log/Xorg.0.log) / 1024))$" Mb"

ou isto se o comando acima falhar:

echo $(dmesg | grep -o -P -i "(?<=vram:).*(?=M 0x)")$" Mb"

Nada de novo - apenas olhou para outras postagens e adicionou correspondência de padrões para uma melhor saída formatada.

    
por Agnius Vasiliauskas 14.10.2015 / 14:02
1

Existe um programa chamado hardinfo , disponível no Centro de Software , que listará cada placa de vídeo (na lista suspensa Dispositivos, na categoria Dispositivos PCI) e as especificações de cada placa, incluindo a memória e o fornecedor / modelo.

    
por Nathan Dyer 16.07.2011 / 06:41

Tags