查找使用 GPU 的进程

ash*_*999 2 gpu windows-xp process-monitoring

我的 GPU 主要用于科学计算。我注意到最近的使用率/温度仍然很高,即使科学暂停。我强烈怀疑有什么东西在使用我的 GPU(显然,我的操作系统除外)。

但是我怎样才能找出哪些应用程序正在使用我的 CPU?

我有一个 NVidia GT240,如果重要的话,在 Windows XP 上。

IUn*_*own 11

随着 GPGPU 的出现及其易用性,许多现代程序都希望使用它,包括大多数浏览器。

SysInternals 的Process Explorer是一个方便的工具,用于跟踪各种进程的 GPU 利用率统计信息。表明

GPU Usage
GPU Committed Bytes
GPU System Byes
GPU Dedicated Bytes
Run Code Online (Sandbox Code Playgroud)

这应该是一个开始寻找流氓(不是真的)进程吃掉你的 GPU 的好地方。

需要在 Process Explorer -> Select Columns 中启用 GPU 统计信息。

进程资源管理器 GPU 设置

注意:由于以下原因,这仅适用于 Windows Vista 及更高版本

Microsoft 在 Windows Vista 及更高版本中重新设计了其图形驱动程序模型,以更好地支持同时运行的多个图形应用程序。了解此模型对于了解 Windows 上的图形性能至关重要。首先,操作系统将每个进程中的每个 D3D 设备与其自己的图形上下文相关联。发送到上下文的每个 API 调用都在该上下文的命令列表中进行批处理。当构建了足够多的命令时,或者无论出于何种原因 API 认为需要刷新当前命令缓冲区,D3D API 都会将命令缓冲区分派给图形内核。这些命令缓冲区不会立即处理,而是存储在每个上下文的队列中。显卡有一个正在处理的任务队列。定期,当有空间时,图形调度程序将唤醒并将任务从其中一个上下文中添加到其上下文特定命令队列中的工作到图形卡工作队列中。它试图以尽可能公平的方式做到这一点,同时避免过度的资源抖动,类似于 CPU 调度程序。GPUView 将允许我们查看作为时间函数的所有上下文特定 GPU 队列以​​及显卡队列的状态。图形卡始终在其队列前面的对象上工作(如果队列为空,则它处于空闲状态。)请注意,GPUView 是专门为此驱动程序模型设计的,不能在 Windows XP 上运行。类似于 CPU 调度程序。GPUView 将允许我们查看作为时间函数的所有上下文特定 GPU 队列以​​及显卡队列的状态。图形卡始终在其队列前面的对象上工作(如果队列为空,则它处于空闲状态。)请注意,GPUView 是专门为此驱动程序模型设计的,不能在 Windows XP 上运行。类似于 CPU 调度程序。GPUView 将允许我们查看作为时间函数的所有上下文特定 GPU 队列以​​及显卡队列的状态。图形卡始终在其队列前面的对象上工作(如果队列为空,则它处于空闲状态。)请注意,GPUView 是专门为此驱动程序模型设计的,不能在 Windows XP 上运行。