我主要将 GPU 用于科学计算。我注意到,即使科学计算已暂停,最近的使用率/温度仍然很高。我强烈怀疑有什么东西在使用我的 GPU(显然不是我的操作系统)。
但是我如何才能找出哪些应用程序正在使用我的 CPU?
如果重要的话,我有一台 NVidia GT240,运行 Windows XP。
答案1
随着 GPGPU 的出现及其易用性,许多现代程序都希望使用它,包括大多数浏览器。
进程探索器SysInternals 的是一款方便的工具,可以跟踪各种进程的 GPU 利用率统计信息。它显示
GPU Usage
GPU Committed Bytes
GPU System Byes
GPU Dedicated Bytes
这应该是开始搜寻消耗 GPU 的恶意(并非真正)进程的好地方。
需要在“进程浏览器”->“选择列”中启用 GPU 统计数据。
笔记:由于以下原因,这仅适用于 Windows Vista 及更高版本
微软在 Windows Vista 及以后的版本中重新设计了其图形驱动程序模型,以更好地支持同时运行的多个图形应用程序。了解此模型对于了解 Windows 上的图形性能至关重要。首先,操作系统将每个进程中的每个 D3D 设备与其自己的图形上下文相关联。发送到上下文的每个 API 调用都会在该上下文的命令列表中进行批处理。当建立足够的命令时,或者由于某种原因 API 认为需要刷新当前命令缓冲区时,D3D API 会将命令缓冲区分派到图形内核。这些命令缓冲区不会立即处理,而是存储在每个上下文的队列中。显卡有一个正在处理的任务队列。当有空间时,图形调度程序会定期唤醒,并将来自其上下文特定命令队列中的上下文之一的任务添加到显卡工作队列中。它试图以尽可能公平的方式执行此操作,同时避免过度的资源抖动,类似于 CPU 调度程序。GPUView 将允许我们以时间函数的形式查看所有上下文特定 GPU 队列以及显卡队列的状态。显卡始终处理其队列前面的对象(如果队列为空则处于空闲状态)。请注意,GPUView 是专门为此驱动模型设计的,不会在 Windows XP 上运行。