Отнимает ли OpenACC от обычного рендеринга на GPU?

Я пытаюсь выяснить, могу ли я использовать OpenACC вместо обычных вызовов последовательного выполнения ЦП. Обычно мое программирование полностью посвящено 3D-программированию, или как-то обычно использует графический процессор. Обработка изображений IE или какой-либо другой тип рендеринга, который требует использования шейдеров. Я пытаюсь выяснить, пойдет ли мне эта библиотека на пользу или нет.

Причина, по которой я спрашиваю об этом, заключается в том, что если я рендерирую 3D-графику (как можно быстрее), это замедлит этот процесс? Или он может поддерживать (в теории) "высокую частоту кадров" или нет.

Если да, то какой компромисс и сколько? Я не хочу терять производительность 3D-графики (отображения) для улучшения операций, которые можно выполнять на процессоре последовательно.

Изменить: это контекст C++.

1 ответ

Решение

На графических процессорах AMD и NVIDIA, с которыми я знаком, программы OpenACC будут использовать вычислительные ресурсы, которые также будут в некоторой степени использоваться шейдерными программами. В графическом процессоре есть много других графических устройств, которые не разделяются между вычислениями и графикой, но есть некоторые общие ресурсы. Аналогично, графический процессор может быть подключен к системе с помощью PCIE, и поэтому он также может представлять общий ресурс или точку конфликта (однако это редкая вычислительная или графическая программа, которая даже близко подходит к использованию полосы пропускания современного Genie x16 PCIE подключение.)

Поэтому, если бы вы использовали как графические (или вычислительные) шейдеры, так и ускорение OpenACC, в некоторой степени возникнет конфликт между ресурсами. Уровень раздора или компромисса - это не то, что я могу обобщить. Это будет очень сильно зависеть от специфики вашей программы, а также от степени и детализации последовательности вычислительных функций и графических функций.

Разработчики графических процессоров имеют в виду эти типы сценариев использования, поэтому графические процессоры, как правило, довольно хороши в быстром переключении контекста между различными задачами, которые могут конкурировать за ресурсы.

Другие вопросы по тегам