本文介绍使用 GPUView 查看 GPU 硬件队列时用户查看的内容。 第一个关系图是 GPU 硬件队列的简单放大视图。
GPU 硬件队列表示硬件上的工作流。 在这些工作流队列中,矩形堆栈底部的项表示当前正在执行的工作。 上方堆叠的矩形代表待处理的工作。
在上图中:
- 红色椭圆中的 DMA 数据包表示硬件正在执行的工作。
- 黑色椭圆中的 DMA 数据包表示视频调度程序放置在硬件上的两个数据包中的第二个。 它们是处于等待状态的数据包。
请注意,矩形的末尾并不意味着对象的功能生存期的结束。 在此,当硬件在底部红色椭圆内完成当前数据包的处理后,等待的 DMA 数据包将转换为硬件正在处理的 DMA 数据包。 在此过渡点,正在等待的最上层 DMA 数据包(向下)向实际在硬件上运行更近一步。
稍微缩小视图,然后用鼠标左键选择顶部的 DMA 数据包,生成下图。
通过单击左键选择此 DMA 数据包。 请注意,数据包在队列中时有三个过渡点。 此对象的整个时间跨度被视为硬件队列中的时间,但只会将最后一节(最右侧位于堆栈底部)计为硬件上的执行时间。
颜色编码也很重要。 每个 DMA 数据包的颜色对应于特定进程中的特定上下文 CPU 队列。
从上图中缩小一点,关联的过程是(6584)SchBillboard.exe。 它在进程上下文 CPU 队列中具有匹配的颜色和匹配选择。
GPU 硬件队列区域的右上角还有文本。 下图中可以看到它。
第一项是硬件上获得执行时间的 DMA 数据包计数。 第二个值是执行数据包的时间。 第三个是 DMA 数据包在硬件上运作的视区面积百分比。
DMA 数据包的类型
GPU 硬件队列中发现了四种类型的 DMA 数据包。
最常见的是标准 DMA 数据包和演示数据包。 这两个数据包都表示硬件上的客户端请求。
不太常见的两种类型的 DMA 数据包是分页数据包和抢占数据包。 分页数据包始终为红色,抢占数据包始终为黑色。 这两个数据包都代表视频计划程序放置在 GPU 硬件队列中。 需要预提取处理所需的数据时,会出现分页数据包。 当计划程序确定需要中止当前工作流以提供一些更高优先级的内容时,会生成抢占数据包。
可选区域
可通过鼠标左键选择所有 DMA 数据包。 所有可选项通过将鼠标指针更改为手图标来显示此功能。 选择 DMA 数据包后,将启动 “对象详细信息 ”对话框,其中包含有关所选特定 DMA 数据包的信息。