Windows 圖形顯示驅動開發-WDDM 2.4功能-GPU 半虛擬化(十一)

注冊表設置

GPU虛擬化標志

GpuVirtualizationFlags 注冊表項用于設置半虛擬化 GPU 的行為。 密鑰位于:

DWORD HKLM\System\CurrentControlSet\Control\GraphicsDrivers\GpuVirtualizationFlags

定義了以下位:

描述
0x1

?
為所有硬件適配器強制設置?ParavirtualizationSupported?上限。 在主機中使用該位。

?

0x2強制為 BasicRender 設置 ParavirtualizationSupported 上限。 在主機中使用該位。
0x4強制安全虛擬機模式,其中所有虛擬機都將被視為安全。 在此模式下,用戶模式驅動程序存在限制。 例如,驅動程序無法使用 Escape 調用,因此它們會失敗。 在主機中使用該位。
0x8啟用準虛擬化適配器與僅顯示適配器配對。 在客用虛擬機中使用此比特。 默認情況下啟用配對。

GuestIoSpaceSizeInMb

GuestIoSpaceSizeInMb 注冊表項用于設置虛擬 GPU 的來賓 IO 空間的大小(以兆字節為單位)。 默認值為 1,000MB (1GB)。 密鑰位于:

DWORD HKLM\System\CurrentControlSet\Control\GraphicsDrivers\Paravirtualization\GuestIoSpaceSizeInMb

來賓 IO 空間目前實現了 CPU 可見分配。 主機中 CPU 可見的分配后備存儲被固定在內存中,并映射到來賓 IO 空間。 在來賓中,分配的用戶模式虛擬地址被映射到 IO 空間區域。 在某些 Haswell 系統上,CPU 具有 36 位物理地址。 此類系統上的 Hyper-V 具有有限的 IO 空間大小。

為安全虛擬機禁用 IOMMU 隔離

如果驅動程序不支持 IoMmu 隔離,請在開發過程中使用以下注冊表設置來禁用 IoMmu 隔離。

`DWORD HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\IoMmuFlags = 8`

限制虛擬函數的數量

?默認情況下,支持 GPU 半虛擬化的適配器公開的虛擬函數數為 32。 此數字表示可將適配器添加到 32 個虛擬機,假設每個 VM 都有一個適配器。

可以使用以下注冊表設置來限制公開的虛擬函數數。

DWORD HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\NumVirtualFunctions

例如,如果將?NumVirtualFunctions?設置為 1,則適配器一次只能添加到一個 GPU。 如果計算機有多個支持 GPU-PV 的 GPU 適配器,并且想要將每個適配器分配給 VM,則此設置非常有用。?Add-VMGpuPartitionAdapter?不允許指定要添加的適配器。 因此,如果將兩個適配器添加到 VM,兩個適配器都可以從主機獲取相同的 GPU-PV 適配器。

WDDM 2.4 DDI 更新

以下 DDI 更新用于支持 WDDM 2.4 中的 GPU 半虛擬化。

已添加 DXGK_VIDMMCAPS 上限

ParavirtualizationSupported 功能已被添加到 DXGK_VIDMMCAPS 結構體中。 如果主機 KMD 實現本部分中所述的所有 DDI,則設置此上限。

通過 DDI 傳遞的驅動程序專用數據

UMD 使用各種 DDI 與相應的 KMD 交換專用信息。 當 UMD 在來賓 VM 中運行時,相應的 KMD DDI 調用在主機分區中發生。 因此,UMD:

  1. 無法在私有數據中傳遞任何指針。
  2. 無法在私有數據中傳遞任何句柄。
  3. 不應指示 KMD 對 GPU 狀態進行全局更改,因為此更改可能會影響其他正在運行的 VM。

為 DxgkDdiCreateProcess 添加了 VirtualMachineProcess 標志

OS 為每個正在運行的 VM 創建 VM 工作進程。 Dxgkrnl 創建相應的 DXGPROCESS,并在設置 VirtualMachineWorkerProcess 標志后調用 DxgkDdiCreateProcess。 在此進程上下文中不會創建渲染或驅動程序資源。 因此,驅動程序可能會跳過分配某些資源。

OS 在主機中為使用 GPU 的來賓 VM 中的每個進程創建 DXGPROCESS。 Dxgkrnl 調用 DxgkDdiCreateProcess 并設置了 VirtualMachineProcess 標志。 每個 VM DXG 進程都屬于與 VM 工作進程相同的 EPROCESS。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/76136.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76136.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/76136.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue 的 nextTick 是如何實現的?

參考答案: nextTick 的本質將回調函數包裝為一個微任務放入到微任務隊列,這樣瀏覽器在完成渲染任務后會優先執行微任務。 nextTick 在 Vue2 和 Vue3 里的實現有一些不同: 1. Vue2 為了兼容舊瀏覽器,會根據不同的環境選擇不同包裝策…

安卓開發之LiveData與DataBinding

LiveData——生命周期感知 LiveData 是 Android Jetpack 提供的一個生命周期感知的數據持有者類,它可以用于持有數據并在數據發生變化時通知觀察者。LiveData 常與 ViewModel 配合使用,幫助簡化 UI 層和數據層之間的交互,確保 UI 在合適的生…

TCP協議與wireshark抓包分析

一、tcp協議格式 1. 源端口號 : 發送方使用的端口號 2. 目的端口號 : 接收方使用的端口號 3. 序號: 數據包編號 , tcp 協議為每個數據都設置編號,用于確認是否接收到相應的包 4. 確認序列號 : 使用 tcp 協議接收到數據包&#xff0c…

《HelloGitHub》第 108 期

興趣是最好的老師,HelloGitHub 讓你對開源感興趣! 簡介 HelloGitHub 分享 GitHub 上有趣、入門級的開源項目。 github.com/521xueweihan/HelloGitHub 這里有實戰項目、入門教程、黑科技、開源書籍、大廠開源項目等,涵蓋多種編程語言 Python、…

VITA 模型解讀,實時交互式多模態大模型的 pioneering 之作

寫在前面:實時交互llm 今天回顧一下多模態模型VITA,當時的背景是OpenAI 的 GPT-4o 驚艷亮相,然而,當我們將目光投向開源社區時,卻發現能與之匹敵的模型寥寥無幾。當時開源多模態大模型(MLLM),大多在以下一個或多個方面存在局限: 模態支持不全:大多聚焦于文本和圖像,…

VLAN的高級特性

前言: 1:華為VLAN聚合通過邏輯分層設計,將廣播域隔離與子網共享結合,既解決了IP地址浪費問題,又實現了靈活的網絡管理 2:MUX VLAN(Multiplex VLAN)提供了一種通過VLAN進行網絡資源控…

制作cass高程點塊定義——cad c#二次開發——待調試

public class Demo{[CommandMethod("xx")]public void Demo1(){using var tr1 new DBTrans();var doc Application.DocumentManager.MdiActiveDocument; var db doc.Database;var ed doc.Editor;var 圓心 new Point3d(0, 0, 0); var 半徑 10.0;using (var tr …

pod幾種常用狀態

在 Kubernetes 中,Pod 是最小的可部署單元,Pod 的狀態反映了其當前的運行狀況。以下是幾種常見的 Pod 狀態: 1. Pending 描述: Pod 已被 Kubernetes API Server 接收并創建,但還沒有開始運行在任何節點上。原因: Pod 資源不足&a…

04 單目標定實戰示例

看文本文,您將獲得以下技能: 1:使用opencv進行相機單目標定實戰 2:標定結果參數含義和數值分析 3:Python繪制各標定板姿態,查看圖像采集多樣性 4:如果相機畫幅旋轉90,標定輸入參數該如何設置? 5:圖像尺寸縮放,標定結果輸出有何影響? 6:單目標定結果應用類別…

DevEco Studio編輯器的使用-代碼code Linter檢查

Code Linter代碼檢查 Code Linter針對ArkTS/TS代碼進行最佳實踐/編程規范方面的檢查。檢查規則支持配置,配置方式請參考配置代碼檢查規則。 開發者可根據掃描結果中告警提示手工修復代碼缺陷,或者執行一鍵式自動修復,在代碼開發階段&#x…

wokwi arduino mega 2560 - 模數與數模轉換AD和DA

截圖&#xff1a; 20.53 黃燈滅 不報警 205.77 黃燈亮 報警 鏈接&#xff1a; https://wokwi.com/projects/415345595312267265 代碼&#xff1a; 詳細注釋版&#xff1a;AD和I2C仿真實驗案例程序 cpp #include <LiquidCrystal_I2C.h>// 定義I2C地址和LCD的行列數 #de…

如何使不同的窗體控件,適應不同分辨率的屏幕?

問題 當屏幕分辨率提高或降低時&#xff0c;原分辨率顯示正常的控件&#xff0c;將變得很小或很大&#xff0c;字體也變得太大或太小。 解決辦法 當分辨率變化時&#xff0c;采用遞歸的方法&#xff0c;對所有的控件放大或縮小。 public static void MainForm_Load(object s…

虛擬機(一):Java 篇

虛擬機&#xff08;一&#xff09;&#xff1a;Java 篇 虛擬機&#xff08;二&#xff09;&#xff1a;Android 篇 架構 運行時數據區&#xff1a; 棧&#xff1a; 堆&#xff1a; 堆&#xff1a;通過new創建的對象都在堆中分配。OutOfMemoryError TLAB(Thread Local All…

硬件基礎--14_電功率

電功率 電功率:指電流在單位時間內做的功(表示用電器消耗電能快慢的一個物理量)。 單位:瓦特(W)&#xff0c;簡稱瓦。 公式:PUI(U為電壓&#xff0c;單位為V&#xff0c;i為電流&#xff0c;單位為A&#xff0c;P為電功率&#xff0c;單位為W)。 單位換算:進位為1000&#xff…

更高的效率——MyBatis-plus

一、什么是MyBatis-plus&#xff1f; MyBatis-plus是MyBatis的增強工具&#xff0c;在MyBatis基礎上只做增強不做改變&#xff0c;可以簡化基礎的CRUD操作&#xff08;通過繼承 BaseMapper 接口可直接使用預定義的增刪改查方法&#xff09; 二、MyBatis-plus快速入門 2.1 準備…

【算法基礎】遞歸與遞推

目錄 遞歸實現指數型枚舉 題目 算法解析 遞歸實現排列型枚舉 題目 算法解析 費解的開關 題目 算法解析 遞歸實現組合型枚舉 題目 算法解析 帶分數 題目 算法解析 飛行員兄弟 題目 算法解析 翻硬幣 題目 算法解析 遞歸實現指數型枚舉 題目 算法…

Java 大視界 -- Java 大數據在智慧礦山設備故障預測與預防性維護中的技術實現(163)

&#x1f496;親愛的朋友們&#xff0c;熱烈歡迎來到 青云交的博客&#xff01;能與諸位在此相逢&#xff0c;我倍感榮幸。在這飛速更迭的時代&#xff0c;我們都渴望一方心靈凈土&#xff0c;而 我的博客 正是這樣溫暖的所在。這里為你呈上趣味與實用兼具的知識&#xff0c;也…

綜合實驗一

實驗拓撲圖&#xff1a; 實驗要求&#xff1a; 1,內網IP地址使用172.16.0.0/16分配 2,SW1和SW2之間互為備份 3,VRRP/STP/VLAN/Eth-trunk均使用 4,所有PC均通過DHCP獲取IP地址 5,ISP只能配置IP地址 6,所有電腦可以正常訪問ISP路由器環回 實驗步驟&#xff1a; 步驟1&…

snort檢測端口掃描工具

前面兩篇文章介紹了snort3相關知識和Ubuntu上的安裝配置Ubuntu22.04上Snort3的安裝與基本配置 -CSDN博客 和Snort規則定義并進行的簡單的測試Snort規則定義與測試 -CSDN博客&#xff0c;接下來我將介紹如何編寫一個簡單的檢測端口掃描的規則進行檢測 一、實驗環境 攻擊機&…

【行測】資料分析

> 作者&#xff1a;?舊言~ > 座右銘&#xff1a;讀不在三更五鼓&#xff0c;功只怕一曝十寒。 > 目標&#xff1a;掌握 資料分析 基本題型&#xff0c;并能運用到例題中。 > 毒雞湯&#xff1a;有些事情&#xff0c;總是不明白&#xff0c;所以我不會堅持。早安! …