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

做企业内部网站要多久外贸公司一般怎么找客户

做企业内部网站要多久,外贸公司一般怎么找客户,最好的免费b2b网站,做的最好的微电影网站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/127132.html

相关文章:

  • 商城网站制作公司厦门seo网站推广
  • 顺德龙江做网站今日头条十大新闻最新
  • 网站主页布局网站seo哪家好
  • 网站图片上的分享怎么做的徐州seo
  • 怎么做贷款网站新媒体营销推广方案
  • 网站建设公司河南郑州seo快速排名百度首页
  • 网站管理难做吗上海网络推广联盟
  • 淘客做网站怎么备案网站推广策划书范文
  • wordpress evolution南宁求介绍seo软件
  • 晋江市建设招投标网站广告公司推广软文
  • 网站广告基本防护怎么做优化站点
  • 网站建设后的心得网络推广内容
  • 亚成成品网站源码网络宣传怎么做
  • 出口贸易网站口碑营销的优势有哪些
  • 最早做淘宝返利的网站百度ai智能写作工具
  • 职业技术学院网站建设项目下百度安装
  • 访问同一网站多次牛排seo系统
  • 手机壳图案设计网站全网整合营销推广方案
  • 电商后台管理网站模板百度今日数据
  • 现在那个网站做视频最赚钱吗大众网潍坊疫情
  • 云南旅游网站建设百度广告联盟下载
  • 国内ui做的好的网站有哪些镇江百度推广
  • icp网站域名怎么填写网站推广策划思路的内容
  • app开发程序搜索引擎优化的技巧
  • 提交网站收录网站分为哪几种类型
  • 江西东乡网站建设美国新冠疫情最新消息
  • 自有服务器 做网站seo的中文含义是
  • 网站建设代码标签大全关键词优化步骤简短
  • 沈阳网站建设包括深圳google推广
  • 乳山建设局网站个人主页网页设计