Jak sprawdzić rozmiar pamięci wideo?

61

Czy istnieje sposób sprawdzenia wielkości pamięci wideo? W szczególności, czy istnieje taki, który działa dokładnie zarówno dla zintegrowanych kart graficznych, jak i kart graficznych PCI / AGP?

Wiele zintegrowanych procesorów graficznych ma dynamicznie przydzielaną pamięć, więc rozwiązanie może zwrócić albo maksymalną dostępną pamięć wideo, albo aktualnie przydzieloną ilość. W przypadku samodzielnych kart NVidia lub ATI w oczywisty sposób zwróciłoby całkowitą ilość fizycznej pamięci RAM GPU.

lspci -vgeneruje dane z pamięci wyjściowej, ale nie wierzę, że to pamięć wideo. Podejrzewam, że podana liczba dotyczy alokacji pamięci systemowej, rozmiaru bloku lub kanału, ale nie jestem tego pewien. Możesz zobaczyć w tych wynikach testu, że lspci mylił się w 5 z 6 testów:

** 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]
drgrog
źródło
Skoro więc nie wierzysz, że to postać, nie akceptujesz odpowiedzi, które ją sugerują?
RolandiXor
5
@Roland, być może moje sformułowanie jest nieprawidłowe. Nie jestem ekspertem od wyników lspci, ale jak widać w linku wyników testu, nie podaje on całkowitej wielkości pamięci wideo, a zatem nie odpowiada na pytanie.
drgrog

Odpowiedzi:

28

To jest o / p dmesg z dyskretną kartą graficzną 1G ATI 6370HD. „Wykryto RAM VRAM = 1024 M, BAR = 256 M”, sprawdź tę linię.

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.
Sourajit Basak
źródło
4
To ten, który skończył dla mnie działać, drobna poprawka, aby odfiltrować więcej dmesg:dmesg | grep VRAM
Ron E
2
mylić, Memory usable by graphics device = 2048Mkiedy wszystko inne mówi 256Mna mojej zintegrowanej grafice Intel i5 (może to być pamięć współdzielona lub coś takiego). EDYCJA: wystarczy przeczytać askubuntu.com/a/475405/178596
Wilf
15

nvidia-settings robi to dla kart korzystających z zastrzeżonego nvidiasterownika. Może to być niedokładne, ale jest właściwe dla mojej konkretnej karty. Nie znam żadnego innego narzędzia przestrzeni użytkownika, które specjalnie odpytuje sterownik wideo.

Możesz także spróbować, sudo lshw -class displayale nie mogę zagwarantować, że będzie bardziej dokładny niż lspci. Zgłasza także zakresy pamięci, a nie ilości, więc musisz wykonać matematykę.

Uważam, że grep -i memory /var/log/Xorg.0.logpoprawnie zgłasza pamięć VRAM na karcie mojego systemu. To ma nie pracować dla mojego laptopa za pomocą sterownika radeonz urządzeniem zintegrowany Radeon Mobility.

koanhead
źródło
Dzięki, ale ustawienia nvidia są specyficzne dla kart. I tak, uważam, że lshwzgłasza te same zasoby pamięci systemowej co lspci, tylko lshw zgłasza je jako zakresy adresów zamiast rozmiarów.
drgrog
3
Powinienem był pomyśleć, żeby sprawdzić phoronix, zanim spróbuję odpowiedzieć na to pytanie. Jak zauważyłeś, w moim systemie moja karta graficzna 768 MB G80 ma w lspci 256 MB. Ludzie na forum powiedzieli, że w rzeczywistości jest to apertura widoczna na szynie PCI, co ma sens. Wykonanie „dmesg | grep VGA” daje ten sam problem w moim systemie, chociaż słyszałem, że działa poprawnie dla innych. Pamięć jest poprawnie zgłaszana w /var/log/Xorg.0.log: „NVIDIA (0): Memory: 786432 kBytes”. Z tego postu na forum: phoronix.com/forums/… !
koanhead
1
Wygląda na to, że będę musiał napisać własny skrypt. Do tej pory grep kB /var/log/Xorg.0.loglub grep -i mem /var/log/Xorg.0.logpodaj mi najbardziej dokładne i wykonalne dane dotyczące kart NVIDIA i maszyn wirtualnych VirtualBox. Nie mam żadnych kart ATI do przetestowania i nie przystąpiłem do testowania zintegrowanych kart Intel lub maszyn wirtualnych VMware.
drgrog
1
fglrx: grep kBytespowoduje coś takiego: Video RAM: 1048576 kByte, Type: GDDR5grepowanie tylko dla kB pokaże również niektóre elementy VESA.
taneli
xserver-xorg-video-ati: grep "mem size"spowoduje coś takiego: RADEON(0): mem size init: gart size :1fdff000 vram size: s:40000000 visible:f6f6000to jest najlepsze, co mogę z tego wyciągnąć, gdzie rozmiar pamięci jest szesnastkowy pos:
taneli
13
LC_ALL=C lspci -v | grep -EA10 "3D|VGA" | grep 'prefetchable' 

Mój system wychodzi

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

Co oznacza, że ​​ma 256 MB pamięci poświęconej zintegrowanej karcie graficznej.

Aktualizacja : uważaj jednak, jeśli używasz jednej z kart graficznych Intel HD. Jego pamięć jest zwykle współdzielona z główną pamięcią RAM systemu i jest dynamiczna, co oznacza, że ​​zwiększa się i zmniejsza na żądanie. W moim systemie później odkryłem, że może on wzrosnąć do 1,7 GB, a ta wartość wydaje się standardowa, jeśli masz system z 4,0 GB pamięci RAM (mój przypadek). Jeśli użyjesz takiej karty graficznej, powyższe dane wyjściowe nie będą zbyt pomocne.

thiagowfx
źródło
2
Możesz dowiedzieć się, ile kosztuje uruchomienie, sudo dmesg | grep drmjak w pierwszej odpowiedzi - mam 2048 mln, których użyłem do aplikacji w Wine i zadziałało.
Wilf
1
Czy w przypadku kart graficznych współdzielonych z pamięcią główną użycie to jest ujawnione przez takie rzeczy, topczy freeteż jest niewidoczne dla systemu operacyjnego? Jak dowiedzieć się, ile pamięci RAM zajmuje współdzielony IGP?
CMCDragonkai
5

Możesz spróbować:

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

lub jeśli powyższe polecenie nie powiedzie się:

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

Nic nowego - po prostu spojrzałem na inne posty i dodał dopasowanie wzorca dla lepszego sformatowania danych wyjściowych.

Agnius Vasiliauskas
źródło
Oba nie działają na notebooku Asus G551JM Ubuntu 14.04 (podwójna grafika, w tym GeForce GTX 860M)
Adam Ryczkowski
1
Pierwsze polecenie zwraca błądbash: / 1024: syntax error: operand expected (error token is "/ 1024")
Adam Ryczkowski
To jedyne rozwiązanie, które działało dla mnie, z wiersza poleceń!
Panayotis,
drugie polecenie zwraca dokładny rozmiar
pamięci
1

W Centrum oprogramowania dostępny jest program o nazwie hardinfo , który wyświetla listę każdej karty wideo (w menu rozwijanym Urządzenia, w kategorii Urządzenia PCI) oraz specyfikacje każdej karty, w tym pamięć i producenta / model.

Nathan Dyer
źródło
1
Dzięki Nathan, ale hardinfo to tylko interfejs GUI do informacji uzyskanych z lshw i lspci itp. Pamiętam, że sugerowano to wcześniej, chociaż wydaje się, że autor usunął odpowiedź.
drgrog,
hardinfo jest fajny, ale nie mówi pamięci GPU.
Adam Ryczkowski