понедельник, 27 марта 2017 г.

Преимущества профессиональной графики NVIDIA Quadro при работе с САПР приложениями

Профессиональными графическими ускорителями NVIDIA Quadro я пользуюсь более 10 лет. Мне приходилось использовать самые разнообразные инструменты и возможности, реализованные в данных решениях, от простого отображения видовых окон проекций, до визуализации и вычислений на GPU с применением архитектуры NVIDIA CUDA. Довольно часто мне приходится отвечать на вопрос, в чем разница между игровой графикой и профессиональной. В этой статье я расскажу о преимуществах профессиональной графики при работе с профессиональными приложениями.
 Речь пойдет не о производительности, а о поддержке специфических функций, востребованных в приложениях САПР и для создания мультимедийного контента. Я провел исследование возможностей графических ядер таких популярных САПР, как Autodesk Inventor, SolidWorks, T-Flex CAD, КОМПАС 3D, Autodesk Maya , Autodesk 3ds Max и CATIA. Так же данная статья включает демонстрацию и описание возможностей доступных только для профессиональных графических ускорителей, таких как инструментарий NVIDIA WMI, nView Desktop Management, технология NVIDIA Mosaic и поддержка Multi-GPU.

Все подробности, под катом.

Поддержка высоких уровней сглаживания
Наше знакомство с возможностями профессиональной графики и сравнение с возможностями игровой графики мы начнем с поддержки высокого сглаживания краев геометрии и линий. В отличие от игровых приложений, где высокое качество сглаживания может увеличить время визуализации кадра в профессиональных приложениях решается иная задача – качество выводимого изображения. Чем выше качество сглаживания линий и краев геометрии, тем легче анализировать модель или чертеж, определять детали и элементы сборок, и многое другое. Наиболее часто используется метод multisampling antialiasing. Он достаточно прост и доступен в библиотеках всех графических API. Однако для повышения качества сглаживания и устранения "ступенчатости" в гранях и линиях может потребоваться применение не только базовых методик сглаживания, но также и расширенных алгоритмов, позволяющих улучшать качество изображения.
Драйверы профессиональных карт Quadro предоставляют возможность выбирать в панели управления высокий уровень сглаживания – до 64х. На практике это дает существенно лучшее восприятие множества линий и границ объектов в сцене. На игровых видеокартах GeForce такие уровни сглаживания просто недоступны. На рисунке ниже приведен скриншот NVIDIA Control Panel для графических ускорителей GeForce и Quadro с активным режимом сглаживания Override any application settings.

Рис. 1-1. Драйвер GPU NVIDIA Quadro предоставляет возможность выбора более высокого качества сглаживания граней объектов и линий, по сравнению с драйвером для GPU NVIDIA GeForce.
Здесь я хочу сделать небольшую ремарку. Поддержка сглаживания 64x может быть недоступна только в ряде некоторых графических ядер современных приложений. Многие разработчики стараются самостоятельно реализовать сглаживание линий и геометрии независимо от управления данной функцией со стороны драйвера.

Рис. 1-2. Примеры сглаживания линий и граней объектов на GPU NVIDIA Quadro и NVIDIA GeForce.
В отличие от игровых графических ускорителей, в профессиональных ускорителях реализованы улучшенные методики обработки геометрии. Это позволяет значительно увеличить производительность в процессе воспроизведения анимации и загрузить в память все необходимые  данные.[1]
Фильтрация текстурных карт играет важную роль, это актуально при работе над игровыми приложениями и при разработке аппаратных шейдеров, для Open GL или DirectX. Но для того, чтобы обрабатывать большое количество текстурных карт и реализовывать поддержку карт с высоким разрешением (до 16K), необходим другой подход при работе с графической памятью.
Использование графической памяти
Память графического ускорителя играет важную роль в обеспечении высокой производительности. Это один из ключевых показателей возможностей GPU. Такие возможности графических ядер, как кэширование геометрии и запись данных напрямую в графическую память, при достаточном объеме  предоставляет гибкие возможности для воспроизведения анимации и интерактивного перемещения в сложных сценах без снижения производительности. Большие объемы памяти особенно важны в работе с GPU-ускоренными движками визуализации и такими технологиями, как Alembic, и интерактивными приложениями для презентационной визуализации (напр. Autodesk VRED).
Важной функцией при работе с памятью является её очистка для последующих задач или оптимальное использование для хранения данных. В профессиональных графических ускорителях память используется более равномерно, чем в игровых решениях. Это обусловлено максимально сбалансированной работой программного обеспечения и драйвера GPU, а также возможностям очистки памяти реализованной в нем.
В зависимости от проектов объем данных может варьироваться, а в ряде случаев может быть колоссален по определению, профессиональные карты традиционно оснащаются большим объемом памяти. Только среди профессиональных ускорителей есть возможность использовать до 24 Гб памяти, которые помогают работать с текстурами, моделями, данными любой сложности и хранить их, не опираясь на создание резервного кэша.
Мы провели тест на использование памяти профессиональными GPU. Основная его задача заключалась в отслеживании использования графической памяти в процессе моделирования трехмерной геометрии.
В процессе загрузки сцены и текстурных карт графическое ядро приложения старается полностью использовать память. В большинстве случаев 2 — 4 Гб графической памяти достаточно для работы над моделями средней сложности. С другой стороны, когда сцена содержит больше объектов и текстур, требования к объемам и возможностям памяти возрастают и могут потребоваться объемы в 8, 12 и более Гб, а так же повышаются требования к её рациональному использованию.
Рисунок ниже демонстрирует пример того, какой объем памяти используется при загрузке модели в пакете Autodesk Maya 2016. Так как в драйвере выбрано автоматическое распределение ресурсов GPU, графическое ядро программы отдало приоритет GPU с большим объемом памяти.
Рис. 2-1. Пример работы графического ядра приложения с GPU NVIDIA Quadro. И пример использования памяти при активизации режима отображения текстурных карт.
На диаграмме в Performance Monitor вы можете видеть, какой объем памяти требуется для хранения модели вагона. Поскольку отображение текстурных карт не активно, используется 1/3 объема графической памяти. Когда активизируется режим отображения текстурных карт, все используемые в сцене и в шейдерах модели текстуры будут загружены в память графического процессора. Но в отличие от игровых графических процессоров, память профессиональных графических процессоров используется более рационально. Когда данные не нужны, они будут выгружены из памяти и загружены обратно только тогда, когда это необходимо. Если же выполняется копирование геометрии и модели, нет необходимости в создании дубликатов данных в графической памяти, легче создать взаимосвязанные образцы и использовать их. Обратите внимание, что объем памяти немного меняется, увеличиваясь, а затем доходит до прежнего уровня. При этом, в сцене содержится больше объектов и экземпляров текстурных карт.
Рис. 2-2. Пример использования памяти при создании дубликатов геометрии и шейдеров с текстурами.
Оптимизация работы памяти на профессиональных графических ускорителях достигается за счет  оптимизации графических ядер на основе расширений API OpenGL и Direct3D.
Управление рабочими столами
Одним из серьезных недостатков игровой графики является отсутствие функций для создания и управления рабочими столами. Обычно это решается с помощью реализованных в ОС функций или сторонних решений. Это накладывает множество ограничений. Но пользователи профессиональных ускорителей не имеют таких ограничений и могут использовать как функционал от NVIDIA, так и предоставляемые операционной системой функции. Таким образом, можно выполнять огромное количество комбинаций рабочих пространств на любой вкус. В отличие от игровых решений, профессиональные карты Quadro предоставляют инструменты для управления рабочими столами и их конфигурациями. nView Desktop Management входит в состав дистрибутива драйвера и программного обеспечения NVIDIA Quadro и предоставляет пользователям необходимый функционал для настройки рабочего пространства и распределения множества приложений между несколькими рабочими столами.

Рис. 3-1. Пример применения nView Desktop Management для управления тремя рабочими столами.
Рабочие столы могут быть разбиты с помощью сетки, в каждую ячейку которой может быть помещено окно всего приложения или его отдельный диалог. На практике это очень удобно, особенно при работе с  многооконными приложениями, где требуется организовать множество диалогов или буферов кадров. На рисунке ниже приведен пример организации нескольких окон с помощью разбивки по сетке.

Рис. 3-2. Пример применения функции Guideline Editor для распределения диалоговых окон приложений.
Еще одна полезная функция — привязка к границам экрана. В отличие от стандартной реализации в операционных системах Windows и Linux. Благодаря инструментарию nView Desktop Management, вы можете  настроить определение границ экрана и действие окон приложения в процессе операций с ними.

Рис. 3-3. Функции Windows Manager позволяют пользователю лучше управлять окнами приложений.
Инструменты мониторинга и конфигурации
Так как графические ускорители NVIDIA Quadro ориентированы на профессиональных и корпоративных пользователей, разработчики NVIDIA предусмотрели специальный набор инструментов NVIDIA WMI (Windows Management Instrumentation) и специальный инструмент NVIDIA SMI для мониторинга загруженности графических процессоров, памяти и контроля температурного режима. Инструментарий NVIDIA WMI входит в дистрибутив драйвера для NVIDIA Quadro и доступен наряду с  nView Desktop Management. Рисунок 4-1 наглядно демонстрирует компоненты установки драйверов NVIDIA GeForce и NVIDIA Quadro.
 Рис. 4-1. Компоненты установки драйверов GPU NVIDIA для линейки GeForce и линейки Quadro.
После установки драйвера с компонентами NVIDIA WMI, вы можете использовать все возможности мониторинга с помощью Microsoft Management Console и Performance Monitor. А если в ваши задачи входит администрирование нескольких удаленных компьютеров, подключение к ним и сбор данных произойдет гораздо быстрее, если использовать возможности локальной сети.

Рис. 4-2. Инструментарий Microsoft Management Console с оснасткой Performance Monitor и добавленными счетчиками NVIDIA GPU (NVIDIA WMI).
На рисунке выше приведен пример мониторинга производительности графических процессоров с помощью MMC, куда могут быть добавлены счетчики  с помощью соответствующего диалога.
Также, в отличие от игровых видеокарт, в профессиональных GPU реализована возможность конфигурации под определенные задачи. Например, на одном из установленных в системе GPU вам необходимо выполнять только вычисления с помощью NVIDIA CUDA, а на другом/других, вам необходимо и вычислять и работать с графикой. Для распределения нагрузки вы можете использовать утилиту NVIDIA SMI, доступную как для Windows, так и  Linux и выполнить соответствующую конфигурацию GPU. Данная утилита также доступна и для некоторых моделей игровых графических ускорителей, к ним относятся модели выпускаемые под брендом GTX Titan. Но функционал в данном случае будет сильно ограничен.

Рис. 4-3. Утилита NVIDIA SMI отображающая информацию о загрузке графических процессоров.
Конфигурация для работы с несколькими GPU
При возрастающем объеме данных, содержащихся в комплексных моделях, для достижения высокой скорости визуализации необходимо применение производительных GPU.
В драйвере NVIDIA Quadro доступна большая группа настроек — «Workstation», с помощью которой  выполняется конфигурация GPU. При конфигурации вы можете выбирать, какой из доступных GPU будет использоваться для работы только с графикой, а какой для работы с графикой и вычислений. В драйвере для игровых графических ускорителей вы можете выбирать только графический процессор для вычислений в CUDA-приложениях. Что существенно ограничивает пользователя в конфигурации.

Рис. 5-1. Выбор GPU для визуализации виртуального пространства в OpenGL приложении, выбор GPU для вычислений в CUDA приложении и глобальная конфигурация параметров рабочей станции.
Рассмотрим наглядный пример настройки графических процессоров для распределения задач между вычислениями и визуализацией окон проекций на примере Autodesk 3ds Max и NVIDIA iray renderer. По умолчанию, 3ds Max и Iray используют все доступные графические процессоры. Обычно тот GPU, который используется операционной системой, будет не активен в Iray, а сам 3ds Max использует его для визуализации виртуального пространства. С другой стороны, если выполнить соответствующую конфигурацию драйвера, тот GPU, который не будет активен, не будет отображаться в списке доступных для визуализации в Iray устройств.

Рис. 5-2. Пример параметров NVIDIA Iray, когда все GPU могут быть использованы для вычислений и когда для вычислений может быть использованы устройства глобально определенные драйвером.
Рассматриваемое условие доступно для всех приложений, требующих распределения нагрузки между несколькими графическими процессорами. Это могут быть САПР, использующие графический процессор для ускорения вычислений и для визуализации, это могут быть мультидисплейные системы, когда множество дисплеев отображают информацию, а дополнительные графические процессоры выполняют вычисления в CUDA или OpenCL приложениях.
Несколько примеров реализации функций в САПР с GPU NVIDIA Quadro
В процессе исследования и написания данной статьи мною и моими коллегами было протестировано и изучено несколько известных и доступных пакетов САПР, использующих графическое ядро на основе библиотек Open GL, а так же их возможности, использующие технологии OpenCL и NVIDIA CUDA.
Основной упор мы делали на качестве изображения и производительности графического ядра при визуализации параметрической модели в виртуальном пространстве, использование ресурсов графических процессоров и выполнении вычислений общего назначения.
Производительность зависит не только от графики
Производительность такого программного обеспечения, как САПР, зависит от множества факторов. Результат выполняемых пользователем операций, вычисляется центральным процессором, а повторное вычисление всей модели может потребовать времени. Графические ускорители выполняют задачи связанные с визуализацией векторных данных параметрической модели, полученной в процессе вычислений с помощью центрального процессора и хранимой в оперативной памяти. С другой стороны, графический ускоритель может ускорить процесс вычислений в хорошо распараллеливаемых алгоритмах с помощью  NVIDIA CUDA или OpenCL. Помимо этого, на протяжении нескольких лет компанией NVIDIA и её партнерами по консорциуму Khronos Group ведется разработка расширений для Open GL, позволяющих выполнять оптимизацию производительности приложений. Многие профессиональные графические приложения и их ядра начинают использовать возможности этих расширений для увеличения производительности.
Ключевая идея заключается в минимизации простоя в процессе вычислений, выполняемых на CPU и передаваемых GPU для визуализации. По своей сути, графический процессор не будет ожидать данные, которые к нему поступают после вычислений на CPU, и промежуток времени, в который GPU бездействует, будет заполнен определенными задачами, например вычислениями.
Рис. 6-1. Пример распределения задач между множеством потоков в процессе обработки сцены.
На рисунке 6-1 приведен пример профилирования сцены Autodesk Maya в процессе воспроизведения анимации. Каждый из голубых блоков — задачи, связанные с визуализацией силами Viewport 2.0, а каждый из блоков коричневого цвета — вычисление определенного элемента сцены с помощью CPU. В то время, когда выполняются вычисления в процессе трансформации и деформации объектов, графическое ядро программы выполняет визуализацию получаемых от CPU и  данных. Из этого следует значительное повышение производительности в визуализации и вычислениях всей системы в целом. Когда мы снимаем с CPU лишние задачи по вычислениям, его возможности можно использовать для решения последовательных задач, но в то же время, хорошо распараллеливаемые и графические задачи выполняются на GPU. Таким образом, мы получаем прирост производительности графического ядра и приложения в целом.
КОМПАС-3D
Одним из удачных примеров реализации поддержки возможностей графических ускорителей и программного обеспечения NVIDIA Quadro является машиностроительная САПР — КОМПАС-3D. В отличие от конкурирующих решений, разработчики из компании АСКОН, совместно со специалистами компании NVIDIA, реализовали прямую поддержку функций драйвера NVIDIA Quadro.
Рис. 6-2. Пример отображения модели в виртуальном пространстве пакета КОМПАС-3D V16 на GPU NVIDIA GeForce и NVIDIA Quadro.
Рисунок 6-2 наглядно демонстрирует поддержку высокого уровня сглаживания, настраиваемого с помощью драйвера NVIDIA Quadro. При этом используемая плоскость отсечки также визуализируется с помощью графического ускорителя. В отличие от других решений, все параметры и контроль качества выполняется с помощью панели управления драйвером, а не через интерфейс приложения. В самом же приложении вы можете выбрать, будет ли использовано аппаратное ускорение или нет.
T-FLEX CAD
Еще один хороший пример использования технологий компании NVIDIA и возможностей профессиональной графики Quadro, является пакет T-FLEX CAD. Он также использует возможности спецификаций Open GL и драйвера NVIDIA Quadro, но обладает дополнительным функционалом — поддержкой визуализации трассировки лучей с использованием технологии NVIDIA OptiX.
Рис. 6-3. Параметры графической подсистемы пакета T-FLEX CAD.
В отличие от пакета КОМПАС-3D, пакет T-FLEX CAD обладает глобальными настройками графической подсистемы в самом приложении и предоставляет пользователю возможность управлять качеством сглаживания и выполнять базовую оптимизацию производительности.
Рис. 6-4. Пример визуализации с помощью NVIDIA OptiX в T-FLEX CAD.
Библиотека OptiX позволяет выполнять трассировку лучей в режиме реального времени и обеспечивает разработчиков необходимыми спецификациями для разработки шейдеров материалов и источников света, а также инструментами интеграции с API OpenGL и Direct3D.
Важным достоинством работы с такими приложениями как КОМПАС-3D и T-FLEX CAD является поддержка OpenGL, это важное условие при работе с Multi-GPU конфигурациями. Вы можете распределить каждое из приложений на выделенный GPU с помощью драйвера NVIDIA Quadro и выполнять все необходимые вычисления и работу со сценами в каждом из приложений. Это удобно, когда необходимо готовить проект в нескольких приложениях и передавать данные из одного приложения в другое.
SOLIDWORKS
Пакет SolidWorks предоставляет своим пользователям богатый функционал. Его графическое ядро также оптимизировано для работы с профессиональными графическими ускорителями. Одной из важнейших функций для создания высококачественных образов напрямую в SolidWorks является функционал, заложенный в RealView.
Рис. 6-5. С помощью SolidWorks RealView вы можете создавать высококачественные иллюстрации с помощью OpenGL и аппаратных шейдеров.
Графическое ядро SolidWorks позволяет формировать высококачественные образы с высокой детализацией и такими эффектами, как штриховка и контурные линии. Для увеличения реализма модели, вы можете активизировать вычисление эффекта Ambient Occlusion. Данный эффект отлично визуализируется современными профессиональными графическими ускорителями и может быть применен на сложных сборках с большим количеством деталей.
При использовании профессиональных ускорителей NVIDIA Quadro пользователям SolidWorks доступны все основные возможности графического ядра и высококачественного затенения.[2]
SOLIDWORKS Visualize
Для высококачественной визуализации изображений и анимации в пакет программ SolidWorks входят два продукта SolidWorks Visualize Standard и SolidWorks Visualize Professional. Эти продукты используют возможности ядра NVIDIA iRay для фотореалистичной визуализации создаваемых моделей.
Ядро NVIDIA iRay может работать в двух режимах, высококачественном фотореалистичном режиме (Unbiased mode) и в упрощенном режиме, основанном на простой трассировке лучей (Biased mode).
Рис. 6-6. Пакет SolidWorks Visualize позволяет выполнять фотореалистичную визуализацию изображений  с применением возможностей графических ускорителей.
Благодаря поддержке возможностей распределения нагрузки в задачах между различными GPU высокую производительность в SolidWorks Visualize помогают обеспечивать multi-gpu конфигурации с NVIDIA Quadro и NVIDIA Tesla. Вы можете выполнять отображение сцены в OpenGL на графическом ускорителе NVIDIA Quadro, а визуализацию сцены с высоким качеством и реалистичными освещением и материалами можете выполнять силами специализированных вычислителей NVIDIA Tesla. Это помогает распределить нагрузку и добиться высокой производительности в интерактивной навигации. Все управление графическими ускорителями может быть осуществлено с помощью драйвера для NVIDIA Quadro и NVIDIA Tesla.
CATIA LiveRendering
Система интерактивной и фотореалистичной визуализации CATIA LiveRendering также основана на технологии NVIDIA iRay. С ее помощью вы можете выполнять визуализацию изображений и моделей, создаваемых с помощью системы CATIA и предоставлять полученные образы клиентам.
Рис. 6-7. Система визуализации CATIA LiveRendering на основе NVIDIA iRay.
Как и весь комплекс CATIA, решение LiveRendering является отдельным элементом, но интенсивно связанным со всей системой в целом. Для обеспечения высокой производительности и комфорта в работе с множеством приложений и решений комплекса, необходимо обратиться к профессиональным решениям, позволяющим выполнять визуализацию виртуального пространства и вычисления на GPU без перерасхода ресурсов.
Решение LiveRendering может быть использовано совместно с NVIDIA Quadro и программно-аппаратной платформой NVIDIA Quadro VCA, позволяя увеличивать производительность в работе над комплексными и сложными моделями.
Autodesk 3ds Max
Пакет Autodesk 3ds Max является одним из лидирующих инструментов для создания компьютерной графики и анимации, а так же для высококачественной визуализации. Приложение использует множество технологий для достижения оптимальной производительности как при визуализации сцен в видовых окнах проекций, так и в вычислениях общего назначения. Разработчики компании Autodesk, совместно с NVIDIA реализовали поддержку ключевых возможностей DirectX и поддержку современных графических процессоров, интеграцию NVIDIA PhysX и его компонентов, а также поддержку вычислений общего назначения для тесселяции геометрии с помощью OpenSubdiv.
Рис. 6-8. Autodesk 3ds Max 2016 с выбранным в качестве текущей системы визуализации NVIDIA Iray.
Компания NVIDIA ведет разработку комплексных решений для фотореалистичной визуализации и технологий, позволяющих использовать обширные возможности GPU для ускорения вычислений. Системы визуализации NVIDIA iRay, NVIDIA mental ray и язык описания материалов NVIDIA MDL, интегрированные в Autodesk 3ds Max, благодаря применению совместно с графическими ускорителями NVIDIA Quadro и NVIDIA Tesla, представляют комплексную платформу для визуализации в режиме Active Shade и окончательной высококачественной визуализации.
Пользователи V-Ray и Octane Renderer также по достоинству оценят возможности ускорения вычислений в процессе визуализации. В каждом из представленных ядер визуализации реализована поддержка Multi-GPU конфигураций систем. Программное обеспечение рабочих станций с несколькими GPU NVIDIA Quadro или NVIDIA Tesla может быть сконфигурировано для использования, одного, нескольких или всех графических процессоров, доступных в системе. А благодаря драйверу и программному обеспечению NVIDIA Quadro, пользователю предоставляется возможность оптимально использовать память графического процессора для хранения данных и вычислений.
Autodesk Maya
Система 3D моделирования и анимации Autodesk Maya по праву считается одним из лидирующих в индустрии M&E решений для создания высококачественной фотореалистичной анимации и визуальных эффектов. С помощью открытых форматов данных и мощнейшей системе макропрограммирования на основе Maya Embedded Language и Python, пакет получил признание среди многих профессиональных художников и технических директоров студий. Графическое ядро Maya может использовать одно из двух графических API – Open GL или DirectX, что позволяет использовать её как на платформе Windows, так и на платформах macOS и Linux.
Рис. 6-9. Графическое ядро Viewport 2.0 позволяет работать как со сложными моделями, так и текстурами с большим разрешением, а также предоставляет возможность использовать базовые методы затенения и визуализации.
Ядро Viewport 2.0 является многопоточным графическим ядром, использующим возможности систем с многоядерными процессорами и несколькими GPU (Multi-GPU). Графические ускорители NVIDIA Quadro и NVIDIA Tesla могут быть использованы для визуализации и работы с комплексными сценами, содержащими большое количество геометрии и текстуры в большом разрешении, а также обеспечивают высокое качество сглаживания и эффектов Bump Mapping, Tessellation и Ambient Occlusion.
Графические ускорители в Maya играют важную роль, они могут быть использованы не только для отображения виртуального пространства сцены, но и для ускорения работы ядра программы, обрабатывающего как геометрию и ее тесселяцию, так и деформеры, используемые для ускорения процессов вычислений трансформации геометрии в сцене.

На приведенном выше видео представлен пример использования GPU для ускорения обработки сцены в процессе воспроизведения анимации. Прирост скорости воспроизведения анимации обеспечивается оптимизацией деформеров и ядра программы для многопоточных вычислений. В процессе просмотра обратите внимание на изменяющееся значение Frame Rate, в зависимости от того, какой режим выбран DG, Serial, Serial + GPU Override, Parallel и Parallel + GPU Override.
Как и в случае с 3ds Max, пользователи могут использовать все возможности графических ускорителей для увеличения производительности в процессе визуализации с помощью таких движков визуализации, как NVIDIA mental ray, V-Ray, NVIDIA iRay for Maya, V-Ray RT, Octane Renderer и других.
Приложения Adobe Creative Cloud
Практически все ключевые приложения, входящие в пакет Adobe Creative Cloud предоставляют поддержку современных технологий, реализованных в графических ускорителях, линейки Quadro. Известный пакет Adobe Photoshop СС использует возможности графических ускорителей для того что-бы обеспечивать высокую производительность в визуализации холста и работу таких инструментов, как Hand tool, Rotate canvas tool, Zoom tool и обеспечивает визуализацию трехмерного пространства в  процессе работы с 3D моделями.
Рис. 6-10. Графический ускоритель используется для увеличения производительности инструмента Rotate canvas в Adobe Photoshop CC.
Пользователи, использующие профессиональные дисплеи с поддержкой отображения цветов 10-bit канал (30-bit display), при использовании графических ускорителей NVIDIA Quadro могут использовать возможности данных GPU для отображения 30-bit цветов, что существенно увеличивает качество визуализации изображений, содержащих большое количество градиентов и требующих воскую точность цветопередачи. Это актуально, в процессе работы с научными и медицинскими изображениями, получаемыми с помощью компьютерной томографии и других высокоточных приборов.
Рис. 6-11. C NVIDIA Quadro, вы можете использовать все возможности графического ядра Adobe Photoshop CC.
Многие из фильтров в Adobe Photoshop поддерживают возможности вычислений с помощью GPU с применением Open CL. Такой подход позволяет значительно увеличить производительность в обработке изображений с большим разрешением и содержащими множество слоев.
Редактор векторной графики Adobe Illustrator CC включает в своем арсенале возможности для ускорения обработки и вычислений векторных форм, с помощью набора расширений NVIDIA Path Rendering доступных для OpenGL. Данный подход позволяет увеличить производительность обработки сложных векторных иллюстраций ядром Adobe Illustrator в несколько раз и обеспечивает высокое качество отображения векторных форм.

Индустрия кинематографа и современного телевидения уже давно перешагнула за рамки формата Full HD, современные фильмы снимаются с помощью камер, поддерживающих разрешения кадра 4K и 5K. Это накладывает определенные требования к рабочим станциям и возможностям графической подсистемы для обработки материала с таким разрешением и примененными к нему эффектами. Пакет нелинейного монтажа Adobe Premiere Pro CC использует возможности графических ускорителей для увеличения производительности воспроизведения видео, обработки эффектов и переходов.

Ядро Adobe Mercury Playback Engine предоставляет возможность использовать возможности GPU для ускорения вычислений. Пользователи могут использовать возможности данного ядра, не ограничиваясь только одним пакетом Premiere Pro, они доступны и в Adobe Photoshop CC и Adobe Media Encoder CC, когда вы выполняете сборку и экспорт видео.

При использовании GPU с большими объемами памяти, достигается значительное увеличение производительности в воспроизведении видео высокого разрешения с эффектами и масками в режиме реального времени.
Пакет Adobe After Effects CC также использует возможности GPU для ускорения вычислений. Помимо того, что в данном пакете используется OpenGL для отображения пространства композиции, так и для визуализации трехмерных композиций, освещения, 3D объектов и материалов, используются возможности библиотеки NVIDIA OptiX.
NUKE и NUKEX
Индустрия кинематографа и анимации требует применения технологий и инструментария для  композита, помогающие создавать реалистичные образы и доносить идеи режиссеров своим зрителям. Исправление ошибок оператора, коррекция цвета, объединение отснятого в реальности материала с компьютерной графикой, цифровыми персонажами и цифровыми эффектами. Эти задачи требуют функциональных инструментов, способных выполнять задачи любой сложности, а также должны использовать все возможности аппаратного обеспечения.
Современные системы пост-продакшн, такие как NUKE уже давно завоевали признание среди профессиональных пользователей, занимающихся созданием визуальных эффектов любой сложности. А возможности для интеграции с ядрами визуализации, позволяют выполнять высококачественную визуализацию трехмерных моделей и анимации, непосредственно на этапе композитинга.
Рис. 6-12. Параметры конфигурации GPU в глобальных настройках NUKE.
Пакет NUKE предоставляет возможности использовать GPU для ускорения обработки создаваемых композиций и применяемых эффектов. Это позволяет существенно увеличить производительность работы современных художников по эффектам и использовать возможности мощнейших графических процессоров для высокой скорости обработки графов узлов.
Расширенные функции конфигурации рабочей станции
При работе с множеством дисплеев и несколькими графическими ускорителями, установленными в рабочей станции, возникает потребность в улучшенной и более расширенной конфигурации оборудования. Одним из важнейших преимуществ профессиональных решений над игровыми является реализации удобных функций для конфигурации графических процессоров, вывода картинки на дисплеи, управление памятью графических процессоров (NVIDIA Quadro, NVIDIA Tesla) и функции коррекции ошибок памяти. Настройки синхронизации кадров и развертывание единого рабочего пространства на нескольких дисплеях и конфигурация видеостен.
В зависимости от того, какой графический ускоритель находится в вашей рабочей станции, их количества и подключенных дисплеев, вам становится доступны те или иные функции. Обычно это функции для просмотра системной топологии и управления использованием ресурсов графических процессоров. Если у вас несколько одинаковых дисплеев, вы можете использовать возможности технологии NVIDIA Mosaic для создания единого дисплея на все устройства и его калибровку.
Рис. 7-1. Настройка технологии NVIDIA Mosaic.
Следуя по специальному диалогу настройки единого рабочего стола, вы можете быстро настроить свои дисплеи для работы с единым рабочим столом. При наличии специальной платы Quadro Sync вам станут доступны обширные возможности для конфигурации нескольких графических ускорителей для работы с множеством дисплеев и их синхронизации, а в ряде случаев, даже возможность объединить несколько рабочих станций.
Для решения задач, связанных с высокоточными вычислениями и требующими постоянной целостности данных, находящихся в оперативной памяти графического ускорителя, может возникнуть необходимость в памяти с коррекцией ошибок (ECC Memory). В драйвере для ускорителей NVIDIA Quadro и NVIDIA Tesla пользователю предоставляется интерфейс для активации функции коррекции ошибок памяти.
Заключение
Различие между функционалом и производительностью профессиональных и игровых графических ускорителей неоднократно обсуждалось на различных ресурсах. Многие пользователи ошибочно полагают, что приобретение профессионального GPU просто позволит увеличить количество кадров в секунду. Основная задача профессионального оборудования – эффективно решать специфические задачи и выстроить удобный рабочий процесс. Функционал профессиональной графики Quadro создан для решения задач, с которыми сталкиваются специалисты в разных областях профессиональной визуализации. Многие задачи требуют применения множества приложений, а зачастую это требует больших объемов памяти и вычислительной мощности, что далеко не всегда доступно в игровых решениях для широкого круга пользователей. При этом организовать множество окон и создать комфортные условия работы помогают такие решения, как описанное в данной статье nView Desktop Management с гибким функционалом и богатыми возможностями для организации рабочих столов и их конфигураций.
За годы работы с профессиональными решениями NVIDIA Quadro, я был сильно удивлен отсутствием возможности распределения ресурсов для визуализации в OpenGL или Direct3D на ускорителях игровой линейки. А возможности для управления функциями рабочей станции, доступные в профессиональных решениях NVIDIA Quadro, позволяют централизованно управлять доступными специальными функциями, например управление ECC памятью и распределение ресурсов для визуализации графики или вычислений общего назначения, а также управления такими возможностями, как конфигурация специальных решений на основе Quadro Sync и Quadro SDI. Поддержка вывода изображения и множества буферов кадров на различные дисплеи могут быть достигнуты только с помощью профессиональных решений, а при создании сложных мультидисплейных конфигураций необходима высокая точность в выводе изображения. Что достигается с помощью специализированного программного обеспечения, поддерживающего функции корректировки изображений и наложения, доступные в решениях на подобии NVIDIA Quadro. Системные же администраторы получают гибкие инструменты для управления инфраструктурой и оборудованием не только на локальных системах, но и на удаленных системах, что значительно упрощает  работу и мониторинг работы оборудования.
В представленной вашему внимаю статье я постарался продемонстрировать наиболее заметные отличия между игровыми и профессиональными графическими ускорителями, но не со стороны производительности, а с точки зрения функционала. Многие функции могут быть использованы в повседневной работе как с 2D, так и с 3D приложениями, высокое качество сглаживания и оптимальное использование памяти позволяют рационально использовать возможности системы в целом, и оперировать достаточно большими массивами данных. Программное обеспечение, поставляемое вместе с профессиональными графическими ускорителями, позволяет решать гораздо больше задач, по сравнению с игровыми решениями. Большей отдачи удастся получить от индивидуальной конфигурации, как глобальных профилей, так и индивидуальных для каждого приложения профилей.
Новые решения Quadro на основе архитектуры NVIDIA Pascal
На SOLIDWORKS World 2017, NVIDIA представила линейку решений Quadro® на базе архитектуры Pascal™, которые превращают настольные рабочие станции в суперкомпьютеры с передовыми возможностями для профессиональной работы во многих областях промышленности.
Рабочий процесс в таких областях, как проектирование, эволюционирует очень быстро, поскольку объем данных и сложность проектов, необходимых для фотореалистичности, виртуальной реальности и глубокого обучения, растут экспоненциально. Новая линейка решений NVIDIA® Quadro на базе архитектуры Pascal служит основой для платформы визуальных вычислений корпоративного уровня, которая ускоряет процессы проектирования и моделирования до двух раз по сравнению с предыдущим поколением, и обладает ультрабыстрой памятью.
Рис. 8-1. В 2017 году, было представлено обновление всей линейки продуктов NVIDIA Quadro на базе архитектуры Pascal.
Преимущества платформы визуальных вычислений Quadro Pascal
Новое поколение GPU Quadro на базе архитектуры Pascal – GP100, P4000, P2000, P1000, P600 и P400 – обеспечивает миллионы инженеров, дизайнеров, исследователей и художников следующими возможностями:
одновременно выполнять моделирование, HPC, рендеринг и проектирование – GP100 обеспечивает беспрецедентную скорость вычислений двойной точности и 16ГБ широкополосной памяти (HBM2), чтобы пользователи могли выполнять моделирование одновременно с процессом проектирования и быстрее получать результат реалистичного моделирования с применением множества физических законов. С помощью технологии NVLink™ пользователи могут объединить два GPU GP100 и увеличить память до 32ГБ, чтобы создать еще более мощную вычислительную платформу в рамках одной рабочей станции;
работать с алгоритмами глубокого обучения – GP100 обеспечивает 20 терафлопс 16-битных вычислений с плавающей точкой и является идеальной платформой разработки для внедрения глубокого обучения в среду Windows и Linux;
внедрить VR в процесс проектирования и моделирования – Quadro GP100 и P4000 с поддержкой VR позволяют создавать детализированные, реалистичные и захватывающие окружения. Пользователи могут работать с более крупными и сложными проектами;
использовать преимущества фотореалистичного дизайна – графические процессоры Quadro на базе Pascal могут рендерить фотореалистичные изображения в 18 раз быстрее, чем CPU;
создавать масштабные рабочие пространства – выводить изображения в высоком разрешении в HDR на четыре 5K экрана;
создавать недорогие стеновые панели – в одной системе можно объединить до 32 4K дисплеев с помощью восьми GPU и двух карт Quadro Sync II.
Новые карты дополняют линейку NVIDIA Quadro Pascal, которая уже включает P6000, P5000 и мобильные GPU. Линейка NVIDIA Quadro Pascal поддерживает новейшую вычислительную платформу NVIDIA CUDA 8 и обеспечивает разработчикам доступ к новым возможностям Pascal, к новым инструментам и новым библиотекам, включая nvGraph.
Благодарности
Я выражаю большую благодарность своим партнерам и друзьям из компании FORSITE за предоставленное для исследования и написания статьи оборудование, а также консультации по аппаратным решениям. Также выражаю благодарность компании NVIDIA за оказанную помощью в подготовке материалов статьи и техническую поддержку.
Официальным производителем и поставщиком профессиональных видеокарт NVIDIA Quadro в Россию является компания PNY Technologies.

Сноски
[1] Если графическое приложение использует ядро на основе API Direct3D, стоит учитывать, что оно может быть разработано с максимальной оптимизацией под различное оборудование и его возможности. Что может не дать желаемого результата при активации максимального качества сглаживания.
[2] В сети можно встретить публикации посвященные активизации RealView в SolidWorks на игровых GPU. Но как показала практика и персональные исследования, активация данных функций не дает должного эффекта по сравнению с реализацией на профессиональных графических ускорителях. Зачастую это обусловлено определенными расширениями и возможностями шейдеров, которые становятся доступны при наличии связанного аппаратно-программного решения, аналогичного NVIDIA Quadro.

Комментариев нет: