Windows实现GPU虚拟化的方式

1、概述

Windows 要实现GPU虚拟化可以有两种实现方式,第一种是通过Hyper-V创建虚拟机实现GPU虚拟化,另一种是则是通过docker容器进行GPU虚拟化(加速)。本文主要讲解第一种方式,即通过 Hyper-V 虚拟机实现GUP虚拟化。而在Hyper-V里又可以使用以下两种方式(技术)实现GPU虚拟化:

  • GPU直通(Discrete Device Assignment, 简写:DDA),
  • GPU分区(GPU-P)

但是不能将一个物理 GPU 同时以DDA和GPU-P进行分配。

说明:DDA的官方直译为离散设备分配,本文中GPU直通、离散设备分配都是指的是DDA。

2、GPU直通 (DDA)

使用DDA可以从虚拟机 (VM) 内部直接访问物理PCIe 硬件。微软 当前只支持GPU卡和 NVMe硬盘。 其他类型的PCIe设备需要硬件厂家额外提供支持。

DDA实现了将一个或多个物理 GPU 分配给某一个虚拟机独用,不支持把同一张GPU卡分配给多个虚拟机同时使用。该虚拟化方式依赖原生的驱动程序上运行,通常具有对 GPU 功能的完全访问权限。

DDA不支持虚拟化的PCIe设备,比如GPU核显。虽然在宿主机里显示核显支持DDA,但是把核显分配给虚拟机后,在启动虚拟机时会报错“Virtual Pci Express Port(实例ID***)无法开机”的错误。

GPU直通的详细配置,详见 Windows hyper-v 虚拟机GPU直通(DDA)教程

3、GPU 分区 (GPU-P)

GPU 分区可以将一张GPU卡同时分配给多个虚拟机 (VM) 同时使用, 每个 VM 将获得 GPU 的专用部分,而不是整个 GPU。

GPU 分区功能使用单个IO 虚拟化 (SR-IOV) 接口,该接口为每个 VM 提供硬件支持的安全边界,且性能可预测也较好。 每个 VM 只能访问专用于它们的 GPU 资源,可防止其他 VM 未经授权进行访问。

GPU 分区的详细配置,详见windows11 实现Hyper-v ubuntu22.04 GPU虚拟化(GPU分区、GPU-P)教程

4、DDA 与 GPU 分区的差异

DDA与GPU分区之间的差异如下:

说明DDAGPU 分区
GPU 资源模型仅专用Partitioned
同时支持的VM数量低(一个或多个 GPU 对一个 VM)高(一个或多个 GPU 对许多 VM)
应用兼容性DX 12、OpenGL、CUDA提供的所有 GPU 功能DX 12、OpenGL、CUDA提供的所有 GPU 功能
AVC444可通过组策略获取可通过组策略获取
GPU VRAMGPU 支持的 VRAM每个分区的 GPU 支持的最大 VRAM
VM中的 GPU 驱动程序GPU 供应商驱动程序(NVIDIA、AMD、Intel)GPU 供应商驱动程序(NVIDIA、AMD、Intel)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值