当前位置: 首页 > wzjs >正文

常熟做网站多少钱按深圳市seo网络推广哪家好

常熟做网站多少钱按,深圳市seo网络推广哪家好,站酷海洛,四川南充网站建设KMD 不需要在其内存段中指定 GPU 可用的所有视频内存资源。 但是,KMD 必须指定 VidMm 在系统上运行的所有进程中管理的所有内存资源。 例如: 实现固定函数管道的顶点着色器微代码可以驻留在 GPU 地址空间中,但在 VidMm 管理的内存之外&#x…

KMD 不需要在其内存段中指定 GPU 可用的所有视频内存资源。 但是,KMD 必须指定 VidMm 在系统上运行的所有进程中管理的所有内存资源。 例如:

  • 实现固定函数管道的顶点着色器微代码可以驻留在 GPU 地址空间中,但在 VidMm 管理的内存之外(即不是段的一部分)。 此配置是可能的,因为微代码始终可用于所有进程,并且永远不会成为进程之间争用的来源。

  • 对于顶点缓冲区、纹理、呈现目标和应用程序特定的着色器代码等资源,VidMm 必须从驱动程序的内存段之一分配视频内存资源。 这一要求是因为资源类型必须对所有进程公平可用。

下图显示了 KMD 如何从 GPU 地址空间配置内存段的示例。

图中的数字对应于以下内存段:67

  1. CPU 可访问的线性段:此段可由 CPU 访问,并组织为线性地址空间。

  2. 非 CPU 可访问的线性段:该段被组织为线性地址空间,但 CPU 无法访问。 它用于不需要 CPU 访问的资源。

  3. 只读 AGP 光圈段:此段用于对 AGP(加速图形端口)内存进行只读访问。

  4. 光圈段:此段用于通过 AGP 光圈访问的资源。

隐藏框表示 KMD 不向 VidMm 公开的内存段。 隐藏在 VidMm 中的视频内存不能映射到用户空间,也不能被任何特定进程独占。 这样做违反了虚拟内存的基本规则,即要求系统上运行的所有进程都可以访问所有内存。

 1. 内存段的“非全覆盖”特性

(1) KMD 的自主性
仅需声明需管理的资源:KMD 在 DXGK_SEGMENTDESCRIPTOR 中定义的段 不必涵盖 GPU 所有可用内存。

示例:

  • GPU 固件(如顶点着色器微代码)可驻留在 非段内存区域,由驱动直接管理。
  • 硬件保留区域(如 BootROM)无需暴露给 VidMm。

VidMm 仅管理“竞争性资源”:需要被多个进程共享或公平分配的资源(如纹理、顶点缓冲区)必须通过段管理。

(2) 非段内存的典型用途

资源类型是否需通过段管理原因
顶点着色器微代码❌ 否只读、全局共享,无进程间竞争。
硬件寄存器空间❌ 否由 KMD 独占控制,无需虚拟化。
纹理/顶点缓冲区✅ 是多进程可能竞争,需公平分配。
呈现目标(Render Target)✅ 是需隔离各进程的渲染输出。

2. 内存段配置示例

(1) GPU 地址空间布局
下图展示了一个可能的 GPU 地址空间划分:

GPU 地址空间布局示例:
0x00000000 ┌───────────────────────┐│ 硬件保留区域          │ (非段内存,如微代码)
0x10000000 ├───────────────────────┤│ 段 1: 显存 (VRAM)     │ (VidMm 管理,供纹理/缓冲区)
0x50000000 ├───────────────────────┤│ 段 2: 系统内存光圈     │ (VidMm 管理,CPU 可访问)
0x70000000 ├───────────────────────┤│ 驱动私有区域          │ (非段内存,如调试日志)
0x80000000 └───────────────────────┘

(2) KMD 的段描述符配置

// 仅声明需要 VidMm 管理的段
DXGK_SEGMENTDESCRIPTOR Segments[] = {// 显存段(供纹理/渲染目标){.BaseAddress = 0x10000000,.Size        = 0x40000000, // 1GB.Flags       = DXGK_SEGMENT_FLAGS_VIDEO_MEMORY,.SegmentId   = 1,},// 系统内存光圈段(供 CPU 访问的资源){.BaseAddress = 0x50000000, // CPU 物理地址.Size        = 0x20000000, // 512MB.Flags       = DXGK_SEGMENT_FLAGS_SYSTEM_MEMORY,.SegmentId   = 2,}
};

3. 设计原理与优势

(1) 灵活性

  • 硬件适配自由:KMD 可根据 GPU 特性灵活保留部分内存(如固件区域),无需强制纳入 VidMm 管理。

性能优化:全局只读资源(如微代码)可永久映射,避免重复加载。

(2) 安全性

  • 隔离关键资源:硬件关键区域(如寄存器)由 KMD 独占控制,防止应用程序误操作。
  • 公平性保障:竞争性资源(如显存)通过 VidMm 统一分配,避免单一进程垄断。

(3) 简化驱动开发

  • 减少 VidMm 负担:非竞争性资源无需复杂的虚拟化/分页机制。
  • 明确职责边界:KMD 管理硬件细节,VidMm 专注多进程资源调度

4. 开发者注意事项

(1) 必须通过段管理的资源

  • 任何可能被多进程共享的资源:纹理、顶点/索引缓冲区、渲染目标、计算着色器 UAV。
  • 需 CPU 访问的资源:使用 DXGK_SEGMENT_FLAGS_SYSTEM_MEMORY 声明。

(2) 禁止绕过 VidMm 的操作

  • 直接访问非段内存:用户模式驱动(UMD)必须通过 VidMm 分配的 GPU 虚拟地址(GPU VA)访问资源,禁止直接操作物理地址。
  • 例外:仅 KMD 可访问硬件保留区域(如通过 MmMapIoSpace)。

(3) 调试支持

  • ETW 日志分析:使用 GPUView 或 WPA 检查 DXGKRNL 事件,确认段分配是否正确。
  • 验证工具:DirectX 调试层(Debug Layer)可检测非法内存访问。

5. 典型问题与解决方案

问题原因解决方案
分配失败(STATUS_GRAPHICS_NO_VIDEO_MEMORY)段空间不足优化资源生命周期,或增加段大小。
GPU 访问违例误操作非段内存检查 UMD 是否使用非法 GPU VA。
性能下降频繁切换段合并资源到同一段,减少上下文切换。

 6. 总结

KMD 选择性暴露段:仅需管理多进程竞争的动态资源(如纹理),静态资源(如微代码)可保留在非段区域。

VidMm 的职责:在已注册的段内实现公平分配、虚拟化和隔离。

驱动最佳实践:

  • 明确划分段与非段内存的用途。
  • 禁止用户模式直接操作硬件保留区域。

通过这种设计,WDDM 在保证多进程安全性的同时,兼顾了硬件灵活性和性能优化。

http://www.dtcms.com/wzjs/356941.html

相关文章:

  • 网站建设开题报告中的问题百度指数分析数据
  • 河南网站建设费用搜索引擎排行榜前十名
  • 建设英文网站要求360收录提交入口
  • 网站开发 承接湛江seo推广公司
  • 柯城区住房和城乡建设局网站b站推出的短视频app哪个好
  • 做服务型党员网站做百度推广的公司电话号码
  • 做网站开视频网站seo系统推广
  • 网站建设常州青之峰网站如何提交百度收录
  • 杭州的网站开发做网络推广可以通过哪些渠道推广
  • 做淘客网站怎么样北京seo公司华网白帽
  • 万网建网站流程竞价是什么意思
  • 深圳网站建设公司联华排名前十的大学
  • 外贸网建站推广查关键词的排名工具
  • 上海 网站备案拍照培训网站搭建
  • 西安做网站多少钱如何开展网络营销
  • 承德网站制作方案百度关键词购买
  • 渐变配色网站廊坊快速排名优化
  • 本地南昌网站建设公司百度搜索网页
  • seo企业网站优化seo搜索引擎优化软件
  • 网站设计分析seo诊断工具网站
  • it公论 是建立在什么网站百度推广官网登录
  • 网站建设与web前端区别建网站专业
  • 什么是网络营销的红海广州seo
  • 最好的网站开发公司电话宣传推广网络推广
  • 动态网站影响收录吗抖音推广合作方式
  • 编程 给别人做网站怎么样建立自己的网站
  • 网站建设代码题四川seo技术培训
  • 网站如何做IPV6支持seo入门视频
  • 机械网站案例排名轻松seo 网站
  • 成都企业如何建网站学软件开发学费多少钱