The Web-site of design Company Chelyabenergoproekt in English   English
Проектные работы в проектной организации Челябэнергопроект Заказать проектные работы в письме к проектной организации Челябэнергопроект Карта сайта
Die Web-seite der Projektorganisation Tscheljabenergoprojekt in Deutsch   Deutsch




Création de site web société française Chelyabenergoproekt   Française

   Облако тегов на сайте проектной организации Челябэнергопроект
Проекты интеллектуального мастерства!
новости компании
30.12.2015 С Новым годом!
Администрация ...
21.12.2015 С Днём Энергетика!
Уважаемые друзья и коллеги! Поздравляю вас с нашим большим праздником – Днем Энергетика! ...



новости отрасли
объекты Ростехнадзора
  Облако тегов
проектирование монтаж ключ котел кран сертификат ГОСТ ремонт заказЧелябинск

Аппаратные способы ускорения вычислений 3D-графики при выполнении проектных работ
Создание трехмерной графики – далеко не тривиальный процесс, требующий комплексного подхода, как к программному, так и аппаратному обеспечению. Современные профессиональные графические карты – это сплав высоких технологий, объединяющий в единое целое мощный многоядерный графический процессор (GPU) с параллельной архитектурой и программное обеспечение, позволяющее в полной мере задействовать все ресурсы GPU.

Рассмотрим разницу между CPU и GPU в параллельных расчётах.

Рост частот универсальных процессоров упёрся в физические ограничения и высокое энергопотребление, и увеличение их производительности всё чаще происходит за счёт размещения нескольких ядер в одном чипе. Продаваемые сейчас процессоры содержат лишь до четырёх ядер (дальнейший рост не будет быстрым) и они предназначены для обычных приложений, используют MIMD – множественный поток команд и данных. Каждое ядро работает отдельно от остальных, исполняя разные инструкции для разных процессов.

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

Например, в видеочипах NVIDIA основной блок – это мультипроцессор с восемью-десятью ядрами и сотнями ALU в целом, несколькими тысячами регистров и небольшим количеством разделяемой общей памяти. Кроме того, видеокарта содержит быструю глобальную память с доступом к ней всех мультипроцессоров, локальную память в каждом мультипроцессоре, а также специальную память для констант.

Самое главное – эти несколько ядер мультипроцессора в GPU являются SIMD (одиночный поток команд, множество потоков данных) ядрами. И эти ядра исполняют одни и те же инструкции одновременно, такой стиль программирования является обычным для графических алгоритмов и многих научных задач, но требует специфического программирования. Зато такой подход позволяет увеличить количество исполнительных блоков за счёт их упрощения.

Итак, перечислим основные различия между архитектурами CPU и GPU. Ядра CPU созданы для исполнения одного потока последовательных инструкций с максимальной производительностью, а GPU проектируются для быстрого исполнения большого числа параллельно выполняемых потоков инструкций. Универсальные процессоры оптимизированы для достижения высокой производительности единственного потока команд, обрабатывающего и целые числа и числа с плавающей точкой. При этом доступ к памяти случайный.

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

У видеочипов работа простая и распараллеленная изначально. Видеочип принимает на входе группу полигонов, проводит все необходимые операции, и на выходе выдаёт пиксели. Обработка полигонов и пикселей независима, их можно обрабатывать параллельно, отдельно друг от друга. Поэтому, из-за изначально параллельной организации работы в GPU используется большое количество исполнительных блоков, которые легко загрузить, в отличие от последовательного потока инструкций для CPU. Кроме того, современные GPU также могут исполнять больше одной инструкции за такт (dual issue). Так, архитектура Tesla в некоторых условиях запускает на исполнение операции MAD+MUL или MAD+SFU одновременно.

GPU отличается от CPU ещё и по принципам доступа к памяти. В GPU он связанный и легко предсказуемый – если из памяти читается тексель текстуры, то через некоторое время придёт время и для соседних текселей. Да и при записи то же – пиксель записывается во фреймбуфер, и через несколько тактов будет записываться расположенный рядом с ним. Поэтому организация памяти отличается от той, что используется в CPU. И видеочипу, в отличие от универсальных процессоров, просто не нужна кэш-память большого размера, а для текстур требуются лишь несколько (до 128-256 в нынешних GPU) килобайт.

Да и сама по себе работа с памятью у GPU и CPU несколько отличается. Так, не все центральные процессоры имеют встроенные контроллеры памяти, а у всех GPU обычно есть по несколько контроллеров, вплоть до восьми 64-битных каналов в чипе NVIDIA GT200. Кроме того, на видеокартах применяется более быстрая память, и в результате видеочипам доступна в разы большая пропускная способность памяти, что также весьма важно для параллельных расчётов, оперирующих с огромными потоками данных.

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

Про отличия в кэшировании. Универсальные центральные процессоры используют кэш-память для увеличения производительности за счёт снижения задержек доступа к памяти, а GPU используют кэш или общую память для увеличения полосы пропускания. CPU снижают задержки доступа к памяти при помощи кэш-памяти большого размера, а также предсказания ветвлений кода. Эти аппаратные части занимают большую часть площади чипа и потребляют много энергии. Видеочипы обходят проблему задержек доступа к памяти при помощи одновременного исполнения тысяч потоков – в то время, когда один из потоков ожидает данных из памяти, видеочип может выполнять вычисления другого потока без ожидания и задержек.

Есть множество различий и в поддержке многопоточности. CPU исполняет 1-2 потока вычислений на одно процессорное ядро, а видеочипы могут поддерживать до 1024 потоков на каждый мультипроцессор, которых в чипе несколько штук. И если переключение с одного потока на другой для CPU стоит сотни тактов, то GPU переключает несколько потоков за один такт.

Кроме того, центральные процессоры используют SIMD (одна инструкция выполняется над многочисленными данными) блоки для векторных вычислений, а видеочипы применяют SIMT (одна инструкция и несколько потоков) для скалярной обработки потоков. SIMT не требует, чтобы разработчик преобразовывал данные в векторы, и допускает произвольные ветвления в потоках.

Вкратце можно сказать, что в отличие от современных универсальных CPU, видеочипы предназначены для параллельных вычислений с большим количеством арифметических операций. И значительно большее число транзисторов GPU работает по прямому назначению – обработке массивов данных, а не управляет исполнением (flow control) немногочисленных последовательных вычислительных потоков. Это схема того, сколько места в CPU и GPU занимает разнообразная логика:

CPU и GPU
CPU и GPU


Известно, что параллельная архитектура способна обеспечить многократный рост производительности по сравнению с классической архитектурой CPU далеко не во всех случаях. Прежде всего, это дифференциальные уравнения, расчет графики, гидродинамики и т.д. Важным элементом является наличие правильного программного кода, который позволит максимально «распараллелить» выполняемые задачи. И если все эти условия соблюдены, эффективность системы возрастает многократно.

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

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

Наиболее интересные программно-аппаратные решения в этой области предоставляет сегодня компания NVIDIA со своей линейкой профессиональных графических карт NVIDIA Quadro FX.

Вот перечень основных задач, которые способны решать такие карты при выполнении проектных работ:
- поддержка CUDA (англ. Compute Unified Device Architecture) – среды разработки, позволяющей писать софт для сложных вычислительных задач, не связанных с графикой;
- быстрый и качественный графический рендеринг в САПР-приложениях;
- аппаратное ускорение физики силами движка NVIDIA PhysX;
- поддержка стереоскопического изображения;
- система расчета трассировки лучей OptiX.

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

NVIDIA Quadro FX – это серия профессиональных графических карт, изначально созданных именно для расчета графики в 3D-приложениях, таких как Autodesk 3ds Max, AutoCAD, Autodesk Inventor, Autodesk Revit и т.д. Практически все модели профессиональных видеокарт NVIDIA обеспечивают гораздо более высокую скорость графического рендеринга, нежели обычные пользовательские видеокарты. При этом не стоит забывать о качестве изображения и сроке службы. Эти показатели у профессиональных карт также значительно выше.

Аппаратный физический движок PhysX уже давно завоевал себе место в видеоиграх, где в реальном времени необходимо просчитывать взрывы, огонь, воду, разрушение объектов и т.д. Но эта технология оказалась крайне полезной и для профессионалов. В частности, PhysX в качестве плагина активно используется в Autodesk 3ds Max и Autodesk Maya и позволяет создавать симуляцию тканей, флюидов, твердых и мягких тел.

Сам плагин можно бесплатно скачать на сайте NVIDIA.

Функция стереоскопии – технология, которая в последние годы получила второе дыхание. Многие студии, создающие трехмерную мультипликацию, помимо обычной версии в обязательном порядке выпускают стереоверсию для специально приспособленных для этого кинотеатров. Компанией NVIDIA были разработаны очки, которые позволяют работать с трехмерными моделями в стереорежиме. Принцип работы основан на затворных механизмах, встроенных в очки, что дает возможность передавать изображение в полноценной цветовой гамме в отличие от простых двухцветных очков.

Безусловно, объемные 3D-модели в видовых окнах позволяют лучше ориентироваться в пространстве создаваемой сцены. Создание же стереокино без подобной технологии представляется вовсе немыслимым.

Система расчета трассировки лучей OptiX – технология, которая обеспечивает возможность делать финальный фотореалистичный рендер вашего проекта в разы быстрее! Достаточно сказать, что знаменитое подразделение Lucas Films для создания спецэффектов, компания Industrial Light & Magic, на счету которой визуальные эффекты для фильмов «Пираты Карибского моря», «Железный человек», «Трансформеры», «Индиана Джонс» и т.д., в настоящий момент строит новую рендер-ферму именно на базе GPU NVIDIA.

Стоит отметить, что технологии реалистичной визуализации не ограничиваются лишь технологией OptiX. Относительно недавно компания NVIDIA приобрела разработчика рендера mental ray – компанию mental images. После совместной работы на стыке программного обеспечения mental images и аппаратных средств NVIDIA был анонсирован выпуск нового уникального продукта под названием iray. Разработчики утверждают, что она объединена с рендерером mental ray, который используется в программных продуктах компаний Autodesk (в том числе и в AutoCAD), Dassault и PTC. Уже совсем скоро мы сможем просчитывать наши проекты средствами mental ray, задействовав при этом GPU NVIDIA, а не центральный процессор, который, по сути, для такого рода расчетов не предназначен. В своем пресс-релизе nVidia сообщает: «Технология рендеринга iray будет включена в пакет mental ray 3.8 и появится на рынке в конце ноября 2009 года без дополнительной платы для сегодняшних клиентов и производителей ПО». Iray намного быстрее при рендеринге («минуты» вместо «часов», по словам Джона Педди (Jon Peddie), президента Jon Peddie Research). Но для нее требуется новая графическая плата nVidia, поскольку она работает только с GPU и в архитектуре параллельных вычислений CUDA.

Несколько слов стоит сказать о технологии CUDA, которую поддерживают все последние поколения графических карт NVIDIA. CUDA – это архитектура, которая позволяет использовать мощь графического процессора для вычислений общего назначения. По сути, это среда разработки, позволяющая выполнять любые вычисления, для которых предпочтительна именно параллельная архитектура процессора. В данный момент архитектура CUDA поддерживает языки программирования C, С++, Fortran, и это не предел. Платформа CUDA дает практически ничем неограниченные возможности по использованию ресурсов GPU для расчетов любой сложности.

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

Рост производительности GPU по сравнению с CPU
Рост производительности GPU по сравнению с CPU


Представленная компанией NVIDIA программно-аппаратная архитектура для расчётов на видеочипах CUDA хорошо подходит для решения широкого круга задач с высоким параллелизмом, в частности, для ускорения работы с трехмерной графикой. CUDA работает на большом количестве видеочипов NVIDIA, и улучшает модель программирования GPU, значительно упрощая её и добавляя большое количество возможностей, таких как разделяемая память, возможность синхронизации потоков, вычисления с двойной точностью и целочисленные операции.

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

Autodesk оптимизирует свои продукты под CUDA. В частности, летом 2009 года компания Autodesk объявила об оптимизации приложения Autodesk Moldflow 2010 для технологии CUDA. Результат – ускорение работы более чем в 2 раза. Autodesk Moldflow – это программное решение, помогающее конструкторам определять и оптимизировать поведение литьевых пластмассовых компонентов на различных стадиях проектирования и производства. Аппаратную поддержку Autodesk Moldflow осуществляют профессиональные графические карты ультравысокого класса – nVidia Quadro FX 4800 и Quadro FX 5800.

«Максимальное использование широких возможностей и расчетов с массовым параллелизмом профессиональных графических процессоров NVIDIA Quadro дает нашим пользователям ощутимый прирост производительности», – сообщил Эрик Стоуэр (Eric Stover), менеджер компании Autodesk по продукции AutoCAD. – «В AutoCAD 2010 мы улучшили возможности и функции 3D-моделирования, а непревзойденное качество 3D-моделей, которое обеспечивают графические процессоры Quadro, даст всем дизайнерам заметное преимущество ».

Кроме повышения производительности, преимущества от совместного использования решений Quadro и AutoCAD 2010 включают:
- Лучшее качество в своем классе – Процессоры Quadro обеспечивают лучшее соотношение цена/производительность для обработки графики на рабочих станциях, обеспечивая оптимальное сочетание качества, точности расчетов и производительности. Решения Quadro разработаны, произведены и протестированы NVIDIA и соответствуют высочайшим стандартам качества.
- Непревзойденная производительность – Процессоры Quadro до 5 раз повышают скорость работы в режиме 3D Hidden и ускоряют управление в реальном времени в режимах Conceptual и Realistic.
- Легкая работа с 3D-моделями – Процессоры Quadro позволяют легко управлять и взаимодействовать с крупномасштабными моделями, сохраняя максимальное качество картинки, необходимое для точного расчета 3D-моделей с большим количеством полигонов.
- Высочайшее качество изображения – Процессоры Quadro обеспечивают повышенное качество изображения без ущерба для производительности благодаря функции отрисовки сглаженных линий в AutoCAD, специальной функции Quadro, доступной в драйверах NVIDIA для повышения производительности AutoCAD.
- Профессиональная поддержка нескольких экранов – Программное обеспечение NVIDIA nView® обеспечивает максимум возможностей и при использовании одного большого экрана, и при использовании нескольких разрешение каждого экрана может достигать 2560 x 1600.

Необходимо отметить, что процессоры Quadro любой ценовой категории объединяют передовые возможности обработки графики и специальные драйверы, повышающие производительность в AutoCAD 2010, что позволяет дизайнерам создавать более сложные 3D-проекты и управлять ими.

Очевидно, в ближайшее время появится еще больше функций AutoCAD под управлением платы nVidia Quadro и процессора CUDA.

Также компания АСКОН совместно с nVidia сообщила об ускорении работы КОМПАС-3D на компьютерах, оснащенных профессиональными решениями nVidia Quadro FX. Применение профиля в драйвере Quadro обеспечит пользователям КОМПАС-3D существенное ускорение работы с 3D-моделями при выполнении операций вращения и позиционирования. В зависимости от сложности модели ускорение может составлять от 30 до 50%!

«Повышение скорости работы пользователей – одна из важнейших задач, которую мы решаем от версии к версии, – подчеркнул Олег Зыков, руководитель отдела продуктового маркетинга АСКОН. – Определенные резервы для этого содержатся в оптимизации самого продукта, в новых функциях упрощения работы со сборками. Однако теперь мы в полной мере будем использовать и мощнейший аппаратный ресурс – профессиональные видеокарты».

В свою очередь, Алексей Лагуненко, руководитель департамента продаж nVidia в Восточной Европе, отметил: «nVidia активно сотрудничает с разработчиками ПО во всем мире и всегда готова поддержать инновационные идеи и перспективные продукты. АСКОН – один из ведущих российских разработчиков массовых CAD/AEC/PLM решений, и мы рады предоставить широкому кругу пользователей продуктов АСКОН поддержку как на уровне профессиональных аппаратных решений, так и с точки зрения оптимизации ПО».

Таким образом, профессиональные решения NVIDIA для ускорения вычислений 3D-графики повышают эффективность выполнения проектных работ.


Источники:
1. Профессиональные решения NVIDIA для ускорения работы с трехмерной графикой // САПР и графика. – 2010. – №2. – С.42-43
2. Берилло, А. NVIDIA CUDA – неграфические вычисления на графических процессорах. – 2008 [http://www.ixbt.com/video3/cuda-1.shtml]
3. Процессоры nVidia Quadro поднимают 3D-дизайн на новую высоту для пользователей AutoCAD 2010. – 2009 [http://www.nvidia.ru/object/io_1242377419521.html]
4. АСКОН и NVIDIA ускоряют работу КОМПАС-3D. – 2009 [http://ascon.ru/press/news/items/?news=582]

Автор: Челябэнергопроект
Дата: 23.03.2010

Комментарии специалистов Челябэнергопроект:
Нет
Статьи

смета проектных работ
©Челябэнергопроект – проектные работыinfo@chepr.ru, 2007-2013
DRA.RU - проектирование сайта под ключ; системный администратор ООО «Челябэнергопроект»
Главная|О компании|Стратегия|
Компетенция / услуги|Контакты
Сертификат качества