Оптимизация скорости работы в CATIA

Раздел для пользователей изучающих CATIA.

Оптимизация скорости работы в CATIA

Сообщение car2ner » 11 июн 2009 21:15

Всех приветствую!
По просьбам нескольких своих товарищей написал небольшой сборник советов по оптимизации работы CATIA на разных этапах, начиная с установки. Думаю, многим начинающим будет интересно. Планирую добавлять/изменять информацию по мере появления советов и критических замечаний. :)
Аватара пользователя
car2ner
Moderator
 
Сообщения: 254
Зарегистрирован: 22 сен 2007 15:20
Откуда: Челябинск

Re: Оптимизация скорости работы в CATIA

Сообщение keeper » 11 июн 2009 22:11

Прочитал....еще полезно добавить в Ваще описание отлючить антивирус - ускорит процесс установки в 2-3 раза...и еще как писали тут на форуме:исключить в антивирусе проверку папки ДС.
По поводу сервис паков можно через комит присоединять сервис паки...а потом после надежной работы в нем зафиксировать и удалить достаточно болшое количество файлов *.beforeSPK в папке ДС...
Аватара пользователя
keeper
Постоянный участник
Постоянный участник
 
Сообщения: 614
Зарегистрирован: 15 дек 2008 13:28
Откуда: Дд

Re: Оптимизация скорости работы в CATIA

Сообщение car2ner » 12 июн 2009 09:50

keeper писал(а):Прочитал....еще полезно добавить в Ваще описание отлючить антивирус - ускорит процесс установки в 2-3 раза...и еще как писали тут на форуме:исключить в антивирусе проверку папки ДС.
По поводу сервис паков можно через комит присоединять сервис паки...а потом после надежной работы в нем зафиксировать и удалить достаточно болшое количество файлов *.beforeSPK в папке ДС...

Про антивирус действительно забыл упомянуть - у меня это действие на автомате привычным движением руки... :-) Обязательно добавлю в список рекомендаций...
А вот про сервис-паки можно ли поподробнее? Про такую функцию слышал, но пользоваться не довелось
Аватара пользователя
car2ner
Moderator
 
Сообщения: 254
Зарегистрирован: 22 сен 2007 15:20
Откуда: Челябинск

Re: Оптимизация скорости работы в CATIA

Сообщение keeper » 13 июн 2009 15:25

Устанавливаете Катю и первый к ней доступный у Вас СП (без галочи автокомит). Запускаете Software Management - в последней закладке "управление пакетом обновления" жмете "коммит" и устанавливаете последующий СП...и так со всеми СП. Теситруете...работаете...откатываетесь если надо все в томже Software Management..а затем фиксируете нужный СП. Затем в папке ДС находим поиском файлы с расшерением *.beforeSPK и удаляем.
Аватара пользователя
keeper
Постоянный участник
Постоянный участник
 
Сообщения: 614
Зарегистрирован: 15 дек 2008 13:28
Откуда: Дд

Re: Оптимизация скорости работы в CATIA

Сообщение MaXComp » 16 июн 2009 08:53

car2ner
Прочитал ваши рекомендации по оптимизации и установке, возникли вопросы некоторые:
1)....1.2 Если двух дисков нет, но есть локальная гигабитная сеть (а сейчас даже все встроенные контроллеры идут гигабитные), то аналогичный прирост скорости можно получить, установив CATIA на сервер по сети.....

Не совсем понял, это имеется ввиду, для одного рабочего места, CATIA установить и юзать через терминальный доступ или подмапить диск с CATIA на свой комп и запускать её с этого диска..., если не трудно объясните поподробнее про установку и запуск CATIA по сети, как оно должно выглядеть :)

2)..... делаем из получившейся папки архив, который и записываем на болванку или флэшку, получая бэкап готовой установки. Теперь, чтобы «установить» CATIA на новую систему достаточно двух шагов: распаковать архив в любую папку.....

Сделал архив catia.ехе разархивация с диска на диск - 8 мин , по 100 мб сети - 9 мин , может есть способ получше, 9 минут тож время немаленькое.

3) keeper хотел вам задать вопрос, ну или просто по обсуждать, как вы думаете на сколько безопасно, исключение из проверки папки DS, антивирусом, на уровне корпоративной сети. Просто интересно не заведется ли в этих папках живность и что будет если заведется :mail1: . Есть ли какие предположения?
MaXComp
Участник
Участник
 
Сообщения: 75
Зарегистрирован: 23 май 2009 13:04
Откуда: Москва

Re: Оптимизация скорости работы в CATIA

Сообщение car2ner » 17 июн 2009 21:53

MaXComp писал(а):car2ner
Прочитал ваши рекомендации по оптимизации и установке, возникли вопросы некоторые:
1)....1.2 Если двух дисков нет, но есть локальная гигабитная сеть (а сейчас даже все встроенные контроллеры идут гигабитные), то аналогичный прирост скорости можно получить, установив CATIA на сервер по сети.....

Не совсем понял, это имеется ввиду, для одного рабочего места, CATIA установить и юзать через терминальный доступ или подмапить диск с CATIA на свой комп и запускать её с этого диска..., если не трудно объясните поподробнее про установку и запуск CATIA по сети, как оно должно выглядеть :)

2)..... делаем из получившейся папки архив, который и записываем на болванку или флэшку, получая бэкап готовой установки. Теперь, чтобы «установить» CATIA на новую систему достаточно двух шагов: распаковать архив в любую папку.....

Сделал архив catia.ехе разархивация с диска на диск - 8 мин , по 100 мб сети - 9 мин , может есть способ получше, 9 минут тож время немаленькое.

3) keeper хотел вам задать вопрос, ну или просто по обсуждать, как вы думаете на сколько безопасно, исключение из проверки папки DS, антивирусом, на уровне корпоративной сети. Просто интересно не заведется ли в этих папках живность и что будет если заведется :mail1: . Есть ли какие предположения?

1. Речь идет об установке в расшаренную сетевую папку. Вариантов опять два: либо расшариваете папку на сервере и просто указываете ее при установке, либо просто переписываете папку с установленной катей и дальше как в п.5. Работает как для одного пользователя так и для нескольких ;)

2. Начнем с сети. 100-мегабитка максимум может выдать около 10Мб/сек, в реале обычно крутится около 5-6 Мб/сек. 6 * 60 * 9 = 3240 Мб (3,2 Гб). Катя столько примерно и занимает в распакованном виде, т.е. сеть работает на своем пределе. Теперь про диск. Как я понимаю речь идет о распаковке с локального диска на него же. Т.к. время сравнимо с временем передачи по сети, получается работа с дисковыми операциями у вас идет на скорости около 6Мб/сек, т.е. примерно 2 на чтение и 4 на запись. В кате много маленьких файлов, поэтому диск не может работать на своей максимальной скорости, но все-равно 6 Мб/сек довольно маленькая цифра. Протестировал у себя:
Vista32Home SP1, NTFS, CATIA V5R19SP2, 65 285 файлов общим размером 3,25 Гб. Архив получился 1,02 Гб (WinRAR, настройки по умолчанию)
Время распаковки:
5 мин 30 сек (включен антивирь)
4 мин 40 сек (выключен антивирь)
3 мин 35 сек (выключен антивирь, распаковка шла с флэшки на диск)
Но! Это ноутбук, у которого диск гораздо медленнее десктопного варианта (5400 об/мин против 7200) и сам диск сильно фрагментирован.
Предположения почему у вас так медленно: очень сильная фрагментация и диск почти заполнен; не включен кэш на запись в настройках диска; шибко задумчивый антивирь; ну или просто медленный IDE диск.

3. Отвечу вместо keeper'а - он поправит если не согласен. Суть антивирусного монитора в том, чтобы проверять все файлы, к которым обращается система в процессе работы. Т.е., если Вы заранее уверены, что в папке с катей никто не живет, то ее можно и убрать из списка проверки, но оставить в списке на сканирование. Другое дело если исключить из проверки папку с кэшем браузера - беды не оберешься :-) Оттуда обычно живность и начинает распространятся. Но вы задали вопрос про сеть. После установки в сетевую папку, ей можно придать атрибут readonly.

P.S. Сейчас посмотрел - в процессе тестирования на фоне еще uTorrent на раздаче стоял :roll: . Скорость раздачи невысокая, но все-равно обращение к диску есть. Так что идеальная скорость должна быть еще выше.
Аватара пользователя
car2ner
Moderator
 
Сообщения: 254
Зарегистрирован: 22 сен 2007 15:20
Откуда: Челябинск

Re: Оптимизация скорости работы в CATIA

Сообщение ExtraRight » 17 июн 2009 23:02

Насчёт удаления ненужных файлов, связанных с локализацией на многих ненужных языках - при установке можно выключить галки с этими языками и эти ненужные файлы не будут даже появляться (только случайно не выключите language-indexed fonts)

Тема очень хорошая, только я бы её назвал "Оптимизация установки и ресурсоёмкости CATIA V5" и перенёс бы в нашу wiki.plm-forum.ru, чтобы многие бы могли поучаствовать в дополнении темы.
Аватара пользователя
ExtraRight
Forum Manager
 
Сообщения: 1575
Зарегистрирован: 11 сен 2007 18:50
Откуда: Нижний Новгород
Blog: View Blog (8)

Re: Оптимизация скорости работы в CATIA

Сообщение MaXComp » 17 июн 2009 23:11

car2ner
Спасибо за исчерпывающие ответы! Виновник оказался антивирус nod32 3 версии... В принципе скорость установки уже вполне устраивает.
MaXComp
Участник
Участник
 
Сообщения: 75
Зарегистрирован: 23 май 2009 13:04
Откуда: Москва

Re: Оптимизация скорости работы в CATIA

Сообщение car2ner » 18 июн 2009 08:17

ExtraRight писал(а):Насчёт удаления ненужных файлов, связанных с локализацией на многих ненужных языках - при установке можно выключить галки с этими языками и эти ненужные файлы не будут даже появляться (только случайно не выключите language-indexed fonts)

Тема очень хорошая, только я бы её назвал "Оптимизация установки и ресурсоёмкости CATIA V5" и перенёс бы в нашу wiki.plm-forum.ru, чтобы многие бы могли поучаствовать в дополнении темы.

Согласен со всем вышесказанным. Про wiki: попробую сегодня создать такую тему :mail1:
Аватара пользователя
car2ner
Moderator
 
Сообщения: 254
Зарегистрирован: 22 сен 2007 15:20
Откуда: Челябинск

Re: Оптимизация скорости работы в CATIA

Сообщение Shell » 22 июн 2009 03:00

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

Не помню, с какого релиза и сервис пака, но словил эту проблему и я. Глюк не то чтобы смертельный, но очень неприятный, к сожалению, быстро решить этот вопрос не получилось и на какое-то время пришлось с этим смириться.
И вот, случайно, экспериментируя с видеонастройками (пытаясь активизировать VBO) эта проблема решилась:
стоит создать системную переменную CAT_VBO_Allowed и присвоить ей значение 1 - тормоза в начале работы прекращаются. Причем, это четко прослеживается, присваиваем значение 1 - нет тормозов, закрываем CATIA, присваиваем значение 0, открываем CATIA - есть тормоза.

P.S. Вполне возможно, на других конфигах что-то может пойти не так. У себя (GeForce 8600GTS, v5r19SP2) пока заметил только один глюк: при CAT_VBO_Allowed = 1 иногда не получается задать детали прозрачность.
Последний раз редактировалось Shell 22 июн 2009 17:32, всего редактировалось 1 раз.
Shell
Участник
Участник
 
Сообщения: 144
Зарегистрирован: 02 окт 2007 12:20

Re: Оптимизация скорости работы в CATIA

Сообщение deLuther » 22 июн 2009 16:07

Спасибо за переменную!

Тормоза в начале использования VBO тоже могут быть нормальным явлением, особенно при здоровой геометрии - её же надо загрузить в видеопамять.
Правда время загрузки должно быть порядка нескольких секунд.
После загрузки всё будет летать вследствие того что геометрические данные находятся в "быстрой" памяти (видеопамяти).
При отрисовке без VBO данные используются из оперативки компа, а не видеокарты, т.е. данные надо постоянно "перегонять" на видеокарту.
С VBO - загрузили один раз и потом используем постоянно. Драйвера Quadro как правило ухитряются сделать что-то подобное и без VBO.
Таким образом предельная пропускная способность может быть близкой к 300 млн. треугольников в секунду для NVidia и 500 (и выше) для ATI.
Разница по скорости может быть на порядок выше чем без VBO, особенно на обычных, непрофессиональных, картах.

Сейчас подсунул катьке GLIntercept и потом посмотрел лог, действительно используются необходимые для этого функции из расширения VBO OpenGL.
glGenBuffersARB(1,0x12f690)
glBindBufferARB(GL_ARRAY_BUFFER,1)
glGetError()=GL_NO_ERROR
glBufferDataARB(GL_ARRAY_BUFFER,39456,0x0000,GL_STATIC_DRAW)
glGetError()=GL_NO_ERROR
glBufferSubDataARB(GL_ARRAY_BUFFER,0,19728,0x716e340)
glBufferSubDataARB(GL_ARRAY_BUFFER,19728,19728,0x7173058)
glGenBuffersARB(1,0x12f6a0)
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER,2)
glGetError()=GL_NO_ERROR
glBufferDataARB(GL_ELEMENT_ARRAY_BUFFER,4924,0x7068d54,GL_STATIC_DRAW)
glGetError()=GL_NO_ERROR
glVertexPointer(3,GL_FLOAT,4,0x0000)
glNormalPointer(GL_FLOAT,4,0x4d10)
glDrawElements(GL_TRIANGLES,0,GL_UNSIGNED_SHORT,0x0000)
glDrawElements(GL_TRIANGLE_STRIP,2462,GL_UNSIGNED_SHORT,0x0000)

glBufferDataARB(GL_ARRAY_BUFFER,39456,0x0000,GL_STATIC_DRAW)
Задаёт данные и способ отрисовки (статический), способ отрисовки может влиять на скорость, но, по моим наблюдениям, несущественно (во всяком случае на ATI).
glVertexPointer(3,GL_FLOAT,4,0x0000)
Задание указателя в таком виде как правило характеризует использование данных из видеопамяти (0 - 0x0000).
deLuther
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 16 сен 2008 15:23

Re: Оптимизация скорости работы в CATIA

Сообщение car2ner » 23 июн 2009 09:05

Shell писал(а):И вот, случайно, экспериментируя с видеонастройками (пытаясь активизировать VBO) эта проблема решилась:
стоит создать системную переменную CAT_VBO_Allowed и присвоить ей значение 1 - тормоза в начале работы прекращаются.

Очень интересно! Нашел вот такую статью про VBO. Цитата:
На современных видеокартах VBO обеспечивает очень большое увеличение производительности (наблюдалось, например, ускорение в 1000 раз на GeForce 6800, на статической геометрии).
Там вкратце и по существу описано, что это за зверь такой. Т.е., как я понял, в былые времена в оперативке видеокарты можно было хранить только текстуры, а сама геометрия всегда была в основной памяти компа. Для CAD-щиков, в отличие от игроманов, это как раз было малоприменимо, т.к. мы в основном оперируем с большими геометрическими объемами данных (полигонами в оттесселированной модели), а не с текстурами. Теперь же, при поддержке железа и новых версий OpenGL, получается можно даже игровые видяхи задействовать под CAD-нужды. Надеюсь кто больше в этом разбирается поправят или подтвердят вышесказанное. А еще хотелось бы, чтобы как можно больше народу испытало эту переменную и поделилось впечатлениями.

Кстати, обратите внимание, что речь идет именно о системной переменной, а не о переменной катиного енвиронмента.
Аватара пользователя
car2ner
Moderator
 
Сообщения: 254
Зарегистрирован: 22 сен 2007 15:20
Откуда: Челябинск

Re: Оптимизация скорости работы в CATIA

Сообщение Rino » 23 июн 2009 09:46

car2ner писал(а):А еще хотелось бы, чтобы как можно больше народу испытало эту переменную и поделилось впечатлениями.

Кстати, обратите внимание, что речь идет именно о системной переменной, а не о переменной катиного енвиронмента.

Я б попробовал (стоит ГеФорс 5600), тока я не знаю куда прописывать эти переменные, как то прописывал, но я воспользовался помощью Dasty (спасибос).
viewtopic.php?f=143&t=749
Я правильно понимаю, что нужно прописывать в соотвествии с данной темой ?
Если прально я все понял, то предлагаю добавить данную переменную в ту тему.
Аватара пользователя
Rino
Участник
Участник
 
Сообщения: 191
Зарегистрирован: 12 сен 2007 22:54
Откуда: TLT
Blog: View Blog (5)

Re: Оптимизация скорости работы в CATIA

Сообщение car2ner » 23 июн 2009 09:54

Нашел один из официальных документов по рабочим станциям HP (PDF, ~90 Kb), в котором показывают влияние переменной CAT_VBO_Allowed на производительность.
Изображение
На картинке MP - это "Миллионы полигонов", SHD, Edge - режимы отображения.
Несмотря на то, что речь идет о профессиональных картах ATI FireGL, думаю влияние будет чувствоваться на всех видеоадаптерах. Лично я почувствовал существенную разницу на сравнительно слабой ноутбучной nVidia 8400 GS (шина 64bit, 128 Mb видео). На глаз увеличение производительности было раза в два, а может и больше. Проблемы с прозрачностью, упомянутой Shell замечено не было. И еще. Т.к. эта переменная системная, думаю на нее ссылаются и другие продукты Dassault, к примеру, 3DXML-плеер, но его еще не испытывал.
Аватара пользователя
car2ner
Moderator
 
Сообщения: 254
Зарегистрирован: 22 сен 2007 15:20
Откуда: Челябинск

Re: Оптимизация скорости работы в CATIA

Сообщение car2ner » 23 июн 2009 10:02

Rino писал(а):Я б попробовал (стоит ГеФорс 5600), тока я не знаю куда прописывать эти переменные

Я обновил статью Оптимизация установки и ресурсоёмкости CATIA V5 в которой более подробно рассказано куда все эти переменные вписывать. :mail1:
Аватара пользователя
car2ner
Moderator
 
Сообщения: 254
Зарегистрирован: 22 сен 2007 15:20
Откуда: Челябинск

Re: Оптимизация скорости работы в CATIA

Сообщение deLuther » 23 июн 2009 10:22

Только стоит помнить что т.к. данные грузятся в видеопамять то на больших моделях 128 метров может просто-напросто не хватить, тогда геометрия прорисовываться не будет. Где-то проскакивала рекомендация 512 метров и выше.
Стоит отметить что возможность грузить геометрию в видеопамять была давно и без всяких расширений, только катия её не использовала.
Например почти всё ПО ANSYS, Simulia Abaqus CAE использует дисплей-листы, с ними работать проще. Причём это не расширение как VBO.
Если судить по тесту ViewPerf то Unigraphics тоже работает через дисплей-листы.

Ускорения в 1000 раз ждать не стоит, на порядок как правило быстрее будет.
deLuther
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 16 сен 2008 15:23

Re: Оптимизация скорости работы в CATIA

Сообщение car2ner » 23 июн 2009 10:35

deLuther писал(а):Только стоит помнить что т.к. данные грузятся в видеопамять то на больших моделях 128 метров может просто-напросто не хватить, тогда геометрия прорисовываться не будет. Где-то проскакивала рекомендация 512 метров и выше.

Согласен, и об этом в статье стоит упомянуть обязательно. Но тут нужно также заметить, что размер файла и размер геометрической модели - "две большие разницы". Насколько я знаю, в файлах .CATPart хранится как математическая модель вместе с деревом и т.п., так и та же модель в полигональном представлении (чтобы при открытии файла не ждать пока оттесселируются солиды и поверхности). Чтобы приблизительно узнать размер модели, думаю, можно сохранить файл в 3DXML, CGR или STL (но только бинарный). Это полигональные форматы и я предполагаю, что в памяти они хранятся примерно в таком же виде, т.е. полигоны в бинарном представлении.

P.S. В ноутбучных картах, как правило, заложена опция "забора" части ОЗУ под видеопамять, в моем случае - до 512 Мб. Но в этом случае получается масло масляное - перегон из ОЗУ в видеопамять, которая в свою очередь имитируется за счет ОЗУ :crazy: Т.е. при превышении "чистой" видеопамяти может получиться даже медленнее.
Аватара пользователя
car2ner
Moderator
 
Сообщения: 254
Зарегистрирован: 22 сен 2007 15:20
Откуда: Челябинск

Re: Оптимизация скорости работы в CATIA

Сообщение deLuther » 23 июн 2009 11:16

Согласен что по размеру самой катийной модели нельзя судить о том сколько это всё займёт в видеопамяти.
Можно нарисовать какой-нибудь шарик и задать мелкую-мелку тесселяцию, солид-модель будет весить мало, треугольников будет много.
На одну вершину треугольника уходит 6 чисел одинарной точности (4 байта, 3 координаты и 3 компоненты нормали). Катька использует оптимизацию (стрипы треугольников где соседние верщины не дублируются), так что тупо перемножить на количество треугольников нельзя. Инструментов для определения количества занятой видеопамяти в случае OpenGL нет.

Чтобы протестировать загрузил в катьку модель BMW (Body_Simpcgr.CATProduct , Body_simp_2004.cgr).
Прогнал с включением VBO и без, с VBO - ~122 мс на кадр (c:TestVisuPerfoDraw), без - ~126 мс.
Стал смотреть потом с помощью GLIntercept.
VBO используется... но как...
Во-первых очень офигенная фрагментация - модель разбита на маленькие кусочки, для отрисовки вызывается множество команд и часто меняется состояние графического пайплайна, но и это ещё не так страшно... постоянно встречается подобная конструкция:
Рисуется некоторое количество треугольников из видеопамяти (нулевые указатели и ненулевой номер буфера)
glBindBufferARB(GL_ARRAY_BUFFER,28817)
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER,28818)
glVertexPointer(3,GL_FLOAT,4,0x0000)
glNormalPointer(GL_FLOAT,4,0x0168)
glDrawElements(GL_TRIANGLES,6,GL_UNSIGNED_SHORT,0x0000)
glDrawElements(GL_TRIANGLE_STRIP,62,GL_UNSIGNED_SHORT,0x000c)
glColor4f(1.000000,1.000000,1.000000,1.000000)
glMaterialfv(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE,0x6ffa7e8)

И тут же буфер ставится на ноль (отключается) и идёт отрисовка из оперативки...
glBindBufferARB(GL_ARRAY_BUFFER,0)
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER,0)
glVertexPointer(3,GL_FLOAT,4,0x190834c0)
glNormalPointer(GL_FLOAT,4,0x190833c0)
glDrawElements(GL_TRIANGLES,6,GL_UNSIGNED_SHORT,0x19083040)
glDrawElements(GL_TRIANGLE_STRIP,43,GL_UNSIGNED_SHORT,0x1908304c)

Т.е. нарисовали 68 из видеопамяти и 49 из оперативки, занимательно не правда ли?
И такая конструкция идёт постоянно.
Т.е. приличный кусок модели рисуется из оперативки... Во всяком случае это так для R19 SP2

Надо будет проверить ещё на нормальных солидах и поверхностях.
И похоже на КЭ-сетках (при анализе), VBO тоже не используют.
Избирательное применение...
deLuther
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 16 сен 2008 15:23

Re: Оптимизация скорости работы в CATIA

Сообщение Shell » 23 июн 2009 11:48

Для информации: чтобы узнать количество полигонов в открытой модели (сцене), надо ввести в командную строку (CATIA) c:Triangles count.
Shell
Участник
Участник
 
Сообщения: 144
Зарегистрирован: 02 окт 2007 12:20

Re: Оптимизация скорости работы в CATIA

Сообщение deLuther » 23 июн 2009 11:53

Спасибо за информацию!
deLuther
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 16 сен 2008 15:23

Re: Оптимизация скорости работы в CATIA

Сообщение Shell » 23 июн 2009 11:56

deLuther писал(а):Чтобы протестировать загрузил в катьку модель BMW (Body_Simpcgr.CATProduct , Body_simp_2004.cgr).
Прогнал с включением VBO и без, с VBO - ~122 мс на кадр (c:TestVisuPerfoDraw), без - ~126 мс.
Да, я тоже с c:TestVisuPerfoDraw тестировал, производительность осталась на прежнем уровне, единственно, пропали тормоза в начале, при загрузке.
Shell
Участник
Участник
 
Сообщения: 144
Зарегистрирован: 02 окт 2007 12:20

Re: Оптимизация скорости работы в CATIA

Сообщение car2ner » 23 июн 2009 11:58

Видимо, от железа тоже многое зависит (как именно поддерживается OpenGL). Я тестировал свою модель командой c:TestVisuPerfoDraw. Тут настройки не так важны, т.к. будут сравниваться относительные величины. Так вот, при включенном VBO показывает значение 79.40 единиц, при отключенном 999.42 :shock: Разница более чем в 10 раз!
А еще зависит от сервис-паков. В PDF файле, ссылку на который давал выше, упоминается, что на некоторых сервис-паках производительность не растет, а падает!
Аватара пользователя
car2ner
Moderator
 
Сообщения: 254
Зарегистрирован: 22 сен 2007 15:20
Откуда: Челябинск

Re: Оптимизация скорости работы в CATIA

Сообщение deLuther » 23 июн 2009 12:08

Я думаю тут как раз от модели зависит, готовый cgr (от старой версии) может как-то не так себя вести, чем тесселяция версией катьки которая сделана для использования VBO. На модели из поверхностей (другая) разница между VBO и не VBO была трёхкратной, т.е. выигрыш ощутимый.
Касательно поддержки железом/драйверами фигня это. Я знаю что при оптимальном использовании VBO выигрывает на порядок на моём железе, но не в катьке, даже тест на различные режимы написал: http://malefice.fatal.ru/files/GLModelTest.rar (инфа внутри).
Вкратце режим 4 более-менее соответствует катьке без VBO и 8 - 9 с VBO.

Тот pdf показывает влияние сервис-паков на VBO в R18, а здесь R19SP2


Похоже проблема действительно в том что cgr сохранён в до VBO-версии.
Сделал cgr с поверхностной модели (другая геометрия), там нет отрисовки из оперативки (точнее не есть, но для вспомогательной геометрии).
И линии отрисовываются без VBO, кстати. Т.е. отображение линий (рёбер, эджей) на тяжёлой геометрии будет ударять по производительности.
Причём, это не зависит от драйверов и железа - катька даёт такие команды, железо (драйвера) выполняет как может. Т.е. профи-карты выиграют за счёт оптимизации неоптимизированных операций. А линии строятся даже без использования функций отрисовки массивов... в терминах OpenGL это называется непосредственным (immediate) режимом.
deLuther
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 16 сен 2008 15:23

Re: Оптимизация скорости работы в CATIA

Сообщение car2ner » 23 июн 2009 15:04

deLuther писал(а):Тот pdf показывает влияние сервис-паков на VBO в R18, а здесь R19SP2

Да, но если там не сказано про R19, то это не значит, что сервис-паки никак не влияют. :) Скорее, я бы сделал такой вывод: если они так сильно влияли в 18 релизе, то вполне могут влиять и в 19.

deLuther писал(а):Т.е. отображение линий (рёбер, эджей) на тяжёлой геометрии будет ударять по производительности.

И тем не менее, включение режима VBO дает самый сильный прирост (судя по графику) именно в режимах с отображением ребер. Правда, опять-таки, речь идет конкретно о FireGL...

Поэтому, чтобы более объективно видеть картину, повторяю свой призыв к общественности: испытать модели с включенной и отключенной переменной и поделиться в двух словах информацией, указав хотя бы модель видеокарты и тип испытываемой модели.
Аватара пользователя
car2ner
Moderator
 
Сообщения: 254
Зарегистрирован: 22 сен 2007 15:20
Откуда: Челябинск

Re: Оптимизация скорости работы в CATIA

Сообщение deLuther » 23 июн 2009 15:17

Хорошо бы вообще какую-нибудь одну модель всем потестить и отписаться.
Только какую?
Профи карты лучше справляются с линиями, это факт. С другой стороны лог комманд OpenGL, генерируемый CATIA V5 R19 sp2 говорит о том что VBO при этом не всегда используется.
Хотя я не прав, только часть линий выводится в непосредственном режиме, небольшая.
Фрагмент лога:
glBindBufferARB(GL_ARRAY_BUFFER,205)
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER,206)
glVertexPointer(3,GL_FLOAT,4,0x0000)
glDrawElements(GL_LINES,1692,GL_UNSIGNED_INT,0x0000) <--- Отрисовка через VBO
glBindBufferARB(GL_ARRAY_BUFFER,0)
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER,0)
glBegin(GL_LINES) <--- Непосредственный режим
glVertex3fv([4000.000000,-3245.879150,296.209045])
glVertex3fv([4000.000000,-3245.879150,384.000000])
glVertex3fv([4156.000000,-3089.879150,425.955383])
glVertex3fv([4156.000000,-3089.879150,296.209045])
glVertex3fv([3863.097168,-3164.669434,296.209045])
glVertex3fv([3863.097168,-3164.669434,415.753510])
glVertex3fv([4136.902832,-3015.088867,296.209045])
glVertex3fv([4136.902832,-3015.088867,415.753510])
glVertex3fv([4000.000000,-2933.879150,384.000000])
glVertex3fv([4000.000000,-2933.879150,296.209045])
glVertex3fv([3844.000000,-3089.879150,425.955383])
glVertex3fv([3844.000000,-3089.879150,296.209045])
glEnd()

Моя информация: CATIA V5 R19 sp2, Radeon HD4850 512Mb (Catalyst 9.4), синхронизация с развёрткой отключена.
Модель: небольшая сборка из труб, 249728 треугольников (c:Triangles count)
c:TestVisuPerfoDraw (Repeat 500)
VBO on, edges on - 3.47 ms (288.184 fps)
VBO on, edges off - 3.06 ms (326.797)
specification on, edges off (большое дерево) - 20.06 ms (49.8504)
VBO off, edges on - 11.22 ms (89.1266)
VBO off, edges off - 9.28 ms (107.759)
specification on, edges off - 25.88 ms (38.6399)

А вот это уже интересней, поставил самые низкие параметры в настройках (Display->Performance, 3D Accuracy, fixed 0.01 (было 0.05) Curve`s accuracy ratio 0.1), количество треугольников стало 932166
VBO on, edges on - 3.84
VBO off, edges on - 22.53
deLuther
Новичок
Новичок
 
Сообщения: 36
Зарегистрирован: 16 сен 2008 15:23

След.

Вернуться в Форум для новичков

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5