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

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

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]

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


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

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 29 comments so far... add one

CategoryList of Unix and Linux commands
Disk space analyzersncdu pydf
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
29 comments… add one
  • winrid Aug 3, 2008 @ 16:50

    How do I check the amount of video card memory being used?

  • Fox Aug 21, 2008 @ 20:26

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

    • sherif Apr 16, 2011 @ 8:44

      try sudo

    • Kandi Klover Mar 23, 2014 @ 22:20

      heheh ur a furry <3 murr

      • jeff Apr 26, 2017 @ 17:34

        fucking weird

  • dibber Sep 7, 2008 @ 18:28

    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.

    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

  • Frans van Beckel Sep 14, 2008 @ 8:13

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

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

  • luke Oct 20, 2008 @ 19:39

    how do i find how much memory my video card has?

  • Danny G Mar 20, 2009 @ 1:55

    You could also do:

    lspci -v | grep VGA -A12

    To focus the -v option right to the VGA adapter

  • leo Oct 26, 2009 @ 18:13


    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


  • Gustavo H Reyes Nov 17, 2009 @ 19:35
    [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!

  • raj Apr 6, 2010 @ 7:21

    how to run .exe files in linux?

    • Hashmatullah Oct 10, 2010 @ 17:00

      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.

      • Propeng Oct 30, 2010 @ 9:42

        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.

        • Hashmatullah Oct 30, 2010 @ 17:34

          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.

    • raj kumar Apr 28, 2013 @ 12:04

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

  • Daniel Apr 21, 2010 @ 20:33

    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
  • swaroop Oct 10, 2011 @ 3:52

    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

  • Toppo Nov 24, 2011 @ 19:37

    hey hi, i just wanna know how and where do i run the .SH file format, am using FEDORA 14.

  • Mubeen Feb 11, 2012 @ 22:02

    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 ??

  • Jayen Mar 11, 2012 @ 7:51

    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.

  • Anand Aug 29, 2013 @ 17:48

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

  • Sean Oct 12, 2013 @ 13:57

    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…

  • Damon Ridley May 31, 2014 @ 12:49

    Thanks!!! Just what I was looking for

  • Gimmy Sep 30, 2014 @ 12:16

    Hi guys,

    just dropping a comment to say thanks for your help :)
    Found a lot of useful info!

  • Jesse Dec 10, 2014 @ 21:26

    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???

    • Jesse Dec 10, 2014 @ 21:35

      never mind, i figured it out.

  • John Apr 30, 2015 @ 21:31

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

  • onni May 22, 2015 @ 11:51

    thanks very much!!!

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Still have questions? Post it on our forum