1

После прочтения ядер CUDA я предполагаю, что ядра CUDA - это обычные ядра GPU. Они могут использоваться для выполнения физических вычислений для разгрузки ЦП с использованием PhysX, или они могут использоваться для выполнения других сложных вычислительных операций, таких как кодирование / рендеринг, который часто медленнее в ЦП. Это также предполагает, что рендеринг графики является не чем иным, как большим количеством вычислений, что, насколько мне известно

В контексте вопроса я хотел бы знать, возможно ли одновременно играть в игры и рендерить / конвертировать материал, повышая производительность, когда моя машина включена.

Являются ли ядра CUDA рабочими ядрами графического процессора или же это отдельные ядра, которые можно использовать исключительно для вычислений?

1 ответ1

2

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

Из статьи Википедии о шейдерах:

Шейдеры - это простые программы, которые описывают черты вершины или пикселя. Вершинные шейдеры описывают черты (положение, координаты текстуры, цвета и т.д.) Вершины, в то время как пиксельные шейдеры описывают черты (цвет, глубина z и альфа-значение) пикселя. Вершинный шейдер вызывается для каждой вершины в примитиве (возможно, после тесселяции); таким образом, одна вершина входит, одна (обновленная) вершина выходит. Каждая вершина затем отображается в виде серии пикселей на поверхности (блок памяти), которая в конечном итоге будет отправлена на экран.

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

По сути, для каждого пикселя, который вы видите на экране, на различных доступных вычислительных ядрах запускается несколько шейдеров.

CUDA - это просто API-интерфейс Nvidias, который предоставляет разработчикам доступ к ядрам графического процессора. Хотя я слышал термин "ядро CUDA", в графике ядро CUDA аналогично потоковому процессору, который является типом процессорного ядра, используемого графическими картами. CUDA запускает программы на графических ядрах, программы могут быть шейдерами или вычислительными задачами для выполнения высокопараллельных задач, таких как кодирование видео.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .