-
Notifications
You must be signed in to change notification settings - Fork 35
Open
Description
Background
Currently, ib-sriov-cni only supports VF (Virtual Function) devices. However, there are use cases where passing through the entire PF (Physical Function) to a VM is necessary, particularly in virtualized GPU workloads with RDMA requirements.
Use Case: KubeVirt with High-Performance GPU and InfiniBand RDMA for east west traffic
Scenario
When running GPU-accelerated workloads in KubeVirt VMs, the GPU PCI device is passed through to the VM using VFIO. In multi-GPU setups requiring east-west RDMA communication (e.g., distributed training, HPC workloads), the InfiniBand network interface must also be passed through to the VM for optimal performance.
Architecture Components
The solution involves the following Kubernetes components:
- KubeVirt: Provides VM runtime on Kubernetes
- Multus CNI: Enables multiple network interfaces per pod
- ib-sriov-cni: Manages InfiniBand VFIO network configuration
- sriov-device-plugin: Discovers and advertises InfiniBand devices to Kubernetes
- ib-kubernetes: Manages InfiniBand GUID allocation and Pkey binding for multi-tenancy
Why PF Passthrough is Needed
In certain scenarios, PF passthrough is required instead of VF:
- GPU Affinity: When GPU and InfiniBand devices share the same PCIe root complex, passing through the entire IB PF provides better performance and reduces complexity
- Full Hardware Feature Access: Some advanced InfiniBand features may only be available on the PF
- VM-Level Control: Giving the VM full control over the InfiniBand adapter for specialized configurations
Metadata
Metadata
Assignees
Labels
No labels