Overview
Intel® Graphics SR-IOV Enablement Toolkit contains the software components and ingredients to enable Intel's graphics virtualization technology (Graphics SR-IOV) on cloud and edge-native infrastructure. The goal is to deliver GPU-accelerated workloads capability to virtual machines running on Kubernetes* clusters.
Intel Graphics SR-IOV Technology
Intel 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 a physical GPU with virtual machines, thus allowing efficient use of GPU resources in a virtual system.
- Improved video transcode, media AI analytics, and virtual desktop infrastructure (VDI) workloads performance in virtual machine.
- Support up to four independent display output and seven virtualized functions (12th generation Intel® Core™ embedded processors).
- Support for multiple guest operating systems.
Cloud and Edge Native Technology
Application containerization and Kubernetes orchestrator have revolutionized 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 start-up time, and operate at native performance. But there are scenarios where your application still needs to run as full-fledged virtual machines and cannot be run as containers due to legacy software support or integration complexity.
To achieve the best of both scenarios, using Kubernetes and KuberVirt (a Kubernetes extension) 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.
Select Configure & Download to download the reference implementation and the software listed below.
Prerequisites
- Programming Language: Bash script , YAML manifest
GitHub source code - A working Ubuntu 22.04 LTS host configuration to enable Intel Graphics SR-IOV on host:
- Must be run on an embedded processor: 12th Gen Intel Core 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. This archive file is used to set up Ubuntu VM at Usage > Deploy Ubuntu Virtual Machine. See the following to create an archive file:
mkdir kernel
cp *.deb kernel/
tar -czvf kernel.tgz kernel/
How It Works
Intel® Graphics SR-IOV Enablement Toolkit uses Kubernetes orchestrator and KubeVirt to deploy and manage VM resources. The software package consists of YAML files and bash script files.
- The YAML files are required to configure the virtual environment running on Kubernetes cluster.
- The bash script files provided are for graphic SR-IOV enablement and Kubernetes cluster setup.
Figure 1. Simple Architecture Diagram
Install the Reference Implementation
- Clone the repo and install the toolkit. When prompted, answer 'y' to proceed with the installation.
Note If operating behind a corporate firewall, set up the proxy settings before continuing: easy_install.sh should only be run on newly set up systems to prevent overwriting existing installed software and configurations. For more customized installation, see Manual Install at GitHub.
git clone https://github.com/intel/kubevirt-gfx-sriov.git
cd gfx-sriov
./scripts/easy_install.sh
- After rebooting, check for the presence of intel.com/sriov-gpudevices resource.
Note 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, follow the links below to setup virtual machines.
Deploy a Windows Virtual Machine
Deploy an Ubuntu Virtual Machine
For more examples, refer to the Documentation