Linux Find Out Video Card GPU Memory RAM Size Using Command Line

last updated in Categories , , , , , ,

I have a quick question for you, Vivek: I’m trying to find out my NVDIA display card memory size on Fedora Linux. How do I find out my VIDEO Card (VGA) Memory size on Linux?

You need to use the following commands to find out graphics card (VGA) memory on Linux:

  1. lspci command – It is a utility for displaying information about all PCI buses in the system and all devices connected to them.
  2. /var/log/Xorg.0.log – Xorg log file.
  3. lshw command – List CPU, CPU and other hardware on Linux.
  4. glxinfo command – See information about the GLX implementation on Linux on a given X display.

lspci command example to find out video card (GPU) memory ram size on Linux

Open a terminal and type the lspci command to list PCI devices on Linux:
$ lspci
Output:

00:00.0 Host bridge: Intel Corporation 82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (rev 03)
00:02.0 VGA compatible controller: Intel Corporation 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 82)
00:1f.0 ISA bridge: Intel Corporation 82801DB/DBL (ICH4/ICH4-L) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801DB (ICH4) IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 02)
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 02)
01:00.0 Network controller: RaLink RT2561/RT61 rev B 802.11g
01:02.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
01:02.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)
01:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

You need to use string called devices in the specified domain – 00:02.0 VGA (highlighted in red color to display memory info):
$ lspci -v -s 00:02.0
Sample outputs:

00:02.0 VGA compatible controller: Intel Corporation 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device (rev 03) (prog-if 00 [VGA])
        Subsystem: Giga-byte Technology Unknown device 2562
        Flags: bus master, fast devsel, latency 0, IRQ 177
        Memory at d0000000 (32-bit, prefetchable) [size=128M]
        Memory at d8200000 (32-bit, non-prefetchable) [size=512K]
        Capabilities: 

This listing shows an Intel video card with 128 MB of video RAM. If you cannot find devices in the specified domain use following command and look for your display card name and memory field:
$ lspci -v | less

Identify onboard Intel/AMD or Nvidia dedicated GPU on Linux

Simply run the following lshw command. It is a small tool to extract detailed information on the hardware configuration of the Linux machine:
$ sudo lshw -C display
Linux to get the GPU information command

Linux Find Out Video Card GPU Memory RAM Size Using Command Line

Another option is to run the following command:
$ glxinfo | more
One can use the egrep command as follows to filter out info:
$ glxinfo | egrep -i 'device|memory'
Linux Find Out Video Card GPU Memory RAM Size For Intel GPU
To get summary i.e. brief info run:
$ glxinfo -B
Sample outputs:

name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: X.Org (0x1002)
    Device: Radeon RX 580 Series (POLARIS10 / DRM 3.25.0 / 4.17.14-041714-generic, LLVM 6.0.0) (0x67df)
    Version: 18.0.5
    Accelerated: yes
    Video memory: 4058MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.5
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 4058 MB, largest block: 4058 MB
    VBO free aux. memory - total: 4089 MB, largest block: 4089 MB
    Texture free memory - total: 4058 MB, largest block: 4058 MB
    Texture free aux. memory - total: 4089 MB, largest block: 4089 MB
    Renderbuffer free memory - total: 4058 MB, largest block: 4058 MB
    Renderbuffer free aux. memory - total: 4089 MB, largest block: 4089 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 4058 MB
    Total available memory: 8147 MB
    Currently available dedicated video memory: 4058 MB
OpenGL vendor string: X.Org
OpenGL renderer string: Radeon RX 580 Series (POLARIS10 / DRM 3.25.0 / 4.17.14-041714-generic, LLVM 6.0.0)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.0.5
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
 
OpenGL version string: 3.0 Mesa 18.0.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
 
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 18.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

Xorg log file to get the GPU info on Linux

Open a command-line terminal (select Applications > Accessories > Terminal), and then type:
$ grep -i --color memory /var/log/Xorg.0.log
Sample outputs:

(--) Aug 02 12:16:20 NVIDIA(0): Memory: 1048576 kBytes
(II) Aug 02 12:16:21 NVIDIA: Using 768.00 MB of virtual memory for indirect memory access.
(==) NVIDIA(0): Disabling shared memory pixmaps

The above output indicate that my Nvidia card has 1024MB ram. The following is taken from my Macbook, which has Intel GM965 Video card. It shares memory from main RAM:
$ grep -i memory /var/log/Xorg.0.log
Sample outputs:

[2318869.434] (II) intel(0): detected 15868 kB stolen memory.
[2318869.472] (II) intel(0): I830CheckAvailableMemory: 1966080 kB available
[2318869.486] (II) intel(0): Attempting memory allocation with tiled buffers.
[2318870.197] (II) intel(0): Fixed memory allocation layout:
[2318870.197] (II) intel(0): 0x00f7f000:            end of stolen memory
[2318870.197] (II) intel(0): 0x00f7f000-0x0fffffff: DRI memory manager (246276 kB)
[2318870.197] (II) intel(0): BO memory allocation layout:
[2318870.197] (II) intel(0): 0x00f7f000:            start of memory manager
[2318870.197] (II) intel(0): 0x10000000:            end of memory manager

Conclusion

You must use combination of various Linux commands to find out video card (GPU) memory (RAM) size and make of card. I strongly suggest that you read the following man pages:
$ man glxinfo
$ man lspci
$ man lshw

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Start the discussion at www.nixcraft.com

Historical Comment Archive

29 comment

  1. Thx, that helped me, but waht means “access denied” after the “capabilities”? That means my vga card is not in use? (I think)

  2. Thank you but can you clarify; how do you view video memory in use additionally?

    When I follow the above instructions, I get a much lower amount of memory than I know what is on this particular video card. The need for this is when I don’t know how much memory; on a laptop for instance.

    @Fox
    I don’t know why exactly the capabilities require root privs but that seems to be the case. Try:

    sudo lspci -v -s 00:02.0

  3. what means “access denied” after the “capabilities”?

    Do use superuser. #sudo lspci -v -s 00:02.0

  4. Hi,

    for this example the output of your video card is the same as the one ‘m using, and I cannot find the correct intel video driver (the one currently install keeps crashing every so often) which video driver did you install –for Intel Corporation 82845G/GL?
    I’m using arch linux

    Thanks.

  5. [admin@ttcol06p admin]$ sudo grep -i mem /var/log/XFree86.0.log|grep VESA
    (II) VESA(0): VESA VBE Total Mem: 8000 kB
    (II) VESA(0): Total Memory: 125 64KB banks (8000kB)
    (II) VESA(0): VESA VBE Total Mem: 8000 kB
    

    For Xorg:

    grep -i mem /var/log/Xorg.0.log |grep VESA

    Saludos desde Argentina!

    1. You cannot run .exe files under UNIX/Linux operating systems. These .exe files are solely created for Windows Operating Systems. You have something else instead of .exe files under Linux and they are called .rpm files which are the executable formats, do not be confused with the definition of executable and .exe file.

      1. No. RPM files are just archives (packages) of software, and they are meant to be used on Red Hat-based distros (such as Fedora and CentOS). Linux executable files do not have a specific extension, but are usually in the ELF format. You can also “execute” interpreted scripts, such as shell and Python scripts.

        1. Well, when first i landed to the Unix world, i would assume that everything will be the same as is in Windows Operating Systems. Reluctantly I would try to install some proprietary graphics software coded for Windows Platform and I would receive some obscure and absurd response from my Linux machine. This is the case that a newbie assumes that he/she is able to do the same in both platforms. Albeit, I have to mention that if someone really wants to know the intricacy of operating systems then the best book to start with is “Modern Operating Systems” by venerable Andrews S. Tanenbaum.

    2. if you have binary .exe then use wine
      or if .net .exe use mono to run exe that my personal experience

  6. This is what I’m using in one of my scripts. And as the comments say, it doesn’t always return the correct value.

    ###############################################################################
    # Function  : guess_video_memory
    # Parameters: none
    # A sloppy function to attempt to retrieve video memory.  This is known to be
    # incorrect in some cases, although the value returned should never be higher
    # than actual. If you know a better way, please email it to me!
    ###############################################################################
    guess_video_memory() {
        test -x /usr/sbin/lspci || return 1
        slot="$(/usr/sbin/lspci | grep "VGA compatible controller:" | awk '{print $1}')"
        test -n "${slot}" || return 1
        let videomem="$(/usr/sbin/lspci -vs ${slot} |
            egrep ' prefetchable\) \[size=[0-9]+M' |
            perl -pe 's/.*size=([0-9]+)M.*/$1/g')" || return 1
        return 0
    }
    
  7. As a matter of fact, you *can* open .EXE files in all major distros. Just make sure you install Wine.
    Ubuntu & Debian: sudo apt-get install wine

  8. Hi,
    using the commands mentioned in this article, I found that my notebook has 256MB video memory (32-bit, prefetchable), (Intel 945GM) on Linux Ubuntu 11.10.
    However when I try to change/select the video memoy in BIOS it gives only two options : 64MB or 128 MB. I have set it to 128MB, but Ubuntu is showing 256MB … How is it possible ??

  9. My Xorg.0.log has a line like this:
    46 :[ 7.319] (–) PCI:*(0:0:2:0) 8086:2a02:17aa:20b5 rev 12, Mem @ 0xf8100000/1048576, 0xe0000000/268435456, I/O @ 0x00001800/8

    0xe0000000/268435456 is how many bytes of memory my video card has.

  10. Really helpful article.
    Googled “how to check video memory on ubuntu server”, you guys were at second.

  11. Very helpful. I was trying to find out how much memory my integrated card had for a windows game using the PlayOnLinux frontend for Wine.
    Linked here from ubuntuforums post from 3 years ago…

  12. I’m trying to find out the memory of my Graphics Card, but these commands arent working for me, what ‘terminal’ am i supposed to be using???

  13. I googled “arch find out how much memory video card has” and this site popped up first. Very helpful and thank you.

    Have a question? Post it on our forum!