post
song

DDA(Discrete Device Assignment)是 Microsoft Hyper-V 的一项高级功能,它允许将物理硬件设备(如 GPU、网卡或 NVMe 驱动器)直接分配给虚拟机。这种分配方式绕过了 Hyper-V 的虚拟化层,使虚拟机能够直接访问设备的硬件资源,从而提供接近物理机的性能。

[DDA]的官方直译为离散设备分配

前置要求

1、hyper-v虚拟机系统要和宿主机保持一致 win10 、win11
2、第二代虚拟机、关闭动态内存、关闭检查点
3、物理机需要支持SR-IOV,在主板BIOS中可以通过搜索SR-IOV,并打开SR-IOV。
4、物理机需要CPU支持IOMMU,Inter的cpu 需要在bios里开启VT-x,Amd的cpu需要在bios里 开启 AMD-V。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
## 虚拟机名称
$vm = "win11"

## 添加 GPU 分区适配器。允许虚拟机使用物理主机 GPU 的一部分资源。
## 使虚拟机能够共享主机 GPU 的计算和图形处理能力。 适用于需要 GPU 加速的应用场景,例如视频解码、图形渲染、AI 模型训练等。
Add-VMGpuPartitionAdapter -VMName $vm

## 允许客户操作系统控制缓存类型,这有助于优化虚拟机的运行效率。
Set-VM -GuestControlledCacheTypes $true -VMName $vm

## 将虚拟机的低内存映射 I/O 空间设置为 1GB。
Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm

## 将虚拟机的高内存映射 I/O 空间设置为 32GB。
Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm


## 移除 GPU 分区适配器 从虚拟机中移除 GPU 分区适配器,停止虚拟机对物理主机 GPU 的访问。
## 释放 GPU 资源:物理主机的 GPU 资源可以被其他虚拟机或应用使用。
## 恢复到无 GPU 加速状态:虚拟机将回归到纯 CPU 渲染模式。
Remove-VMGpuPartitionAdapter -VMName $vm

## 显示esx主机信息列表
Get-VMHost | fl

## 获取可分区 GPU 列表 列出当前主机中支持 GPU 分区的 GPU 设备。
Get-VMHostPartitionableGpu

## 查询虚拟机的基本信息
Get-VM -Name $vm

## 查看特定虚拟机的详细信息
Get-VM -Name $vm | Format-List *

## 查看虚拟机的磁盘配置
Get-VMHardDiskDrive -VMName $vm

## 查看虚拟机的网络配置
Get-VMNetworkAdapter -VMName $vm

## 查看虚拟机的实时性能
Measure-VM -VMName $vm

## 在已添加 GPU 分区适配器的虚拟机中,可以通过以下命令查看当前的 GPU 分区配置:
Get-VMGpuPartitionAdapter -VMName $vm

## 用于获取指定虚拟机的处理器(CPU)设置和配置。
Get-VMProcessor -VMName $vm | fl

## 启用嵌套虚拟化:
Set-VMProcessor -VMName $vm -ExposeVirtualizationExtensions $true


## Hyper-V 虚拟机配置 GPU 分区时的高级设置,具体是调整分配给虚拟机的 GPU 资源(如显存、编码、解码和计算能力)的最低、最高和最佳值。
Set-VMGpuPartitionAdapter -VMName $vm `
-MinPartitionVRAM 512MB -MaxPartitionVRAM 2GB -OptimalPartitionVRAM 1GB `
-MinPartitionEncode 256MB -MaxPartitionEncode 1GB -OptimalPartitionEncode 512MB `
-MinPartitionDecode 256MB -MaxPartitionDecode 1GB -OptimalPartitionDecode 512MB `
-MinPartitionCompute 256MB -MaxPartitionCompute 1GB -OptimalPartitionCompute 512MB



## 设备管理器中可查看 显卡驱动具体目录 或运行 dxdiag 导出所有信息
## copy宿主机下信息,复制到虚拟机对应目录中
C:\Windows\System32\DriverStore\FileRepository\nvcvi.inf_amd64_116d714430800ce5
C:\Windows\System32\nvapi64.dll

##对应虚拟机目录
C:\Windows\System32\HostDriverStore\FileRepository\
C:\Windows\System32\nvapi64.dll
由 Hexo 驱动 & 主题 Keep