Support GPU Passthrough to VMs

オープン
#106 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
linux, rust

調査の方向性

まず既存の FeOS VM API とモデルを確認し、次にデバイス構成を担うハイパーバイザーバックエンドを追跡します。GPU PCIe-address API、バリデーション、IOMMU/vfio-pci の処理、および統合テストのアプローチを定義します。単一 GPU および複数 GPU の VMs が guest に利用可能なデバイスを公開し、利用できないデバイスが安全に失敗すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

area/operatingsystem

Summary

This work item enables FeOS to attach one or more physical GPUs directly to a FeOS-managed Virtual Machine (VM) using PCIe passthrough.

This functionality is critical for supporting GPU-accelerated workloads such as Artificial Intelligence (AI), Machine Learning (ML), scientific computing, and high-performance graphics within VMs. The implementation will extend the VM API to allow specifying GPUs by their host PCIe address.


Scope

✅ In Scope
  • Extend the FeOS VM API to allow specifying one or more GPUs via their host PCIe address for attachment to a VM.
  • Implement the backend logic for PCIe passthrough of a complete physical GPU (e.g., using IOMMU / vfio-pci).
  • Ensure the guest VM can recognize the attached GPU and that appropriate vendor drivers (e.g., NVIDIA, AMD) can be installed and utilized.
  • Support for passing through multiple GPUs to a single VM.
❌ Out of Scope
  • GPU virtualization technologies like NVIDIA vGPU or AMD MxGPU (SR-IOV). This issue focuses exclusively on full device passthrough.
  • Live migration of VMs with attached GPUs.
  • Dynamic hot-plugging of GPUs. GPUs must be attached when the VM is created or started.
  • Host-side GPU driver installation and configuration. This issue assumes the host is correctly prepared for passthrough.

Responsible Areas

  • FeOS VM Management
  • FeOS API

Contributors

  • @guvenc
  • @MalteJ

Acceptance Criteria

  • API
    • The VM API is extended to accept a list of PCIe addresses for GPUs in the VM specification.
    • The API performs validation to ensure the specified PCIe devices exist and are available for passthrough.
  • VM Runtime & Guest OS
    • A VM can be successfully launched with one or more GPUs passed through to it.
    • The guest operating system correctly identifies the hardware of the passed-through GPU(s) (e.g., visible in lspci).
    • Vendor-specific drivers (e.g., NVIDIA driver) can be installed successfully inside the guest OS.
    • A GPU-accelerated application or utility (e.g., nvidia-smi, a CUDA/OpenCL sample) runs successfully within the VM and can access the GPU's capabilities.
    • The FeOS host correctly isolates the device, preventing host-level drivers from claiming it while it is assigned to a VM.

Action Items

  • Design the API extension in the VM model for specifying GPU devices.
  • Implement the backend logic to configure the hypervisor for GPU passthrough (e.g., managing IOMMU groups, binding to vfio-pci).
  • Ensure that all functions of a GPU (e.g., graphics and audio components on the same PCIe card) are passed through together.
  • Add robust validation and error handling for cases where a GPU is unavailable or passthrough fails.
  • Create integration tests that:
    • Launch a VM with a single GPU and verify its functionality in the guest.
    • Launch a VM with multiple GPUs and verify their functionality in the guest.
主要言語
Rust
スター
24
フォーク
9
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ironcore-dev/FeOS のほかの issue

ironcore-dev/FeOS の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。