Come controllare la dimensione della memoria video?

57

C'è un modo per controllare la dimensione della memoria video? In particolare, ce n'è uno che funzioni accuratamente sia per le GPU integrate che per le schede grafiche PCI / AGP?

Molte GPU integrate hanno una memoria allocata dinamicamente, quindi si spera che la soluzione restituisca la memoria video massima disponibile o la quantità attualmente allocata. Per schede NVidia o ATI stand-alone ovviamente restituirebbe la quantità totale di RAM fisica GPU.

lspci -v genera dati di memoria, ma non credo che sia la memoria video. Sospetto che la figura riportata sia un'allocazione di memoria di sistema o un blocco o una dimensione del canale, ma non ne sono sicuro. Puoi vedere in questi risultati dei test che lspci ha sbagliato in 5 dei 6 test:

** 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]
    
posta drgrog 31.05.2011 - 13:15

5 risposte

27

Questo è l'o / p di dmesg con una scheda grafica 1G discreta ATI 6370HD. "Rilevata RAM VRAM = 1024M, BAR = 256M", controlla questa riga.

[email protected]:~$ 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.
    
risposta data Sourajit Basak 28.01.2012 - 07:56
14

nvidia-settings lo fa per le carte che usano il driver nvidia proprietario. Potrebbe essere impreciso, ma è corretto per la mia carta particolare. Non conosco nessun altro strumento userspace che richieda specificamente il driver video.

Puoi anche provare sudo lshw -class display , ma non posso garantire che sarà più accurato di lspci. Inoltre riporta intervalli di memoria, non importi, quindi dovresti fare un po 'di matematica.

Trovo che grep -i memory /var/log/Xorg.0.log segnali correttamente la VRAM sulla mia scheda di sistema. Funziona not per il mio laptop utilizzando il driver radeon con il dispositivo Radeon Mobility integrato.

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

Le mie uscite di sistema

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

Il che significa che ha 256 MB di memoria dedicati alla scheda video integrata.

Aggiornamento : tuttavia, fai attenzione se utilizzi una delle schede grafiche HD Intel. La sua memoria è generalmente condivisa con la RAM principale del sistema ed è dinamica, il che significa che aumenta e diminuisce a richiesta. Nel mio sistema, in seguito ho scoperto che può crescere fino a 1,7 GB e questo valore sembra essere standard se si dispone di un sistema con 4,0 GB di RAM (il mio caso). Se utilizzi una scheda grafica come questa, l'output sopra riportato non sarà di grande aiuto.

    
risposta data thiagowfx 01.06.2014 - 21:16
4

Puoi provare questo:

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

o questo se il comando sopra non riesce:

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

Niente di nuovo: basta guardare gli altri post e aggiungere la corrispondenza dei pattern per un output formattato migliore.

    
risposta data Agnius Vasiliauskas 14.10.2015 - 14:02
1

C'è un programma chiamato hardinfo , disponibile nel Centro Software , che elencherà ciascuna scheda video (sotto il menu a discesa Dispositivi, nella categoria Dispositivi PCI) e le specifiche per ogni scheda, inclusa la memoria e il fornitore / modello.

    
risposta data Nathan Dyer 16.07.2011 - 06:41

Leggi altre domande sui tag