Программно использовать использование графического процессора

Существует ли стандартный способ получения текущей нагрузки на графический процессор? Я ищу что-то похожее на диспетчер задач, показывающий CPU%. Такие утилиты, как GPU-Z, показывают это значение, но я не уверен, как это получается. На данный момент меня особенно интересуют графические карты AMD, любые указатели будут полезны.

Если нет чистого API-интерфейса для этого, есть ли какие-либо программы, выход которых я могу захватить, чтобы получить эту информацию?

Ответ 1

Для карт AMD/ATI, посмотрите GPU PerfStudio. http://developer.amd.com/gpu/Pages/default.aspx

Для карт NVidia посмотрите на PerfHUD. http://developer.nvidia.com/object/nvperfhud_home.html

Существует также более общий инструмент в DirectX SDK от MS, называемый Pix, который частично перекрывается с этими инструментами.

AFAIK нет способа получить что-то столь же простое, как номер% -use для GPU, потому что это не так просто. Но эти инструменты помогут в отладке и профилировании того, что происходит в графическом процессоре. Как ATI, так и NVidia предоставляют общедоступную документацию с рекомендациями по поиску и устранению определенных типов узких мест в GPU.

Ответ 2

Попробуйте nvidia-smi -a. Он поставляется с драйверами nvidia. Предоставляет текущую информацию об использовании ядра и памяти.

nvidia --help для получения полной справочной информации.

Ответ 3

Такая информация всегда предоставляется либо через PerformanceCounter, либо WMI. Используйте Perfmon.exe или загрузите WmiCodeCreator, чтобы узнать, что предоставил производитель карты. Возможно, нет необходимости говорить, что такой код плохо переносится с одной машины на другую.