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