Программно выберите использование GPU

Существует ли стандартный способ получить текущую нагрузку на GPU? Я ищу что-то подобное Диспетчеру задач, показывающему % ЦП. Утилиты, такие как шоу GPU-Z это значение, но я не уверен, как это получает это. Я конкретно интересуюсь видеокартами AMD в данный момент, любые указатели были бы полезны.

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

10
задан Amit G 29 January 2010 в 09:19
поделиться

2 ответа

Для карт 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 не может получить что-то настолько простое, как %-значение для GPU, потому что это не так просто. Но эти инструменты помогут в отладке и профилировании того, что происходит в GPU. И ATI, и NVidia предоставляют публичную документацию с рекомендуемыми шагами для поиска и исправления специфических типов узких мест GPU.

5
ответ дан 4 December 2019 в 01:31
поделиться

Я не знаю, будет ли это простым решением, особенно по сравнению с EHCache или подобным, но вы просмотрели библиотеку Javolution ? Он не предназначен как таковой, но в пакете javolution.context они имеют распределитель образца который может повторно использовать объекты без необходимости сбора мусора. Таким образом, они сводят к минимуму создание объектов и сбор мусора, что является важной функцией для программирования в реальном времени. Возможно, вам стоит взглянуть и попытаться приспособить его к своей проблеме.

-121--1501816-

Это зависит от того, как вы будете использовать их, оба кажутся разумными вариантами. Если вы знаете, что вам нужно будет утилизировать все объекты одновременно, то, возможно, сделать список одноразовым имеет смысл, но если бы объекты могли иметь разное время жизни, я бы просто вернул обычный список.

Возможно, можно создать универсальный список IDisposureList < T > с ограничением на T , где T: IDisposable , и класс реализует IDisposable , вызвав Dispose на всех его элементах? Затем можно повторно использовать этот класс для всех различных типов IDisposable .

-121--4321094-

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

1
ответ дан 4 December 2019 в 01:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: