ビデオメモリのサイズを確認する方法はありますか?具体的には、統合GPUとPCI/AGPグラフィックスカードの両方で正確に機能するものはありますか?
多くの統合GPUにはメモリが動的に割り当てられているため、ソリューションは、利用可能な最大ビデオメモリまたは現在割り当てられている量のいずれかを返すことを期待しています。スタンドアロンのNVidiaまたはATIカードの場合、明らかに物理GPU RAMの合計量が返されます。
lspci -v
はメモリの数値を出力しますが、ビデオメモリではないと思います。報告されている数値は、システムメモリの割り当て、ブロックまたはチャネルのサイズであると思われますが、確実にはわかりません。これらの テスト結果 で、6つのテストのうち5つでlspciが間違っていたことがわかります。
** 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]
これは、ATI 6370HDディスクリート1Gグラフィックカードを使用したdmesgのo/pです。 「検出されたVRAM 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.
nvidia-settingsは、独自のnvidia
ドライバーを使用するカードに対してこれを行います。それは不正確かもしれませんが、私の特定のカードには正しいです。ビデオドライバーを具体的に照会する他のユーザー空間ツールは知りません。
Sudo lshw -class display
を試すこともできますが、lspciよりも正確であることを保証することはできません。また、量ではなくメモリ範囲を報告するため、いくつかの計算を行う必要があります。
grep -i memory /var/log/Xorg.0.log
がシステムのカードのVRAMを正しく報告していることがわかりました。 not統合されたRadeon Mobilityデバイスでドライバーradeon
を使用するラップトップで動作します。
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 MBのメモリがあります。
更新:ただし、Intel HD Graphicsカードのいずれかを使用する場合は注意してください。通常、メモリはシステムのメインRAMと共有され、動的です。つまり、オンデマンドで増減します。私のシステムでは、後で最大1.7 GBまで拡張できることを発見しました。4.0GBのRAM(私の場合)があるシステムの場合、この値は標準のようです。このようなグラフィックカードを使用する場合、上記の出力はあまり役に立ちません。
これを試すことができます:
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 、 Software Centerで利用可能 と呼ばれるプログラムがあり、各ビデオカード([デバイス]ドロップダウンの下、[PCIデバイス]カテゴリ)と、メモリとベンダー/モデルを含む各カードの仕様。