I am running Noble (24.04.2) on an ASRock 970 Extreme 3.0 G2 system with a 6-core AMD CPU and 24GB of RAM. I have an ATI Radeon HD7670 GPU (128bit, 650MHz, and 4GB of RAM). However, System Profiler and lshw both show the GPU as 64bit, 33MHz, and 256MB of RAM. Is the GPU running in some sort of backwards compatibility mode? Any suggestions on how to enable its full capabilities?
1 Answers
Looking on a Ubuntu 24.04.2 LTS system, running lshw gives the following information:
$ sudo lshw -c display
*-display
description: VGA compatible controller
product: GK104GL [Quadro K4200]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:02:00.0
logical name: /dev/fb0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom fb
configuration: depth=32 driver=nouveau latency=0 resolution=1920,1200
resources: irq:81 memory:f2000000-f2ffffff memory:e0000000-efffffff memory:f0000000-f1ffffff ioport:2000(size=128) memory:f3080000-f30fffff
As per the question, for the output of lshw:
- The width is reported as 64-bits
- The clock is reported as 33MHz
- There is a memory range of size 256M (
memory:e0000000-efffffff)
Running lspci on the identity of the graphics card shows:
$ lspci -vv -d 10de:11b4
02:00.0 VGA compatible controller: NVIDIA Corporation GK104GL [Quadro K4200] (rev a1) (prog-if 00 [VGA controller])
Subsystem: Hewlett-Packard Company GK104GL [Quadro K4200]
Physical Slot: 2
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 81
NUMA node: 0
IOMMU group: 56
Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at e0000000 (64-bit, prefetchable) [size=256M]
Region 3: Memory at f0000000 (64-bit, prefetchable) [size=32M]
Region 5: I/O ports at 2000 [size=128]
Expansion ROM at f3080000 [disabled] [size=512K]
Capabilities: <access denied>
Kernel driver in use: nouveau
Kernel modules: nvidiafb, nouveau
Therefore, believe lshw is reporting the following based upon the PCI identity of graphics card PCIe endpoint:
- width as the PCI bar address size.
- clock as the the legacy PCI clock (which was 33 or 66 MHz). On PCIe the actual speed and width of the interface is reported via PCIe capabilities, which
lspcican display butlshwisn't. - memory as the size of the PCIe BARs, which isn't representative of the actual amount of memory on the graphics card.
After finding How to get the GPU info? installed mesa-utils:
$ sudo apt install mesa-utils
Running glxinfo -v and search for information about memory reported:
$ glxinfo -v | grep memory
Video memory: 4086MB
Unified memory: no
VBO free memory - total: 3269 MB, largest block: 3269 MB
VBO free aux. memory - total: 838860 MB, largest block: 838860 MB
Texture free memory - total: 3269 MB, largest block: 3269 MB
Texture free aux. memory - total: 838860 MB, largest block: 838860 MB
Renderbuffer free memory - total: 3269 MB, largest block: 3269 MB
Renderbuffer free aux. memory - total: 838860 MB, largest block: 838860 MB
Memory info (GL_NVX_gpu_memory_info):
Dedicated video memory: 4086 MB
Total available memory: 1052661 MB
Currently available dedicated video memory: 3269 MB
GL_EXT_framebuffer_sRGB, GL_EXT_memory_object, GL_EXT_memory_object_fd,
GL_MESA_texture_signed_rgba, GL_NVX_gpu_memory_info,
GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4, GL_EXT_memory_object,
GL_EXT_memory_object_fd, GL_EXT_multi_draw_arrays,
GL_MESA_texture_signed_rgba, GL_MESA_window_pos, GL_NVX_gpu_memory_info,
GL_EXT_instanced_arrays, GL_EXT_map_buffer_range, GL_EXT_memory_object,
GL_EXT_memory_object_fd, GL_EXT_multi_draw_arrays,
The reported video memory size of 4086MB matches the Memory Size reported on NVIDIA Quadro K4200.
Is the GPU running in some sort of backwards compatibility mode?
To answer that part of the question, no. Rather it is that lshw is displaying information about the legacy PCI information, and the PCIe BAR memory sizes, on the PCIe interface to the GPU rather than the memory capacity of the GPU.
To get more information suggest:
Install
mesa-utilsand runglxinfoThe answer How to get the GPU info? suggests
aticonfigmight help, but I don't have a ATI GPU to check.I did try the NVIDIA
nvidia-smion my Quadro K4200, but that reported:$ sudo nvidia-smi NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.In my case are using the GPL
nouveaudriver, rather a NVIDIA proprietary driver.aticonfigmight be similar and require a proprietary ATI driver to be used.
- 573