Bagaimana cara memeriksa ukuran memori video?

61

Apakah ada cara untuk memeriksa ukuran memori video? Secara khusus, adakah yang bekerja secara akurat untuk kartu grafis GPU dan PCI / AGP terintegrasi?

Banyak GPU terintegrasi yang mengalokasikan memori secara dinamis, sehingga solusinya diharapkan akan mengembalikan memori video maksimum yang tersedia atau jumlah yang dialokasikan saat ini. Untuk kartu NVidia atau ATI yang berdiri sendiri itu jelas akan mengembalikan jumlah total RAM GPU fisik.

lspci -vmemang angka memori output, tapi saya tidak percaya itu adalah memori video. Saya menduga angka yang dilaporkan adalah alokasi memori sistem atau ukuran blok atau saluran, tetapi saya tidak tahu pasti. Anda dapat melihat dalam hasil tes ini bahwa lspci salah dalam 5 dari 6 tes:

** 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
sumber
Jadi karena Anda tidak percaya itu adalah angka, Anda tidak menerima jawaban yang menyarankannya?
RolandiXor
5
@Roland, mungkin kata-kata saya salah. Saya bukan ahli tentang output lspci, tetapi seperti yang Anda lihat di tautan hasil tes, itu tidak memberikan ukuran total memori video, dan karenanya tidak menjawab pertanyaan.
drgrog

Jawaban:

28

Ini adalah o / p dari dmesg dengan kartu grafis 1G ATI 6370HD diskrit. "RAM VRAM Terdeteksi = 1024M, BAR = 256M", periksa baris ini.

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
sumber
4
Ini adalah salah satu yang akhirnya bekerja untuk saya, sedikit tweak hanya untuk menyaring lebih banyak dari dmesg:dmesg | grep VRAM
Ron E
2
bingung Memory usable by graphics device = 2048Mketika semuanya mengatakan 256Mpada grafis terintegrasi intel i5 saya (mungkin memori bersama atau sesuatu). EDIT: baca saja askubuntu.com/a/475405/178596
Wilf
15

Pengaturan nvidia melakukan ini untuk kartu menggunakan nvidiadriver berpemilik . Mungkin tidak akurat tetapi benar untuk kartu khusus saya. Saya tidak tahu ada alat userspace lain yang secara khusus menanyakan driver video.

Anda juga dapat mencoba sudo lshw -class displaytetapi saya tidak dapat menjamin bahwa itu akan lebih akurat daripada lspci. Juga melaporkan rentang memori, bukan jumlah, jadi Anda harus melakukan perhitungan.

Saya menemukan bahwa grep -i memory /var/log/Xorg.0.logdengan benar melaporkan VRAM pada kartu sistem saya. Ini tidak berfungsi untuk laptop saya menggunakan driver radeondengan perangkat Radeon Mobility terintegrasi.

koanhead
sumber
Terima kasih, tetapi pengaturan nvidia adalah spesifik kartu. Dan ya, saya percaya lshwmelaporkan sumber daya memori sistem yang sama lspci, hanya lshw melaporkannya sebagai rentang alamat, bukan ukuran.
drgrog
3
Aku seharusnya berpikir untuk memeriksa phoronix sebelum mencoba menjawab ini. Di sistem saya, kartu video 768MB G80 saya dilaporkan 256MB dalam lspci, seperti yang Anda perhatikan. Orang-orang di forum mengatakan bahwa ini sebenarnya adalah bukaan yang terlihat melalui bus PCI, yang masuk akal. Melakukan 'dmesg | grep VGA' memberikan masalah yang sama pada sistem saya, meskipun saya sudah mendengar itu berfungsi dengan benar untuk orang lain. Memori dilaporkan dengan benar di /var/log/Xorg.0.log: 'NVIDIA (0): Memory: 786432 kBytes'. Dari posting forum ini: phoronix.com/forums/… !
koanhead
1
Sepertinya saya harus menulis skrip sendiri. Sejauh ini grep kB /var/log/Xorg.0.logatau grep -i mem /var/log/Xorg.0.logberi saya data yang paling akurat dan bisa diterapkan untuk kartu nvidia dan VM VirtualBox. Saya tidak punya kartu ATI untuk diuji, dan belum sempat menguji kartu intel terintegrasi saya atau VMware VMware.
drgrog
1
fglrx: grep kByteakan menghasilkan sesuatu seperti ini Video RAM: 1048576 kByte, Type: GDDR5:, ambil hanya kB juga akan menampilkan beberapa item VESA.
taneli
xserver-xorg-video-ati: grep "mem size"akan menghasilkan sesuatu seperti ini: RADEON(0): mem size init: gart size :1fdff000 vram size: s:40000000 visible:f6f6000yang terbaik yang bisa saya dapatkan darinya, di mana ukuran memori dalam hex sesudahnyas:
taneli
13
LC_ALL=C lspci -v | grep -EA10 "3D|VGA" | grep 'prefetchable' 

Output sistem saya

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

Yang artinya memiliki 256 MB memori yang didedikasikan untuk kartu video terintegrasi.

Pembaruan : namun, waspadalah jika Anda menggunakan salah satu kartu Intel HD Graphics. Memori-nya biasanya dibagikan dengan RAM utama sistem dan bersifat dinamis, yang berarti meningkatkan dan mengurangi permintaan. Dalam sistem saya, saya kemudian menemukan bahwa itu dapat tumbuh hingga 1,7 GB, dan nilai ini tampaknya standar jika Anda memiliki sistem dengan 4,0 GB RAM (kasing saya). Jika Anda menggunakan kartu grafis seperti ini, output di atas tidak akan banyak membantu.

thiagowfx
sumber
2
Anda mungkin dapat menemukan berapa banyak dengan menjalankan sudo dmesg | grep drmseperti pada jawaban pertama - Saya mendapat 2048M, yang saya gunakan untuk aplikasi di bawah Wine dan itu berhasil.
Wilf
1
Untuk kartu grafis yang berbagi dengan memori utama, apakah penggunaan memori ini terkena hal-hal seperti topatau freeatau tidak terlihat oleh OS? Bagaimana cara mengetahui berapa banyak RAM yang diambil oleh IGP bersama?
CMCDragonkai
5

Anda dapat mencoba ini:

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

atau ini jika perintah di atas gagal:

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

Tidak ada yang baru - hanya melihat posting lain dan menambahkan pencocokan pola untuk output yang diformat lebih baik.

Agnius Vasiliauskas
sumber
Keduanya tidak berfungsi untuk notebook Asus G551JM Ubuntu 14.04 (dual grafis, termasuk. GeForce GTX 860M)
Adam Ryczkowski
1
Perintah pertama mengembalikan kesalahanbash: / 1024: syntax error: operand expected (error token is "/ 1024")
Adam Ryczkowski
Ini adalah satu-satunya solusi yang bekerja untuk saya, dari baris perintah!
Panayotis
perintah kedua mengembalikan ukuran ram video yang tepat
Mudit Kapil
1

Ada program yang disebut hardinfo , tersedia di Pusat Perangkat Lunak , yang akan mencantumkan setiap kartu video (di bawah drop-down Perangkat, dalam kategori Perangkat PCI) dan spesifikasi untuk setiap kartu, termasuk memori dan vendor / model.

Nathan Dyer
sumber
1
Terima kasih Nathan, tetapi hardinfo hanyalah antarmuka gui untuk informasi yang diperoleh dari lshw dan lspci dll. Saya ingat ini disarankan sebelumnya, walaupun sepertinya jawabannya telah dihapus oleh penulis.
drgrog
hardinfo keren, tetapi tidak memberitahu memori GPU.
Adam Ryczkowski