This project will no longer be maintained by Intel.
Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.
Intel no longer accepts patches to this project.
If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.
This project contains the software components and ingredients to enable Intel's graphics virtualization technology (Graphics SR-IOV) on cloud/edge-native infrastructure. The aim is to deliver GPU-accelerated workloads capability to virtual machines running on Kubernetes cluster
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
Intel Graphics SR-IOV Technology
Graphics SR-IOV is Intel's latest Virtualization Technology for Graphics. Single Root I/O Virtualization (SR-IOV) defines a standard method for sharing a physical device function by partitioning the device into multiple virtual functions. Each virtual function is directly assigned to a virtual machine, thereby achieving near native performance for the virtual machine
The key benefits of Intel Graphics SR-IOV are:
- A standard method of sharing physical GPU with virtual machines, thus allowing efficient use of GPU resource in a virtual system
- Improved video transcode, media AI analytics and Virtual Desktop Infrastructure (VDI) workloads performance in virtual machine
- Support up to 4 independent display output and 7 virtualized functions (12th Generation Intel Core embedded processors)
- Support multiple guest operating system
Cloud/Edge Native Technology
Application containerization and Kubernetes orchestrator have revolutionarized the way software is developed and deployed. The containerization era has led to the development of microservices that typically run as containers and have the advantage of being lightweight, require less memory, fast startup time and operate at native performance. But there are scenarios where your application still need to run as full-fledge virtual manchines and cannot be run as containers due to legacy software support or integration complexity.
In order to achieve the best of both worlds, we can leverage Kubernetes and KubeVirt, a Kubernetes extension, that allows running traditional virtual machine workloads natively side by side with container workloads. With this solution, you can have the advantage of a single infrastructure for both containerized and virtualized workloads. You can also benefit from the power and features of Kubernetes
Intel Graphics SR-IOV Enablement Toolkit
This repository contains scripts, manifests and documentation, collectively known as the Intel Graphics SR-IOV Enablement Tookit to help software developer enable Graphics SR-IOV for cloud/edge native application development
Access to appropriate hardware and drivers is required for the setup. Graphics SR-IOV technology is supported on the following Intel products:
- 12th Generation Intel Core embedded processors (Alder Lake)+
- A working Ubuntu 22.04 LTS host
- Configuration to enable Graphics SR-IOV on host:
-
12th Generation Intel Core embedded processors
Note: Save the kernel debian package files built by completing section "3.0: Host OS Kernel Build Steps" of the Alder-Lake-MultiOS-With-GFX-SR-IOV-Virtualization-On-Ubuntu-User-Guide.pdf into a folder and proceed to create an archive file. We will use this archive file in prepration for setting up Ubuntu VM at Usage > Deploy Ubuntu Virtual Machine . See below on steps to create an archive file:
mkdir kernel cp *.deb kernel/ tar -czvf kernel.tgz kernel/
-
- Quick Install (easy)
- Manual Install
-
Clone the repo and install toolkit. When prompted, answer 'y' to proceed with the installation.
Note: If operating behind corporate firewall, setup the proxy settings before continue.
easy_install.sh
should only be run on newly setup system to prevent overwriting existing installed software and configuration. For more customized installation, please see Manual Installgit clone https://github.com/intel/kubevirt-gfx-sriov.git gfx-sriov cd gfx-sriov ./scripts/easy_install.sh
-
After reboot, check for the presence of
intel.com/sriov-gpudevices
resourceNote: Please wait for all pods' STATUS=Running by checking with the following command:
kubectl get pods -n kubevirt
kubectl describe nodes
Output:
Capacity: intel.com/sriov-gpudevice: 7 Allocatable: intel.com/sriov-gpudevice: 7 Allocated resources: Resource Requests Limits -------- -------- ------ intel.com/sriov-gpudevice 0 0
-
After completing the installation of Intel® Graphics SR-IOV Enablement Toolkit, proceed to the Usage section below to setup Virtual Machines
Follow the links below for instructions on how to setup and deploy virtual machines using this toolkit
Deploy Windows Virtual Machine
For more examples, please refer to the Documentation
Refer to the link below for information on the architecture and design of the overall solution
Refer to the link below for common problems people encounter
Distributed under the Apache License, Version 2.0. See LICENSE for more information.