23 repositorios
Technologies for partitioning physical GPU hardware into multiple virtual devices for shared use across virtual machines.
Distinct from Virtual Machines: None of the candidates cover hardware-level GPU virtualization; they focus on general VM management or OS internals.
Explore 23 awesome GitHub repositories matching operating systems & systems programming · GPU Resource Virtualization. Refine with filters or upvote what's useful.
OSX-KVM is a project that enables running macOS as a virtualized guest operating system on non-Apple hardware using QEMU/KVM and the OpenCore bootloader. It provides the core capability to install and boot macOS on a Linux host, supporting GPU passthrough for improved graphics performance and remote access via SSH and VNC for headless management. The project distinguishes itself by offering a complete virtualization stack for macOS, including hardware passthrough for physical GPUs and other devices, integration with libvirt and virt-manager for graphical VM management, and the ability to boot
Assigns physical GPUs to a macOS virtual machine for hardware-accelerated graphics performance.
AISystem is a comprehensive AI full-stack infrastructure project covering the entire pipeline from AI chip architecture to high-level training frameworks. It encompasses the development of AI compiler frameworks, inference engines, and distributed training orchestrators designed to coordinate workloads across a heterogeneous compute stack of CPUs, GPUs, and NPUs. The project focuses on the deep integration of software and hardware, employing software-hardware co-design to align tensor layouts with physical memory structures. It provides specialized capabilities for accelerating Transformer mo
Divides physical GPU hardware into isolated virtual GPUs to ensure predictable throughput across tasks.
This project is a collection of shell-based automation scripts designed to automate the deployment and configuration of Linux containers and virtual machines on Proxmox VE hosts. It provides toolsets for the scripted provisioning of virtual machine infrastructure and the creation of pre-defined containers for various applications. The toolset includes specialized utilities for Proxmox host management, such as automating post-installation setup, managing system backups, and cleaning up old kernels to reclaim disk space. It further provides automated configurations for hardware passthrough, ena
Configures hardware passthrough and manages resource allocation to optimize virtualization efficiency.
vcluster is a Kubernetes virtual cluster platform that creates fully isolated Kubernetes environments with dedicated control planes, API servers, and RBAC on shared physical infrastructure. It virtualizes Kubernetes control planes by running them as pods inside a host cluster, as standalone binaries on bare metal or virtual machines, or within Docker containers, providing each tenant their own isolated Kubernetes environment without the overhead of managing separate physical clusters. The platform enables multi-tenant Kubernetes isolation through multiple tenancy models, from shared node pool
Provides secure kernel-level isolation for workloads using seccomp, cgroups, and namespaces.
WasmEdge is an extensible WebAssembly runtime that executes WebAssembly bytecode in a secure sandbox for cloud, edge, and embedded applications. It functions as a multi-language compiler, compiling applications written in Rust, JavaScript, Go, and Python into WebAssembly bytecode for sandboxed execution, and as a server-side JavaScript runtime that runs JavaScript programs with ES6 modules, NPM packages, and Node.js-compatible APIs. The runtime also serves as an AI inference runtime, executing AI models from JavaScript using WASI-NN plug-ins for inference tasks on personal devices and edge har
Orchestrates large language model inference tasks on GPU hardware within a Kubernetes cluster.
jetson-inference is a set of libraries and tools for executing optimized deep learning models on embedded GPU hardware. Its primary purpose is to enable real-time computer vision and AI inference at the edge with low latency and high throughput. The project distinguishes itself through high-performance streaming analytics and the ability to execute concurrent AI pipelines on auto-grade silicon. It provides specialized support for multi-sensor stream processing, utilizing zero-copy data transport to load camera frames directly into GPU memory. The codebase covers a broad surface of capabiliti
NVIDIA creates virtual GPUs from a physical device to share performance across multiple virtual machines.
Nebullvm is an AI inference accelerator, GPU resource orchestrator, and performance optimization library for large language models. It functions as an optimization layer designed to lower operational costs by aligning model execution with underlying hardware architectures. The system maximizes cluster efficiency through real-time dynamic partitioning and elastic quotas for shared hardware resources. It employs alignment methods and techniques to reduce the hardware and data requirements necessary for tuning large language models. The project covers broad capability areas including AI infrast
Provides real-time dynamic partitioning of shared GPU hardware to maximize cluster efficiency and prevent underutilization.
This project is an Android container runtime that enables the deployment of GPU-accelerated Android instances on Linux hosts across multiple hardware architectures. It provides a cloud-based environment for virtualized Android devices, functioning as a containerized implementation of the Android operating system to support scalable device instances. The system distinguishes itself through a cross-architecture runtime capable of executing ARM-based Android applications on x86 hardware via binary translation layers. It further utilizes host GPU resources to provide high-performance graphics ren
Provides a virtualization layer that leverages host GPU resources for high-performance Android graphics rendering.
Assigns a physical GPU to a macOS virtual machine for hardware-accelerated graphics with BIOS and kernel tweaks.
Provides virtualization and containerization for managing GPU workloads.
Easy-GPU-PV es un conjunto de herramientas administrativas para verificar la compatibilidad del hardware y automatizar el despliegue de aceleración gráfica particionada en entornos Windows virtualizados. Funciona como un orquestador y gestor de recursos para aprovisionar máquinas virtuales con unidades de procesamiento gráfico particionadas. El proyecto se centra en la partición de GPU en Windows, permitiendo que una sola tarjeta gráfica física comparta la aceleración de hardware a través de múltiples sistemas virtualizados. Logra esto automatizando la configuración del hardware y software del host para permitir que los entornos virtualizados accedan a las unidades de procesamiento gráfico. El sistema gestiona el proceso de aprovisionamiento de extremo a extremo, cubriendo la verificación de compatibilidad de hardware, la configuración de gráficos de la máquina virtual y la sincronización de controladores entre los sistemas host y invitado. Utiliza particionamiento basado en registro y automatización de sistemas mediante scripts para manejar la asignación de recursos y la validación de requisitos previos.
Divides a single physical graphics card to share hardware acceleration across multiple virtual machines on Windows.
LXD is a unified platform for managing both system containers and virtual machines through a single REST API and command-line interface. It provides a programmatic HTTP interface for controlling the full lifecycle of instances, enabling automation and integration with external tools. The system runs unprivileged containers with per-instance UID/GID mappings, seccomp filters, and AppArmor profiles for kernel-level isolation, while supporting multiple storage backends including directory, Btrfs, LVM, ZFS, Ceph, LINSTOR, and TrueNAS through a unified driver interface. The platform distinguishes
Creates and passes a virtual GPU into a virtual machine using mediated device profiles.
Volcano is a Kubernetes-native batch scheduler specialized for AI, machine learning, and high-performance computing workloads. It provides gang scheduling to atomically allocate resources for all tasks of a distributed job, preventing deadlocks from partial allocation, and supports hierarchical queue management for multi-tenant resource isolation with configurable quotas, borrowing, and preemption. Topology-aware placement optimizes communication-intensive workloads by modeling network hierarchy to minimize cross-switch latency. Volcano differentiates itself with automated orchestration of di
Volcano schedules across x86, Arm, and GPU architectures, supporting GPU virtualization for fine-grained sharing and dynamic partitioning with MIG.
vgpu_unlock es un conjunto de herramientas de software y modificaciones de controladores diseñadas para desbloquear características de virtualización de nivel empresarial en hardware gráfico de consumo. Funciona como una herramienta de desbloqueo de vGPU y suplantador de ID de dispositivo de hardware que permite compartir una sola tarjeta gráfica entre múltiples máquinas virtuales. El proyecto logra esto empleando hooking a nivel de controlador, parches de memoria dinámicos y suplantación de dispositivos a nivel de kernel. Estas técnicas interceptan las consultas de identificación de hardware y modifican el estado operativo del controlador de GPU en tiempo de ejecución para saltarse las restricciones de software impuestas por el fabricante. Las capacidades resultantes proporcionan gráficos acelerados por hardware a los sistemas operativos invitados y permiten compartir GPU virtuales en hardware que no soporta estas funciones de forma nativa.
Enables the partitioning of a single physical GPU into multiple virtual devices for shared use across virtual machines.
gpustack es una plataforma de gestión de clústeres de GPU y orquestador de inferencia LLM. Funciona como un sistema centralizado para agrupar y orquestar unidades de procesamiento gráfico en servidores locales y entornos en la nube, sirviendo como un gestor de cómputo heterogéneo para diversas configuraciones de hardware y software. El sistema proporciona una puerta de enlace de despliegue de modelos de IA segura que sirve modelos como servicios escalables utilizando autenticación basada en claves. Incluye un programador de recursos de GPU que equilibra las cargas de trabajo entre aceleradores y coordina múltiples motores de inferencia para mapear modelos de IA específicos a hardware compatible. La plataforma cubre una orquestación de clústeres integral, incluyendo recuperación automática de fallos, monitorización de recursos en tiempo real y escalado de inferencia distribuida. Incorpora optimización de rendimiento mediante cuantización y decodificación especulativa para maximizar el rendimiento y reducir la latencia. Las configuraciones del sistema y el estado del clúster se mantienen mediante la persistencia del estado en bases de datos relacionales externas.
Coordinates and deploys inference engines like vLLM and SGLang to serve AI models.
JimsGarage is a collection of shell scripts and automation tools designed to help individuals deploy and manage a wide range of self-hosted services on their own hardware. It provides a structured approach to setting up containerized applications, from media servers and document management systems to VPNs and monitoring stacks, all through automated Docker-based configurations. The project distinguishes itself by offering a comprehensive library of deployment recipes that cover the full lifecycle of a home server environment. This includes not just the services themselves, but also the suppor
Provides scripts to create toolbox containers with GPU access for running compute workloads.
ExHyperV es un conjunto de herramientas administrativas diseñadas para gestionar configuraciones avanzadas de Hyper-V, centrándose específicamente en la partición de GPU, paso a través de dispositivos (device passthrough) y conmutadores de red virtual. Proporciona una interfaz gráfica para configurar los recursos de la máquina virtual y optimizar la configuración del hipervisor. El proyecto se distingue por su capacidad para compartir recursos de tarjetas gráficas físicas entre múltiples máquinas virtuales utilizando paravirtualización y partición. También proporciona utilidades especializadas para asignar dispositivos PCIe y periféricos USB directamente a las máquinas invitadas para un acceso exclusivo. El software cubre una amplia gama de capacidades de virtualización, incluyendo la optimización de la topología de CPU, fijación de procesador (processor pinning) y asignación de memoria. También incluye la gestión de redes virtuales a través de la configuración de VLAN y la administración de conmutadores virtuales, así como operaciones de almacenamiento como la gestión de puntos de control y la creación de ISO virtuales. El kit de herramientas permite la implementación de seguridad basada en hardware como el cifrado de memoria y enclaves Intel SGX, y admite la virtualización anidada mediante el paso a través de extensiones de virtualización de CPU.
Shares physical graphics card resources across multiple virtual machines using Hyper-V GPU partitioning.
Este proyecto es un manual técnico integral para instalar macOS en hardware x86 que no es de Apple utilizando el bootloader OpenCore. Sirve como una guía de configuración para emular hardware de Apple y parchear el firmware del sistema para lograr la compatibilidad del sistema operativo en PCs. La documentación proporciona instrucciones detalladas para la emulación de hardware SMBIOS, incluyendo la generación de identificadores de sistema y perfiles de modelo. Cubre la aplicación de parches de tablas ACPI para habilitar la gestión de energía nativa y la modificación de servicios de tiempo de ejecución UEFI para resolver problemas de mapa de memoria y protección contra escritura. El recurso detalla además la compatibilidad de hardware para componentes de red, gráficos y audio, así como la gestión de extensiones de kernel. Incluye orientación sobre la configuración del bootloader, la creación de instaladores arrancables y el uso de registros detallados (verbose) y kits de depuración para solucionar pánicos de kernel.
Generates graphics connector and memory patches to resolve boot panics and enable acceleration on unsupported GPUs.
CRIU is a Linux process checkpointing tool and state manager used to freeze running applications and save their memory and state to disk for later restoration. It functions as a container migration engine and an OCI checkpoint image converter, allowing the live state of running containers to be transferred between different hosts. The project distinguishes itself through its ability to persist network connectivity, acting as a TCP connection state persister that saves and reconstructs network socket states to maintain active communication after a restart. It further enables the distribution o
Captures and restores the state of applications using GPU acceleration to enable failure recovery and workload migration.
Hackintool is a hardware configuration tool designed to make non-native computer hardware compatible with macOS. It functions as a suite of utilities for spoofing device identifiers and patching system components to ensure the operating system recognizes unsupported hardware. The project provides specialized tools for graphics, audio, and USB configurations. This includes a framebuffer patcher for resolving display issues on unsupported GPUs, an audio layout configurator for enabling sound via device ID spoofing, and a USB port mapping tool that identifies connected devices to generate custom
Generates graphics connector and memory patches to fix display issues and enable hardware acceleration on unsupported GPUs.