If you run Linux on a system with both an integrated GPU and a dedicated GPU, you may have noticed something strange: some monitoring tools only show one GPU.
This situation is common on:
- laptops with hybrid graphics
- desktops with iGPU + dedicated GPU
- systems using different driver stacks
For example, a monitoring tool like btop might show your AMD integrated GPU but completely ignore your NVIDIA card.
In this article we will walk through how to:
- detect all GPUs installed in your system
- verify that the correct drivers are loaded
- identify which GPU is rendering your desktop
- monitor usage for each GPU
- automate the entire diagnostic process with a small script
Why This Happens
Linux systems with multiple GPUs may behave differently depending on:
- installed drivers (open source vs proprietary)
- kernel configuration
- which GPU is configured as the primary renderer
- monitoring tool capabilities
Example setup used in this article:
- AMD Vega (integrated) — Ryzen 5 5600G
- NVIDIA GTX 1050 Ti (dedicated)
In this configuration, btop showed only the AMD GPU while the NVIDIA card remained invisible in the default monitoring view.
Step 1 — Check if Both GPUs Are Detected
1.1 List GPUs via PCI
Run:
lspci | grep -i vga
Example output:
01:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti]
09:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series]
If two entries appear, your hardware is being detected correctly.
1.2 Check Loaded Drivers
Run:
lsmod | grep -E 'nvidia|amdgpu|radeon'
Typical modules:
| GPU | Kernel Module |
|---|---|
| NVIDIA |
nvidia, nvidia_drm, nvidia_modeset
|
| AMD (modern) | amdgpu |
| AMD (legacy) | radeon |
If the modules appear, the drivers are loaded by the kernel.
1.3 Check Which GPU Is Rendering Your Desktop
Use:
glxinfo | grep "OpenGL renderer"
Example output:
OpenGL renderer string: NVIDIA GeForce GTX 1050 Ti
If glxinfo is missing, install it.
Ubuntu / Debian:
sudo apt install mesa-utils
Arch Linux:
sudo pacman -S mesa-utils
This command reveals which GPU is rendering the graphical session.
In hybrid setups, the integrated GPU often renders the desktop while the dedicated GPU activates only for demanding workloads.
Step 2 — Monitoring Each GPU
2.1 Integrated GPU (AMD / Intel) — Using btop
Launch:
btop
Inside btop:
- press g to toggle GPU views
- press 5 / 6 / 7 for specific GPU panels
- configure via F2 → Options → CPU box → Show GPU info
2.2 NVIDIA Dedicated GPU — Using nvidia-smi
For NVIDIA GPUs the official tool is the most reliable:
watch -n 1 nvidia-smi
This updates every second and displays:
- GPU utilization
- memory usage
- running processes
Structured output:
nvidia-smi --query-gpu=name,memory.used,memory.total,utilization.gpu --format=csv -l 1
Step 3 — Automating GPU Diagnostics
Create a script called:
check_gpus.sh
Script:
#!/bin/bash
echo "=== GPUs Detected ==="
lspci | grep -E "VGA|3D"
echo -e "\n=== Loaded Drivers ==="
lsmod | grep -E "nvidia|amdgpu|radeon"
echo -e "\n=== NVIDIA GPU ==="
nvidia-smi --query-gpu=name,memory.total --format=csv 2>/dev/null || echo "NVIDIA not detected"
echo -e "\n=== Rendering GPU ==="
glxinfo | grep "OpenGL renderer" 2>/dev/null || echo "glxinfo not available"
echo -e "\n=== DRM Devices ==="
ls /sys/class/drm | grep card
Make executable:
chmod +x check_gpus.sh
Run:
./check_gpus.sh
This quickly shows:
- detected GPUs
- active drivers
- rendering GPU
- NVIDIA status
- DRM device nodes
Recommended Tools Summary
| GPU Type | Recommended Tool | Command |
|---|---|---|
| AMD / Intel (integrated) | btop |
btop |
| NVIDIA (dedicated) | nvidia-smi |
watch -n 1 nvidia-smi |
| Hardware detection | lspci |
lspci | grep -i vga |
| Rendering check | glxinfo |
glxinfo | grep "OpenGL renderer" |
Conclusion
Working with multiple GPUs on Linux doesn't have to be confusing.
Using the commands shown above you can:
- verify hardware detection
- confirm driver loading
- identify which GPU renders your desktop
- monitor GPU usage in real time
- automate diagnostics with a small script
Different GPU stacks require different tools, but combining a few commands provides full visibility into your graphics subsystem.
Additional Resources
btop documentation
https://github.com/aristocratos/btop
NVIDIA System Management Interface
https://developer.nvidia.com/nvidia-system-management-interface
Arch Linux Wiki — NVIDIA
https://wiki.archlinux.org/title/NVIDIA
Top comments (0)