Support GPU Passthrough to VMs
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- linux, rust
調査の方向性
まず既存の FeOS VM API とモデルを確認し、次にデバイス構成を担うハイパーバイザーバックエンドを追跡します。GPU PCIe-address API、バリデーション、IOMMU/vfio-pci の処理、および統合テストのアプローチを定義します。単一 GPU および複数 GPU の VMs が guest に利用可能なデバイスを公開し、利用できないデバイスが安全に失敗すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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 を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
ironcore-dev/FeOS のほかの issue
-
area/operatingsystem
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
ironcore-dev/FeOS#103 ·
-
area/operatingsystem
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
ironcore-dev/FeOS#107 ·
-
Improve Host Management再び着手できるかも @friegger が 295 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンarea/operatingsystem
ironcore-dev/FeOS#108 · 担当者 1 名 ·
-
area/operatingsystem
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
ironcore-dev/FeOS#109 ·
-
area/operatingsystem
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
ironcore-dev/FeOS#94 ·
ironcore-dev/FeOS の issue をすべて見る
似ている issue
-
parity priority: low
難易度 2/5 半日 初心者へのやさしさ 65/100
storytold/vectorcraft#5421 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug enchantments Java Edition protocol
難易度 2/5 1〜3時間 初心者へのやさしさ 80/100
Pumpkin-MC/Pumpkin#4465 ·
メンテナーはふだん 1 日以内に返信
-
docs(metrics): replace stale src/metrics.rs line anchors in dashboard-metrics.md with symbol namesオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
ci-cd desktop size:low telemetry-improvement telemetry-round-1
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
vfarcic/dot-agent-deck#2079 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
fraiseql/fraisier-core#148 ·
メンテナーはふだん 1 日以内に返信