Как проверить размер видеопамяти?
Есть ли способ проверить размер видеопамяти? В частности, есть ли такой, который точно работает как для встроенных графических процессоров, так и для видеокарт PCI/AGP?
Многие встроенные графические процессоры имеют динамически распределенную память, поэтому мы надеемся, что решение вернет либо максимально доступную видеопамять, либо выделенное в настоящее время количество. Для автономных карт NVidia или ATI он, очевидно, вернул бы общий объем физической памяти графического процессора.
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]
5 ответов
Это операционная система dmesg с дискретной видеокартой ATI 6370HD 1G. "Обнаружено RAM RAM=1024M, BAR=256M", проверьте эту строку.
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.
У меня сработало следующее:
glxinfo | egrep -i 'device|memory'
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 ГБ ОЗУ (в моем случае). Если вы используете такую видеокарту, вышеприведенный вывод не очень поможет.
nvidia-settings делает это для карт, использующих проприетарные nvidia
Водитель. Это может быть неточным, но это правильно для моей конкретной карты. Я не знаю ни одного другого инструмента пользовательского пространства, который специально запрашивает видеодрайвер.
Вы также можете попробовать sudo lshw -class display
но я не могу гарантировать, что это будет точнее, чем lspci. Кроме того, он сообщает диапазоны памяти, а не количество, так что вам придется немного посчитать.
Я нахожу это grep -i memory /var/log/Xorg.0.log
правильно сообщает VRAM на карте моей системы. Это не работает для моего ноутбука с помощью драйвера radeon
со встроенным устройством Radeon Mobility.
Вы можете попробовать это:
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"
Ничего нового - просто посмотрел другие посты и добавил сопоставление с образцом для лучшего форматированного вывода.
В Центре программного обеспечения имеется программа hardinfo, в которой перечисляются все видеокарты (в раскрывающемся списке "Устройства" в категории "Устройства PCI") и спецификации для каждой платы, включая память и производителя / модель.