![]() | ![]() |
Translate to: |
|||||
Обратная связь | Новости САПР | Программы | Документация | Полезные советы | Обзорные статьи | ||
Заказ и разработка | Каталог САПР | САПР-конференция | Библиотека ГОСТов | Наши соавторы | Коммерческое ПО |
Работая с AutoCAD Civil 3D и Autodesk Inventor на своем ноутбуке, я периодически сталкивался с определенными ограничениями быстродействия, связанными с обработкой видео. В связи с этим я задался целью понять, как быстродействие видеокарт влияет на производительность CAD-систем. К чему привело мое исследование, рассказывается ниже.
Современные видеокарты значительно больше участвуют в формировании отображаемого изображения, чем ранее. К примеру, они самостоятельно выполняют такие процессы как текстурирование и освещенность. В настоящее время рынок видеокарт движут два тип приложений - игры и дизайнерские приложения. При этом основной движущей силой рынка является наибольшая группа потребителей, которые работают с базовыми компьютерными приложениями, играми и графическими изображениями. Эти приложения требуют от видеокарты выполнять чудеса, такие как отображение сцен визуализации после сцен анимации или отправка больших графических изображений на множество мониторов.
С другой стороны, такие приложения как AutoCAD, в основном использую полигональную геометрию, а не визуализацию сцен. На рынке же господствуют видеокарты, нацеленные на обработку полутонов и реализм. В свою очередь я хочу найти видеокарту, которая удовлетворяла всем моим потребностям хотя бы на 80%.
OpenGL и Direct X - это средства, которые управляют отображением видео. Для удобства вашего понимания принципов их работы представим, что видеокарта - это "сборочный цех", а видео API это служба доставки полуфабрикатов и спецификаций в "сборочный цех". Direct X представляет собой API Windows. Его использование просто и удобно. Достаточно адаптировать ваше приложение для его использования и служба доставки запакует ваш полуфабрикат, заполнит спецификацию и отправит его в "сборочный цех". Из "сборочного цеха" ваша продукция отправиться прямо на рынок - то есть на дисплей монитора.
С другой стороны, к тому времени, когда появился Direct X, все наши приложения исторически использовали OpenGL. Если продолжить нашу аналогию со "сборочным цехом", в случае Direct X торговые представители, одетые в деловые костюмы в компактных микроавтобусах перевозят товар по определенному пути, указанному их руководством - Windows. В случае же OpenGL - это водители-дальнобойщики, перевозящие габаритный груз на больших грузовиках. Управление при этом настолько минимально, что невозможно определить, какой торговый представитель управляет каким грузовиком. При этом они хорошо выполняют свою работу, но иногда работникам "сборочного цеха" почему-то не нравиться водитель грузовика и они отправляют привезенный им груз в утиль.
Этот пример не говорит о том, что OpenGL плох или видеокарта плоха. Фактически, все наоборот. Однако новые видеокарты и приложения могут настолько загружать API, что оно они могут не соединяться между собой должным образом. Фактически, это означает, что API не правильно управляется со стороны программного обеспечения или не правильно воспринимается видеокартой. Как следствие, Autodesk тратит огромные суммы денег на поддержку стабильной работы их OpenGL-структуры в различных конфигурациях программного обеспечения и оборудования.
NVIDIA и AMD (ATI) производят видеокарты двух типов. Это видеокарты общего назначения и видеокарты для CAD. Серия видеокарт для CAD от NVIDIA называется Quadro, от ATI - FireGL. Видеокарты общего назначения оптимизированы для Direct X и способны обрабатывать большие массивы полутоновых пикселей за очень короткие промежутки времени. Они также хорошо обрабатывают полигоны, но не настолько.
Видеокарты для CAD построены на основании исследований и разработок, применявшихся при создании видеокарт общего назначения. Фактически в этих видеокартах специализированные драйвера OpenGL адаптированы для графических процессоров стандартных видеокарт, может быть установлена более качественная видеопамять и добавлены некоторые дополнительные возможности. Независимые от разработчиков эксперты утверждают, что видеокарты для CAD и видеокарты общего назначения практически идентичны за исключением версии биоса, оптимизированной для использования драйвера OpenGL применяющегося системой проектирования. Эта комбинация дает очень эффективный метод работы со сложными проектными моделями. При этом компании-разработчики тратят много времени на сотрудничество с Autodesk, с целью получить устойчивые драйвера OpenGL для каждой из своих видеокарт для проектирования. Естественно, что это также сказывается на цене этих видеокарт.
Например, Quadro NVIDIA FX 5600 основан на G80 GPU, том же самом GPU как GeForce 8800. Quadro FX 1700 основан на G84 GPU, том же самом как в GeForce 8600. Такая же ситуаци и с видеокартами ATI.
В ноябре 2008 года только что выпущенная видеокарта NVIDIA Quadro FX 5800 стоила 3 500 $. Эта видеокарта основана на том же самом GT200 GPU как и GTX 280. При этом видеокарта на базе GTX 280 сейчас стоит порядка 400 $. Цена кажется серьезно непропорциональной.
Видеокарты для CAD среднего ценового диапазона построены на процессорах, представленных несколько лет назад. Так наиболее широко распространенная видеокарта для CAD Quadro FX 3700 основана на G92 GPU и архитектуре G-Force 9800 GT, которая была анонсирована еще в 2007. Quadro FX 3700 сейчас стоит 600 $.
Видеокарты для CAD часто идут с большим количеством оперативной памяти, чем видеокарты общего назначения. Это хорошо, но есть момент, когда процессор не достаточно быстр, чтобы заполнить так много оперативной памяти, и часть ее остается неиспользованной. Обычно считается, что объем видеопамяти прямо пропорционален разрешению экрана. Для разрешений экрана до 1900 x 1200 пикселей достаточно 512 Мб оперативной видеопамяти.
Зайдите на любой форум по видеокартам и наберите в поиске слово CAD. Вы скорее всего, найдете выражение, подобное этому: "Если вы работаете в CAD, установите адаптированную для CAD видеокарту. Во всех других случаях используйте обычную видеокарту". Обратите внимание, на то, что этот вопрос постоянно задается снова и снова. Почему? Потому что видеокарты для проектирования стоят невероятно дорого, и непонятно за что. Задав уточняющий вопрос, как правило, вы получите неопределенный ответ о более высокой четкости и быстродействии.
Поскольку я отношусь к упрямым людям, я решил разобраться в этом вопросе. Я начал изучать статьи по видеокартам для CAD и общего назначения, а так же дискуссии на форумах. Проблема состояла, прежде всего, в том, что с одной стороны имелись тесты и обзоры схожих видеокарт, которые не выходили за рамки стандартных областей их использования, с другой стороны существовала дискуссия по поводу различий между стандартными видеокартами и видеокартам для CAD, но не существовало ни одного реального способа понять, как эти различия проявляются.
Я действительно находил отдельные статьи, которые использовали SPECViewperf для того чтобы проверить производительность OpenGL отдельно на видеокартах общего назначения и оптимизированных для CAD. Я сравнил результаты этих тестов, но они не отражали реальной ситуации, на мой взгляд. Оптимизированные для CAD видеокарты показывали в пять раз лучшие результаты, чем стандартные видеокарты. Синтетические тесты, конечно смотрелись хорошо, но мне бы хотелось бы протестировать производительность видеокарт на реальном программном обеспечении.
Наконец я нашел тест от X-Bit Laboratories под названием "Сводка новостей: Профессиональные графические акселераторы в среднем сегменте". Объектом тестирования были популярные видеокарты для CAD от AMD и NVIDEA, с одним существенным и интересным отличием - в тесте участвовала так же одна популярная видеокарта общего назначения.
В тесте участвовали NVIDIA Quadro FX 570, 1700 и 3700, ATI Fire-Pro 3600, 5600, 7600, и 8600. Для сравнения было вклчено тестирование GeForce 9800 GTX. Синтетические Тесты показали, что в 80 процентов случаев видеокарты общего назначения были в пять раз медленнее, когда использовалось сглаживание (anti-aliasing). Конечно, это было немного неутешительно, но я предполагаю, что вы теперь понимаете, за что платите.
К счастью я прочитал следующее в конец раздела, посвященного сглаживанию:
" … [SPECviewprf] все еще использует для тестирования модель поведения приложений 5-летней давности. Кроме того, следует не забывать о наметившейся в настоящее время тенденции переработки профессиональных приложений с поддержки спецификации OpenGL к работе с технологией DirectX, которая в настоящее время предлагает значительно больше опций, особенно касающихся обработки шейдеров. Например, Microsoft API уже используется в 3ds Max and AutoCAD, что однако не принято во внимание синтетическим тестом. Поэтому, тесты SPECviewperf не могут действительно замените реальные профессиональные приложения."
Далее было интереснее. В тестах на интенсивную обработку полигонов и шейдеров был проверен массив видеокарт для CAD на актуальных в настоящее время программах, включая AutoCAD 2009. Результат был довольно ясным.
Тесты с помощью AutoCAD 2009 были разделены на следующие категории: Общий тест 3D-графики, каркасная графика, плоскостная затушёвка и затушевка по методу Гуро. В тесте с плоскостной затушёвкой видеокарта общего назначения NVIDIA GeForce оказалась только на секунду медленнее FireGL v8600. В остальных тестах GeForce 9800 GTX была впереди всех!
Так как будущие API OpenGL стало дискуссионным, многие компании стали тратить средства на эффективное использование в своих приложениях API Direct X. Почему нет? Оно стабильно и доступно. Адаптация платформы позволило бы освободить ресурсы для научно-исследовательской и опытно-конструкторской работы где ни будь в другом месте. Аномалии видео будут отображаться у значительно меньшего числа пользователей.
Денис Джефрей, основатель Tekni Consulting LLC, напомнил мне, что Windows Vista - это последняя операционная система от Microsoft, которая еще поддерживает OpenGL, Windows 7 будет поддерживать только Direct X.
Какое же будущее ждет OpenGL? Я нашел статью в конференции, посвященной Autodesk Inventor, где обсуждается природа OpenGL и его будущее для Autodesk. Там обсуждаются ограничения кода OpenGL 1997 года и факт того, что если видеокарта сертифицирована для Direct X, то она хороша, так как это влияет на пропускную способность видео.
Вот еще одна интересная цитата:"Кроме всего прочего, Direct3D WHQL-сертифицирован на широком спектре графического аппаратного обеспечения - рабочих станциях, потребительских, игровых, мобильных и интегрированных на материнских платах графических чипсетах. По существу, устройства, использующие Direct3D, различаются только по производительности. Это не относиться к OpenGL, где графические драйвера фактически отключают некоторые функциональные возможности OpenGL на пользовательских, игровых, мобильных компьютерах и компьютерах с интегрированной графикой, так что вы вынуждены покупать более дорогие графические рабочие станции, только для того, чтобы графика OpenGL работала правильно."
Не правда ли, что это не интересно?Так как собранная информация произвела на меня большое впечатление, то я решил ее опубликовать только после того, как проверю результаты тестов самостоятельно. Благодаря помощи Грэма Харриса, специалиста по Autodesk Inventor, который позволил мне выполнить некоторые умеренные тесты на Inventor 2010 и AutoCAD Civil 3D 2010 в стандартной установке, это удалось. Конечно, мы не смогли добиться полного соответствия, но мы приложили все усилия для этого.
Компьютер Грэма был построен на материнской плате ASUS с процессором AMD FX60 939 (2.6 Ghz), имел 2 Гб оперативной памяти, жесткий диск Velociraptor 10,000 RPM, монитор Dell 24 LCD и видеокарту NVIDIA GeForce 7900 GTX.
С моей стороны в тесте участвовал ноутбук Dell M65 с процессором Intel T2500 (2.0 Ghz), 3 Гб. оперативной памяти, жестким диском Hitachi 5400 RPM, 15" LCD-экраном и видеокартой NVIDIA Quadro FX350M. (Не смейтесь; я могу делать чудеса с помощью этой старой видеокартой!)
Сами тесты были простыми. Нужно было открыть пару файлов, визуально изучить ключевые аспекты, скорость и достоверность отображения. С одной стороны меня беспокоило использование оборудования более чем трехлетней давности, но с другой стороны я понимал, что если эти старые компоненты будут хорошо работать, только вообразите, что сможет сделать новое оборудование с аппаратной поддержкой DX10!
AutoCAD Civil 3D 2010 на платформе с видеокартой Quadro: При использовании OpenGL полигоны были совершенны, сглаживание было выполнено должным образом, каркасные конструкции были прекрасными. Цвета были немного приглушенными. Затененные поверхности хорошо вели себя и в пространстве модели и в просмотровщике объектов. Триангуляционные поверхности отображались с преобладанием треугольников, текстуры были не видны при отображении в полутонах. Визуализация была отличной.
AutoCAD Civil 3D 2010 на платформе с видеокартой GeForce: На Direct X 9, цвета были весьма яркими. Полигоны подсвечивались хорошо. Скорость панорамирования больших каркасных поверхностей была не настолько высока как в случае с Quadro. При этом следует учитывать, что рабочая станция имела в 1.5 раза меньше памяти на борту. Сглаживание не было настолько хорошим как с Quadro, но все же хорошим. Текстуры поверхности доминировали над моделью при отображении в полутонах, возможно даже слишком. Визуализация была отличной.
Autodesk Inventor: Не было никаких различий между компьютерами. Ни одного. Отображение в браузере моделей было безупречным, виды были чисты, скорость также была высока. Визуализации была примерно на 50 процентов быстрее на компьютере с видеокартой GeForce (но здесь возможно помогло быстродействие процессора).
Хотя видеокарты для CAD разработаны на основе видеокарт общего назначения, но при этом лучшие. Они оптимизированы как под OpenGL, так и под Direct X. Некоторые люди все еще утверждают, что CAD-видеокарты не будут хорошо работать с Direct X. Это - не потому что CAD-видеокарты оптимизированы для OpenGL, а потому, что видеокарты, которые используют большинство людей, использует старые технологии для работы с новыми, мощными приложениями. Вы можете купить совершенно новый ноутбук, но там будет стоять видеокарта разработки 3-летней давности, поэтому не стоит удивляться, почему некоторые не ориентированные на AutoCAD приложения будут недостаточно быстры. В тоже время AutoCAD все еще использует код OpenGL, написанный в 1997 году, таким образом, никакого чуда нет в том, что старые CAD-видеокарты все еще выполняют чудеса … в AutoCAD.
Ключевым вопросом является то, насколько новую и эффективную графическую технологию вы можете себе позволить? Видеокарты для CAD, построенные на новых GPU имеют очень высокую производительность, но вы готовы платить 3,500$ за плату, аналог которой общего назначения которой стоит только 400$ ?
Если бы у меня были бы все деньги мира, я бы конечно купил Quadro FX 5800. Так как она построена с учетом всех новых технологий, доступных в видеокартах общего назначения плюс адаптирована для работы с OpenGL, я бы не проиграл. Если моя компания решит заменить мой ноутбук новым, в котором будет встроена относительно не новая видеокарта Quadro FX 3700, я буду в экстазе. Правда.
Но если бы я покупал видеокарту за свои деньги, то взял саму быструю плату GeForce. С учетом того, что Autodesk, как и многие другие разработчики CAD-систем, планирует адаптацию своих программ под Direct X, будущее производителей видеокарт для CAD выглядит призрачным.
OpenGL - спецификация, определяющая независимый от языка программирования кросс-платформенный программный интерфейс для написания приложений, использующих двумерную и трёхмерную компьютерную графику.
На базовом уровне, OpenGL - это просто спецификация, то есть документ, описывающий набор функций и их точное поведение. Производители оборудования на основе этой спецификации создают реализации - библиотеки функций, соответствующих набору функций спецификации. Реализация использует возможности оборудования там, где это возможно. Если аппаратура не позволяет реализовать какую-либо возможность, она должна быть эмулирована программно. Производители должны пройти тесты на соответствие, прежде чем реализация будет классифицирована как OpenGL реализация. Таким образом, разработчикам программного обеспечения достаточно научиться использовать функции, описанные в спецификации, оставив эффективную реализацию последних разработчикам аппаратного обеспечения.
Инциатива разработки OpenGL принадлежит компания SGI, возглавивший консорциум по созданию спецификации в 1992 году. В настоящий момент последняя доступная версия спецификации - OpenGL 3.2 (анонсирована 3.08.09).
Direct X - это набор API функций, разработанных для решения задач, связанных с игровым и видеопрограммированием под Microsoft Windows. Возникновение Direct X связано с выходом Windows 95, так как при создании программ, работающих с видео, прямой доступ к функциям видеокарты стал затруднен из-за использования Windows 95 защищённой модели памяти.
Первая версия Direct X была выпущена в сентябре 1995 года под названием "Windows Game SDK". Последняя версия на данный момент - DirectX 11 (вышла 22.06.09). Пакет средств разработки Direct X для Microsoft Windows бесплатно доступен на сайте Microsoft.
API - набор готовых классов, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для её использования во внешних программных продуктах.
Copyright © Сайт поддержки пользователей САПР by Victor Tkachenko