Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Замечание
Диагностика графики Visual Studio не поддерживается в Visual Studio ARM64.
Используйте средство использования GPU в профилировщике производительности, чтобы лучше понять высокоуровневое использование оборудования приложения Direct3D. Это помогает узнать, является ли производительность приложения привязанной к ЦП или GPU, и получить представление о том, как можно эффективнее использовать оборудование платформы. Использование GPU поддерживает приложения, использующие Direct3D 12, Direct3D 11 и Direct3D 10. Он не поддерживает другие графические API, такие как Direct2D или OpenGL.
Вот как выглядит окно отчета об использовании GPU :
Требования
Помимо требований к диагностике графики, для использования средства использования GPU требуется следующее:
GPU и драйвер, поддерживающие необходимые инструменты для измерения времени.
Замечание
Дополнительные сведения о поддерживаемых оборудованиях и драйверах см. в разделе "Поддержка оборудования и драйверов " в конце этого документа.
Дополнительные сведения о требованиях к диагностике графики см. в статье "Начало работы".
Использование средства использования GPU
Visual Studio создает диагностическую сессию, когда вы запускаете приложение в инструменте анализа использования GPU. В этом сеансе отображаются высокоуровневые сведения о производительности отрисовки приложения и использовании GPU в режиме реального времени.
Чтобы запустить средство использования GPU, выполните следующие действия.
В главном меню выберите "Отладка>производительности и диагностики" (или на клавиатуре нажмите клавиши ALT+F2).
В центре производительности и диагностики установите флажок " Использование GPU". При необходимости установите флажки рядом с другими инструментами, которые вас интересуют. Вы можете одновременно запускать несколько средств производительности и диагностики, чтобы получить более полное представление о производительности приложения.
Замечание
Одновременно можно использовать не все средства производительности и диагностики.
В нижней части центра производительности и диагностики выберите Пуск, чтобы запустить приложение с помощью выбранных инструментов.
Высокоуровневая информация, показанная в режиме реального времени, включает время кадров, частоту кадров и использование GPU. Каждая из этих частей информации графируется независимо, но все они используют общую шкалу времени, чтобы легко понять связи.
Графики времени кадров (мс) и кадров в секунду (FPS) имеют две красные горизонтальные линии, показывающие целевые показатели производительности 60 и 30 кадров в секунду. В графике временного кадра ваше приложение превышает целевой уровень производительности, когда график находится ниже линии, и не достигает целевого уровня, когда график находится над линией. Для графика кадров в секунду ситуация обратная: приложение превышает целевую производительность, когда график находится над линией, и не достигает цели, когда график находится под линией. Эти графы используются в первую очередь для получения высокоуровневой идеи о производительности вашего приложения, а также для выявления медленных показателей, которые может потребоваться исследовать. Например, дальнейшее исследование может быть оправдано, если вы видите внезапное падение частоты кадров или всплеск использования GPU.
Хотя приложение выполняется в средстве использования GPU, сеанс диагностики также собирает подробные сведения о событиях графики, выполняемых на GPU. Эти сведения используются для создания более детализированного отчета о том, как ваше приложение использует оборудование. Так как этот отчет занимает некоторое время для создания из собранных сведений, он доступен только после завершения сеанса диагностики сбора информации.
Если вы хотите более внимательно ознакомиться с проблемой производительности или использования, остановите сбор сведений о производительности, чтобы создать отчет.
Чтобы создать и просмотреть отчет об использовании GPU, выполните следующие действия.
В нижней части окна сеанса диагностики выберите ссылку "Остановить коллекцию " или нажмите кнопку "Остановить " в верхнем левом углу.
В верхней части отчета выберите раздел из одного из графов, в которой показана проблема, которую вы хотите исследовать. Ваш выбор не должен превышать 3 секунды. Длинные разделы усечены в начале.
Чтобы просмотреть подробную временную шкалу выбора, в нижней части отчета в сообщении ... нажмите здесь, чтобы просмотреть сведения об использовании GPU для этого диапазона, выберите Просмотр сведений.
Этот выбор открывает новый документ с вкладками, содержащий отчет. Отчет об использовании GPU помогает увидеть, когда на ЦП запущено графическое событие, когда он достигает GPU, и сколько времени gpu занимает для его запуска. Эта информация поможет определить узкие места и возможности повышения параллелизма в коде.
Экспорт в GPUView или анализатор производительности Windows
Начиная с Visual Studio 2017, эти данные можно открыть с помощью GPUView и Анализатора производительности Windows. Просто выберите ссылки "Открыть в GpuView" или "Открыть в WPA", расположенные в правом нижнем углу сеанса диагностики.
Использование отчета об использовании GPU
В верхней части отчета об использовании GPU показаны временные диаграммы активности обработки ЦП, рендеринга GPU и копирования GPU. Эти временные шкалы делятся на светло-серые вертикальные полосы, указывающие на вертикальную синхронизацию дисплея (vsync). Частота полос соответствует частоте обновления одного из дисплеев (выбранного в раскрывающемся списке отображения ), из который были собраны данные об использовании GPU.
Так как экран может иметь более высокую скорость обновления, чем целевой показатель производительности вашего приложения, может отсутствовать прямая связь между вертикальной синхронизацией (vsync) и частотой кадров, которую вы хотите достичь. Для достижения целевого показателя производительности приложение должно завершить всю обработку, выполнить отрисовку и сделать вызов Present() с целью достижения целевой частоты кадров. Отрисованный кадр, однако, не будет отображаться до следующей вертикальной синхронизации (vsync) после Present().
В нижней части отчета об использовании GPU перечислены события графики, произошедшие в течение периода времени отчета. При выборе события маркер отображается на соответствующих событиях в соответствующих временных шкалах. Как правило, одно событие в потоке ЦП показывает вызов API, а другое событие на одной из временных шкал GPU показывает, когда GPU завершил задачу. Аналогичным образом при выборе события на временной шкале отчет выделяет соответствующее графическое событие в нижней части отчета.
При уменьшении масштаба временной шкалы в верхней части отчета отображаются только самые трудоемкие события. Чтобы увидеть события с более короткой длительностью, приблизьте временные линии с помощью Ctrl+колёсико указательного устройства или элемента управления масштабом в левом нижнем углу верхней панели. Вы также можете перетащить содержимое панели временной шкалы для перемещения по записанным событиям.
Чтобы найти нужные сведения, отфильтруйте отчет об использовании GPU на основе имен процессов, идентификаторов потоков и имени события. Кроме того, вы можете выбрать частоту обновления дисплея, которая определяет линии vsync. События можно сортировать иерархически, если приложение использует интерфейс ID3DUserDefinedAnnotation для группирования команд отрисовки.
Ниже приведены дополнительные сведения:
| Управление фильтром | Описание |
|---|---|
| Процесс | Имя интересующего вас процесса. Все процессы, использующие GPU во время сеанса диагностики, включены в этот раскрывающийся список. Цвет, связанный с процессом, — это цвет активности потока в хронологической последовательности. |
| поток | Это идентификатор потока, который вас интересует. В многопотоковом приложении эти сведения помогут изолировать определенные потоки, принадлежащие процессу, который вас интересует. События, связанные с выбранным потоком, выделены на каждой временной шкале. |
| отображение | Число отображения, частота обновления которого отображается. Некоторые драйверы можно настроить для представления нескольких физических дисплеев в виде одного большого виртуального дисплея. Вы можете увидеть только один экран, даже если к компьютеру подключено несколько дисплеев. |
| Фильтр | Ключевые слова, интересующие вас. События в нижней части отчета будут включать только те, которые соответствуют ключевому слову, полностью или частично. Можно указать несколько ключевых слов, разделив их точкой с запятой (;). |
| Сортировка иерархии | Флажок, указывающий, сохраняются ли или игнорируются иерархии событий, определенные с помощью маркеров пользователей. |
Список событий в нижней части отчета об использовании GPU отображает сведения о каждом событии.
| колонна | Описание |
|---|---|
| Имя события | Имя графического события. Событие обычно соответствует событию во временной шкале потока центрального процессора и событию временной шкалы графического процессора. Имена событий могут быть неприсвоены, если не удается определить имя события с помощью GPU. Дополнительные сведения см. в следующей таблице. |
| Запуск ЦП (ns) | Время, когда событие было инициировано на ЦП путем вызова API Direct3D. Время измеряется в наносекундах относительно времени начала приложения. |
| Запуск GPU (ns) | Время, когда событие было инициировано на GPU. Время измеряется в наносекундах относительно времени начала приложения. |
| Длительность GPU (ns) | Время в наносекундах, которое понадобилось для завершения события на GPU. |
| имя процесса | Имя приложения, из которого произошло событие. |
| Идентификатор потока | Идентификатор потока, из которого пришло событие. |
Это важно
Если графический процессор или драйвер не поддерживают необходимые функции инструментирования, все события будут отображаться как неприписанные. При возникновении этой проблемы обновите драйвер GPU и повторите попытку. Дополнительные сведения см. в разделе "Поддержка оборудования и драйверов " в конце этого документа.
Параметры использования GPU
Вы можете настроить средство использования GPU, чтобы отложить сбор сведений профилирования, а не начать собирать информацию сразу после запуска приложения. Поскольку размер сведений профилирования может быть значительным, это действие полезно, когда вы знаете, что замедления в производительности вашего приложения появятся только позже.
Чтобы отложить профилирование с начала приложения:
В главном меню выберите "Отладка>производительности и диагностики" (или на клавиатуре нажмите клавиши ALT+F2).
В центре производительности и диагностики рядом с использованием GPU выберите ссылку "Параметры ".
В разделе "Конфигурация профилирования GPU" на странице " Общие свойства" снимите флажок "Начать профилирование" при запуске приложения , чтобы отложить профилирование.
Это важно
В настоящее время нельзя отложить профилирование для приложений Direct3D 12.
После запуска приложения в средстве использования GPU дополнительная ссылка становится доступной в нижней части окна средства использования GPU. Чтобы начать сбор сведений о профилировании, выберите ссылку «Пуск» в сообщении «Начать сбор дополнительных подробных данных об использовании GPU».
Поддержка оборудования и драйверов
Поддерживаются следующие аппаратные и драйверы GPU:
| Поставщик | Описание GPU | Требуемая версия драйвера |
|---|---|---|
| Intel® | 4-е поколение процессоров Intel® Core ('Haswell') ® — Intel HD Graphics (GT1) — Intel® HD Graphics 4200 (GT2) — Intel® HD Graphics 4400 (GT2) — Intel® HD Graphics 4600 (GT2) — Intel® HD Graphics P4600 (GT2) — Intel® HD Graphics P4700 (GT2) — Intel® HD Graphics 5000 (GT3) — Intel® Iris™ Graphics 5100 (GT3) — Intel® Iris™ Pro Graphics 5200 (GT3e) |
(используйте последние драйверы) |
| AMD® | Большинство моделей начиная с AMD Radeon™ HD серии 7000 (за исключением AMD Radeon™ HD 7350-7670) Графические процессоры AMD Radeon™, графические процессоры AMD FirePro™ и ускорители графических процессоров AMD FirePro™ с архитектурой Graphics Core Next (GCN) Amd® E-Series и AMD A-series Accelerated Processing Units (APUs) с архитектурой Графического ядра Next (GCN) ('Kaveri', 'Кабини', 'Temash', 'Beema', 'Mullins') |
14.7 RC3 или более поздней версии |
| NVIDIA® | Наибольшее количество с момента выхода NVIDIA® GeForce® серии 400. Графические процессоры NVIDIA GeForce®, NVIDIA Quadro® и ускорители NVIDIA® Tesla™ с архитектурой Fermi™, Kepler™ или Maxwell™. |
343.37 или позднее |
Конфигурации с несколькими GPU, такие как NVIDIA® SLI™ и AMD Crossfire™, в настоящее время не поддерживаются. Поддерживаются гибридные графические настройки, такие как NVIDIA® Optimus™ и AMD Enduro™.