Как проверить размер видеопамяти?

55

Есть ли способ проверить размер видеопамяти? В частности, есть ли тот, который работает точно как для встроенных графических процессоров, так и для графических карт PCI / AGP?

Многие интегрированные графические процессоры имеют динамически распределенную память, поэтому решение, мы надеемся, вернет либо максимальную доступную видеопамять, либо текущую выделенную сумму. Для автономных плат NVIDIA или ATI он, очевидно, вернет общий объем физического ОЗУ GPU.

lspci -v выводит цифры памяти, но я не думаю, что это видеопамять. Я подозреваю, что сообщаемая цифра - это некоторое распределение памяти системы или размер блока или канала, но я точно не знаю. Вы можете увидеть в этих результатах тестирования , что lspci ошибался в 5 из 6 тестов:

** 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 31.05.2011 в 13:15
источник

5 ответов

25

Это o / p dmesg с дискретной графической картой ATI 6370HD. «Обнаружено VRAM RAM = 1024M, BAR = 256M», проверьте эту строку.

[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.
    
ответ дан Sourajit Basak 28.01.2012 в 07:56
12

nvidia-settings делает это для карт, использующих собственный драйвер nvidia . Это может быть неточно, но это верно для моей конкретной карты. Я не знаю ни одного другого средства пользовательского пространства, которое специально запрашивает видеодрайвер.

Вы также можете попробовать sudo lshw -class display , но я не могу гарантировать, что он будет более точным, чем lspci. Также он сообщает диапазоны памяти, а не суммы, поэтому вам нужно будет сделать некоторую математику.

Я нахожу, что grep -i memory /var/log/Xorg.0.log правильно сообщает VRAM на карточке моей системы. Он работает не для моего ноутбука, используя драйвер radeon со встроенным устройством Radeon Mobility.

    
ответ дан koanhead 03.06.2011 в 05:55
12
LC_ALL=C lspci -v | grep -EA10 "3D|VGA" | grep 'prefetchable' 

Мои системные выходы

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

Это означает, что он имеет 256 МБ памяти, выделенной для встроенной видеокарты.

Обновить : будьте осторожны, если вы используете одну из графических карт Intel HD. Его память обычно делится с основной оперативной памятью системы, и она динамична, что означает, что она увеличивается и уменьшается по требованию. В моей системе я позже обнаружил, что он может вырасти до 1,7 ГБ, и это значение кажется стандартным, если у вас есть система с 4,0 ГБ ОЗУ (в моем случае). Если вы используете графическую карту, подобную этой, вышеупомянутый вывод не будет иметь большой поддержки.

    
ответ дан thiagowfx 01.06.2014 в 21:16
3

Вы можете попробовать следующее:

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

или это, если команда выше:

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

Ничего нового - просто посмотрел на другие сообщения и добавил соответствие шаблонов для лучшего форматированного вывода.

    
ответ дан Agnius Vasiliauskas 14.10.2015 в 14:02
2

Существует программа под названием hardinfo , ответ дан Nathan Dyer 16.07.2011 в 06:41