Найти тему
Записки 3D-шника

Что такое CUDA в видеокартах от nVidia и зачем эта технология 3D-художнику

На современных видеокартах можно делать параллельные математические вычисления, не связанные с 3D-графикой. Наиболее известные программные интерфейсы Direct3D (DirectX) или OpenGL, ответственные за вывод графики, в данном случае не подходят. На сегодня есть два основных типа интерфейсов для доступа к таким вычислениям, в том числе векторным, на GPU – CUDA и OpenCL. Стоит также уточнить, что в отличие от многоядерных CPU, ядра видеокарт менее универсальны и более просты. Из-за этого, их может быть на видеокарте огромное количество. nVidia GeForce RTX 2070 имеет 2560 CUDA ядер.

Больше интересного в Телеграм канале "Записки 3D-шника" https://t.me/notes3drus

CUDA - аббревиатура запатентована фирмой nVidia и расшифровывается как Compute Unified Device Architecture. Это закрытая программно-аппаратная архитектура. CUDA состоит из самих вычислительных ядер и «родного» API - программного интерфейса. К дополнительным преимуществам можно отнести полную аппаратную поддержку целочисленных и побитовых операций и некоторые особенности в работе с памятью, что также ускоряет вычисления.

OpenCL – идеологически схожий открытый проект, который разрабатывается некоммерческим консорциумом «Khronos Group». В него входят такие крупные компании, как Intel, AMD, Apple и даже nVidia. Хотя она этого и не афиширует. У AMD Radeon доступ к ресурсам вычислений завязан на OpenCL. В отличие от CUDA не является «родным» и оптимизированным под конкретную архитектуру, хотя и более универсальный. Поэтому видеокарты от AMD могут проигрывать в среднем от 10% до 60% в тестах на такие параллельные математические вычисления. С выходом всё более новых драйверов и версий самого стандарта, ситуация улучшается. nVidia также поддерживает OpenCL, но «поверх» своего API CUDA, и в тестах этого стандарта будет еще менее производительной.

Работа в геймдеве. Вакансии 🎯

Количество исполнительных ядер в моделях при схожей цене у nVidia и AMD не будет сильно отличаться. А ядра у этих двух брендов объединены в потоковые мультипроцессоры. При схожей архитектуре и характеристиках, за счет CUDA AMD будет проигрывать в параллельных вычислениях на GPU.

Распараллеливание операций также возможно и на CPU. Даже одновременное использование мощностей видеокарты и центрального процессора. Но с той лишь разницей, что при наличии дискретной видеокарты, CPU станет узким местом, а общая производительность упадет.

Популярные рендер движки: V-Ray, Arnold, Redshift, Octane, RenderMan и другие менее известные, использование видеокарт от AMD через OpenCL на данный момент не поддерживаются. То же касается и Adobe Substance 3D Painter-a, как стандарта для текстурирования и запекания текстурных карт. Также всё не очень хорошо и с программами для симуляций, VFX, композа и видеомонтажа. Marmoset Toolbag также не поддерживает OpenCL на данный момент. Единственный пакет 3D-моделирования с поддержкой OpenCL рендера – Blender со встроенным рендер движком Cycles, EEVEE OpenCL не поддерживает.

Думаю, что в ближайшем будущем ситуация должна измениться, а стандарт OpenCL будет более популярным и получит поддержку основными программными пакетами в области графики и видео. Кроме общего развития стандартов, на это может повлиять кризис полупроводников и цены на рынке видеокарт среднего и топ-сегмента, которые в несколько раз выше рекомендованной и не доступны среднему пользователю. В начале января на выставке CES 2022, компания Intel представила свою линейку видеокарт на новой архитектуре Arc Alchemist. Но скорее всего в продажу они поступят не ранее третьего квартала 2022 года. Наиболее вероятным, будет использования Intel-ом OpenCL, так как внедрить новый стандарт в индустрию сей час крайне сложно и дорого.

В итоге всё сводится к программно-аппаратной реализации доступа и поддержке производителями софта. Вывод только один - на данный момент альтернативы CUDA нет.

Больше интересного в Телеграм канале "Записки 3D-шника" https://t.me/notes3drus

Пишите своё мнение в комментариях, задавайте вопросы и подписывайтесь на канал. Если вам понравилась статья, поддержите лайком. Спасибо.

Для чего нужны видеокарты nVidia Quadro
Записки 3D-шника29 марта 2022
GeForce или Radeon, что выбрать для создания 3D контента? Главное отличие видеокарт
Записки 3D-шника4 ноября 2021
Как и для чего используется Substance 3D Painter
Записки 3D-шника21 декабря 2021