MVGAL — Multi-Vendor GPU Aggregation Layer
Combine multiple GPUs from different vendors into one logical device — transparently, without modifying your applications.
v0.7.3 AMD · NVIDIA · Intel · Moore Threads Vulkan · OpenCL · CUDA
Documentation
Quick Start
Get MVGAL running in 5 minutes.
Installation
Install from COPR or build from source.
Building
Build MVGAL from source with CMake, Meson, or Zig.
Architecture
The 8-layer system architecture.
Design
Design goals and architecture decisions.
API Reference
Complete public C API reference.
Scheduling Strategies
10 workload distribution strategies.
Memory Management
Unified VRAM, DMA-BUF, P2P, and staging.
Hardware Compatibility
Supported GPUs and drivers.
Steam / Proton
Multi-GPU gaming integration.
Power Management
DVFS, idle states, thermal control.
Troubleshooting
Common issues and solutions.
Project Status
Current milestone and component status.
What is MVGAL?
Most Linux systems with multiple GPUs (e.g. an AMD RX 7900 + NVIDIA RTX 4080) treat each card as a completely separate device. Applications can only use one at a time, leaving the other idle.
MVGAL solves this by aggregating all available GPUs — regardless of vendor — into a single logical device. Any application, game, or compute workload can use it without modification.
Quick Start
# Start the daemon
pkexec systemctl start mvgald
pkexec systemctl enable mvgald # start on boot
# Verify
mvgal-info # list detected GPUs
mvgal-status # real-time utilization
mvgal-compat --system # check readiness
License
- Kernel module: GPL-2.0-only
- Userspace components: GPL-3.0-only
- Rust crates: MIT OR Apache-2.0