На портале isicad.ru опубликованы две фундаментальные статьи Дмитрия:
1. Поддержка высоких уровней сглаживания
Наше знакомство с возможностями профессиональной графики и сравнение с возможностями игровой графики мы начнем с поддержки высокого сглаживания краев геометрии и линий. В отличие от игровых приложений, где высокое качество сглаживания может увеличить время визуализации кадра, в профессиональных приложениях решается иная задача – качество выводимого изображения. Чем выше качество сглаживания линий и краев геометрии, тем легче анализировать модель или чертеж, определять детали и элементы сборок, и многое другое. Наиболее часто используется метод multisampling antialiasing. Он достаточно прост и доступен в библиотеках всех графических API. Однако для повышения качества сглаживания и устранения «ступенчатости» в гранях и линиях может потребоваться применение не только базовых методик сглаживания, но также и расширенных алгоритмов, позволяющих улучшать качество изображения.Драйверы профессиональных карт Quadro предоставляют возможность выбирать в панели управления высокий уровень сглаживания – до 64х. На практике это дает существенно лучшее восприятие множества линий и границ объектов в сцене. На игровых видеокартах GeForce такие уровни сглаживания просто недоступны. На рисунке ниже приведен скриншот NVIDIA Control Panel для графических ускорителей GeForce и Quadro с активным режимом сглаживания Override any application settings.
Рис. 1-1. Драйвер GPU NVIDIA Quadro предоставляет возможность выбора более высокого качества
сглаживания граней объектов и линий, по сравнению с драйвером для GPU NVIDIA GeForce
Рис. 1-2. Примеры сглаживания линий и граней объектов на GPU NVIDIA Quadro и NVIDIA GeForce
Фильтрация текстурных карт играет важную роль, это актуально при работе над игровыми приложениями и при разработке аппаратных шейдеров, для Open GL или DirectX. Но для того, чтобы обрабатывать большое количество текстурных карт и реализовывать поддержку карт с высоким разрешением (до 16K), необходим другой подход при работе с графической памятью.
2. Использование графической памяти
Память графического ускорителя играет важную роль в обеспечении высокой производительности. Это один из ключевых показателей возможностей GPU. Такие возможности графических ядер, как кэширование геометрии и запись данных напрямую в графическую память, при достаточном объеме предоставляют гибкие возможности для воспроизведения анимации и интерактивного перемещения в сложных сценах без снижения производительности. Большие объемы памяти особенно важны в работе с GPU-ускоренными движками визуализации и такими технологиями, как Alembic, и интерактивными приложениями для презентационной визуализации (напр. Autodesk VRED).Важной функцией при работе с памятью является её очистка для последующих задач или оптимальное использование для хранения данных. В профессиональных графических ускорителях память используется более равномерно, чем в игровых решениях. Это обусловлено отлаженной и стабильной работой программного обеспечения и драйвера GPU, а также возможностью очистки памяти реализованным в нем.
В зависимости от проектов объем данных может варьироваться, а в ряде случаев может быть колоссален по определению, профессиональные карты традиционно оснащаются большим объемом памяти. Только среди профессиональных ускорителей есть возможность использовать до 24 Гб памяти, которые помогают работать с текстурами, моделями, данными любой сложности и хранить их, не опираясь на создание резервного кэша.
Мы провели тест на использование памяти игровыми и профессиональными GPU. Основная его задача заключалась в отслеживании использования графической памяти в процессе моделирования трехмерной геометрии.
В процессе загрузки сцены и текстурных карт графическое ядро приложения старается полностью использовать память. В большинстве случаев 2–4 Гб графической памяти достаточно для работы над моделями средней сложности. С другой стороны, когда сцена содержит больше объектов и текстур, требования к объемам и возможностям памяти возрастают и могут потребоваться объемы в 8, 12 и более Гб, а также повышаются требования к её рациональному использованию.
Рисунок ниже демонстрирует пример того, какой объем памяти используется при загрузке модели в пакете Autodesk Maya 2016 Extension 2. Так как в драйвере выбрано автоматическое распределение ресурсов GPU, графическое ядро программы отдало приоритет GPU с большим объемом памяти.
Рис. 2-1. Пример работы графического ядра приложения с GPU NVIDIA Quadro и использования памяти при активизации режима отображения текстурных карт
Рис. 2-2. Пример использования памяти при создании дубликатов геометрии и шейдеров с текстурами
3. Управление рабочими столами
Одним из серьезных недостатков игровой графики является отсутствие функций для создания и управления рабочими столами. Обычно это решается с помощью реализованных в ОС функций или сторонних решений. Это накладывает множество ограничений. Но пользователи профессиональных ускорителей не имеют таких ограничений и могут использовать как функционал от NVIDIA, так и предоставляемые операционной системой функции. Таким образом, можно выполнять огромное количество комбинаций рабочих пространств на любой вкус. В отличие от игровых решений, профессиональные карты Quadro предоставляют инструменты для управления рабочими столами и их конфигурациями. nView Desktop Management входит в состав дистрибутива драйвера и программного обеспечения NVIDIA Quadro и предоставляет пользователям необходимый функционал для настройки рабочего пространства и распределения множества приложений между несколькими рабочими столами.Рис. 3-1. Пример применения nView Desktop Management для управления тремя рабочими столами
Рис. 3-2. Пример применения функции Guideline Editor для распределения диалоговых окон приложений
Рис. 3-3. Функции Windows Manager позволяют пользователю лучше управлять окнами приложений
4. Инструменты мониторинга и конфигурации
Так как графические ускорители 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
Рис. 4-2. Инструментарий Microsoft Management Console с оснасткой Performance Monitor и добавленными счетчиками NVIDIA GPU (NVIDIA WMI)
Также, в отличие от игровых видеокарт, в профессиональных GPU реализована возможность конфигурации под определенные задачи. Например, на одном из установленных в системе GPU вам необходимо выполнять только вычисления с помощью NVIDIA CUDA, а на другом/других, вам необходимо и вычислять и работать с графикой. Для распределения нагрузки вы можете использовать утилиту NVIDIA SMI, доступную как для Windows, так и Linux и выполнить соответствующую конфигурацию GPU. Данная утилита также доступна и для некоторых моделей игровых графических ускорителей, к ним относятся модели, выпускаемые под брендом GTX Titan. Но функционал в данном случае будет сильно ограничен.
Рис. 4-3. Утилита NVIDIA SMI отображающая информацию о загрузке графических процессоров
5. Конфигурация для работы с несколькими GPU
При возрастающем объеме данных, содержащихся в комплексных моделях, для достижения высокой скорости визуализации необходимо применение производительных GPU.В драйвере NVIDIA Quadro доступна большая группа настроек — «Workstation», с помощью которой выполняется конфигурация GPU. При конфигурации вы можете выбирать, какой из доступных GPU будет использоваться для работы только с графикой, а какой – для работы с графикой и вычислениями. В драйвере для игровых графических ускорителей вы можете выбирать только графический процессор для вычислений в CUDA-приложениях, что существенно ограничивает пользователя в конфигурации.
Рис. 5-1. Выбор GPU для визуализации виртуального пространства в OpenGL приложении,
выбор GPU для вычислений в CUDA приложении и глобальная конфигурация параметров рабочей станции
Рис. 5-2. Пример параметров NVIDIA Iray, когда все GPU могут быть использованы для вычислений и
когда для вычислений может быть использованы устройства глобально определенные драйвером
6. Несколько примеров реализации функций в САПР с GPU NVIDIA Quadro
В процессе исследования и написания данной статьи мною и моими коллегами было протестировано и изучено несколько известных и доступных пакетов САПР, использующих графическое ядро на основе библиотек Open GL, а также их возможности, использующие технологии OpenCL и NVIDIA CUDA.Основной упор мы делали на качестве изображения и производительности графического ядра при визуализации параметрической модели в виртуальном пространстве, использовании ресурсов графических процессоров и выполнении вычислений общего назначения.
Производительность зависит не только от графики
Производительность такого программного обеспечения, как САПР, зависит от множества факторов. Результат выполняемых пользователем операций, вычисляется центральным процессором, а повторное вычисление всей модели может потребовать времени. Графические ускорители выполняют задачи, связанные с визуализацией векторных данных параметрической модели, полученной в процессе вычислений с помощью центрального процессора и хранимой в оперативной памяти. С другой стороны, графический ускоритель может ускорить процесс вычислений в хорошо распараллеливаемых алгоритмах с помощью NVIDIA CUDA или OpenCL. Помимо этого, на протяжении нескольких лет компанией NVIDIA и её партнерами по консорциуму Khronos Group ведется разработка расширений для Open GL, позволяющих выполнять оптимизацию производительности приложений. Многие профессиональные графические приложения и их ядра начинают использовать возможности этих расширений для увеличения производительности.Ключевая идея заключается в минимизации простоя в процессе вычислений, выполняемых на CPU и передаваемых GPU для визуализации. По своей сути, графический процессор не будет ожидать данные, которые к нему поступают после вычислений на CPU, и промежуток времени, в который GPU бездействует, будет заполнен определенными задачами, например вычислениями.
Рис. 6-1. Пример распределения задач между множеством потоков в процессе обработки сцены
КОМПАС-3D V16
Одним из удачных примеров реализации поддержки возможностей графических ускорителей и программного обеспечения NVIDIA Quadro является пакет машиностроительных САПР — КОМПАС-3D. В отличие от конкурирующих решений, разработчики из компании АСКОН, совместно со специалистами компании NVIDIA, реализовали прямую поддержку функций драйвера NVIDIA Quadro.Рис. 6-2. Пример отображения модели в виртуальном пространстве пакета КОМПАС-3D V16 на GPU NVIDIA GeForce и NVIDIA Quadro
T-FLEX CAD 14
Еще одним хорошим примером использования технологий компании NVIDIA и возможностей профессиональной графики Quadro является пакет T-FLEX CAD. Он также использует возможности спецификаций Open GL и драйвера NVIDIA Quadro, но обладает дополнительным функционалом — поддержкой визуализации трассировки лучей с использованием технологии NVIDIA OptiX.Рис. 6-3. Параметры графической подсистемы пакета T-FLEX CAD
Рис. 6-4. Пример визуализации с помощью NVIDIA OptiX в T-FLEX CAD
Важным достоинством работы с такими приложениями как КОМПАС-3D и T-FLEX CAD является поддержка OpenGL, это важное условие при работе с Multi-GPU конфигурациями. Вы можете распределить каждое из приложений на выделенный GPU с помощью драйвера NVIDIA Quadro и выполнять все необходимые вычисления и работу со сценами в каждом из приложений. Это удобно, когда необходимо готовить проект в нескольких приложениях и передавать данные из одного приложения в другое.
SOLIDWORKS 2016
Пакет SolidWorks предоставляет своим пользователям богатый функционал. Его графическое ядро также оптимизировано для работы с профессиональными графическими ускорителями. Одной из важнейших функций для создания высококачественных образов напрямую в SolidWorks является функционал, заложенный в RealView.Рис. 6-5. С помощью SolidWorks RealView вы можете создавать высококачественные иллюстрации с помощью OpenGL и аппаратных шейдеров
При использовании профессиональных ускорителей NVIDIA Quadro пользователям SolidWorks доступны все основные возможности графического ядра и высококачественного затенения. (В сети можно встретить публикации посвященные активизации RealView в SolidWorks на игровых GPU. Но как показала практика и персональные исследования, активация данных функций не дает должного эффекта по сравнению с реализацией на профессиональных графических ускорителях. Зачастую это обусловлено определенными расширениями и возможностями шейдеров, которые становятся доступны при наличии связанного аппаратно-программного решения, аналогичного NVIDIA Quadro).
SOLIDWORKS Visualize
Для высококачественной визуализации изображений и анимации в пакет программ SolidWorks входят два продукта SolidWorks Visualize Standard и SolidWorks Visualize Professional. Эти продукты используют возможности ядра NVIDIA iRay для фотореалистичной визуализации создаваемых моделей.Ядро NVIDIA iRay может работать в двух режимах, высококачественном фотореалистичном режиме (Unbiased mode) и в упрощенном режиме, основанном на простой трассировке лучей (Biased mode).
Рис. 6-6. Пакет SolidWorks Visualize позволяет выполнять фотореалистичную визуализацию изображений с применением возможностей графических ускорителей
CATIA LiveRendering
Система интерактивной и фотореалистичной визуализации CATIA LiveRendering также основана на технологии NVIDIA iRay. С ее помощью вы можете выполнять визуализацию изображений и моделей, создаваемых с помощью системы CATIA и предоставлять полученные образы клиентам.Рис. 6-7. Система визуализации CATIA LiveRendering на основе NVIDIA iRay
Решение для визуализации может быть использовано совместно с NVIDIA Quadro и программно-аппаратной платформой NVIDIA Quadro VCA, позволяя увеличивать производительность в работе над комплексными и сложными моделями.
7. Расширенные функции конфигурации рабочей станции
При работе с множеством дисплеев и несколькими графическими ускорителями, установленными в рабочей станции, возникает потребность в улучшенной и более расширенной конфигурации оборудования. Одним из важнейших преимуществ профессиональных решений над игровыми является реализации удобных функций для конфигурации графических процессоров, вывода картинки на дисплеи, управление памятью графических процессоров (NVIDIA Quadro, NVIDIA Tesla) и функции коррекции ошибок памяти. Настройки синхронизации кадров и развертывание единого рабочего пространства на нескольких дисплеях и конфигурация видеостен.В зависимости от того, какой графический ускоритель находится в вашей рабочей станции, их количества и подключенных дисплеев, вам становится доступны те или иные функции. Обычно это функции для просмотра системной топологии и управления использованием ресурсов графических процессоров. Если у вас несколько одинаковых дисплеев, вы можете использовать возможности технологии NVIDIA Mosaic для создания единого дисплея на все устройства и его калибровку.
Рис. 7-1. Настройка технологии NVIDIA Mosaic
Для решения задач, связанных с высокоточными вычислениями и требующими постоянной целостности данных, находящихся в оперативной памяти графического ускорителя, может возникнуть необходимость в памяти с коррекцией ошибок (ECC Memory). В драйвере для ускорителей NVIDIA Quadro и NVIDIA Tesla пользователю предоставляется интерфейс для активации функции коррекции ошибок памяти.
8. Мобильные решения NVIDIA Quadro
Аналогично игровым решениям, компания NVIDIA своим клиентам предлагает мобильные профессиональные графические ускорители, устанавливаемые в мобильные рабочие станции. Аналогично решениям для настольных систем, мобильные графические ускорители NVIDIA Quadro предоставляют аналогичные возможности и оптимизированы под оптимальное энергопотребление. Помимо этого, в драйвере для мобильных графических ускорителей вы можете выбирать, какой графический ускоритель будет использован в определенное время и при определенных задачах. Так, многие мобильные рабочие станции обладают встроенной в центральный процессор графической подсистемой, а с помощью технологии NVIDIA Optimus и драйвера графического ускорителя вы можете выбрать, какой из ускорителей использовать, или доверить выбор программному обеспечению.
Рис. 8-1. В драйвере для мобильного графического ускорителя NVIDIA Quadro
вы можете выбрать один из доступных ускорителей или предоставить выбор программному обеспечению
На практике я использую мобильную рабочую станцию с NVIDIA Quadro K1000M для тестирования программного обеспечения. Это удобное решение для работы с небольшими проектами и бета-версиями программного обеспечения, ею удобно пользоваться в дороге в очередном путешествии, а также удобно использовать для проведения презентаций и мастер-классов.
Заключение
Различие между функционалом и производительностью профессиональных и игровых графических ускорителей неоднократно обсуждалось на различных ресурсах. Многие пользователи ошибочно полагают, что приобретение профессионального GPU просто позволит увеличить количество кадров в секунду. Основная задача профессионального оборудования – эффективно решать специфические задачи и выстроить удобный рабочий процесс. Функционал профессиональной графики Quadro создан для решения задач, с которыми сталкиваются специалисты в разных областях профессиональной визуализации. Многие задачи требуют применения множества приложений, а зачастую это требует больших объемов памяти и вычислительной мощности, что далеко не всегда доступно в игровых решениях для широкого круга пользователей. При этом организовать множество окон и создать комфортные условия работы помогают такие решения, как описанное в данной статье nView Desktop Management с гибким функционалом и богатыми возможностями для организации рабочих столов и их конфигураций.За годы работы с профессиональными решениями NVIDIA Quadro, я был сильно удивлен отсутствием возможности распределения ресурсов для визуализации в OpenGL или Direct3D на ускорителях игровой линейки. А возможности для управления функциями рабочей станции, доступные в профессиональных решениях NVIDIA Quadro, позволяют централизованно управлять доступными специальными функциями, например управление ECC памятью и распределение ресурсов для визуализации графики или вычислений общего назначения, а также управления такими возможностями, как конфигурация специальных решений на основе Quadro Sync и Quadro SDI. Поддержка вывода изображения и множества буферов кадров на различные дисплеи могут быть достигнуты только с помощью профессиональных решений, а при создании сложных мультидисплейных конфигураций необходима высокая точность в выводе изображения. Что достигается с помощью специализированного программного обеспечения, поддерживающего функции корректировки изображений и наложения, доступные в решениях на подобии NVIDIA Quadro. Системные же администраторы получают гибкие инструменты для управления инфраструктурой и оборудованием не только на локальных системах, но и на удаленных системах, что значительно упрощает работу и мониторинг работы оборудования.
В представленной вашему вниманию статье я постарался продемонстрировать наиболее заметные отличия между игровыми и профессиональными графическими ускорителями, но не со стороны производительности, а с точки зрения функционала. Многие функции могут быть использованы в повседневной работе как с 2D, так и с 3D приложениями, высокое качество сглаживания и оптимальное использование памяти позволяют рационально использовать возможности системы в целом, и оперировать достаточно большими массивами данных. Программное обеспечение, поставляемое вместе с профессиональными графическими ускорителями, позволяет решать гораздо больше задач по сравнению с игровыми решениями. Большей отдачи удастся получить от индивидуальной конфигурации, как глобальных профилей, так и индивидуальных для каждого приложения профилей.
Благодарности
Я выражаю большую благодарность своим партнерам и друзьям из компании FORSITE за предоставленное для исследования и написания статьи оборудование, а также консультации по аппаратным решениям. Также выражаю благодарность компании NVIDIA за оказанную помощью в подготовке материалов статьи и техническую поддержку.Официальным производителем и поставщиком профессиональных видеокарт NVIDIA Quadro в Россию является компания PNY Technologies.