Скорость SSE с разными оптимизациями: -O1 и -O3

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение Лекс Айрин » 01.12.2013 23:23:00

kazalex писал(а):Ты зря называешь бенчмаркинг рабочего кода синтетикой.


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

kazalex писал(а):и отставание в четверть секунды превратится в четыре минуты.


А разве 4 минуты не видны на глаз? Хотя... можно так заопримизировать, что придется вводить циклы задержки.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение kazalex » 02.12.2013 01:47:53

Лекс Айрин писал(а):Самым корректным сравнением было бы написание версий с разными алгоритмами работы/оптимизациями

Так с самого начала об этом речь. Я же не о жонглировании опциями оптимизатора говорил.
Лекс Айрин писал(а):А разве 4 минуты не видны на глаз?

Это видно, когда случилась такая нагрузка. На момент проектирования если об оптимизации не думать то и не видно ничего. Более того, как я уже говорил, можно думать будто алгоритм быстр, а на деле окажется не так. И такие моменты ничем кроме бенчмаркинга не ловятся. Вообще, нагрузочное и эталонное тестирование желательно делать на объемах работы которые сильно превышают видящиеся на данный момент, и в этом есть определенный смысл ;)
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение Лекс Айрин » 02.12.2013 08:43:38

kazalex писал(а):На момент проектирования если об оптимизации не думать то и не видно ничего. Более того, как я уже говорил, можно думать будто алгоритм быстр, а на деле окажется не так.


Вообще-то правильнее создать работающее приложение, а потом уже думать об его оптимизации. Иначе получается дележ шкуры не убитого медведя. А опции компилятора (жонглирование) выставляются сразу и сразу же, по идее, влияют на производительность и/или размер программы.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение kazalex » 02.12.2013 15:02:54

Лекс Айрин писал(а):Вообще-то правильнее создать работающее приложение, а потом уже думать об его оптимизации

В этом случае имеется немалый шанс обеспечить себя работой по переписыванию всего/большей части приложения. При этом я не ратую за преждевременную оптимизацию. Но разработка без оптимизаций основанных на методе предварительных оценок ни к чему хорошему не приведет точно.
Лекс Айрин писал(а):А опции компилятора (жонглирование) выставляются сразу и сразу же, по идее, влияют на производительность и/или размер программы.

Если оптимизации медленные (т.е компилятор тратит много времени на оптимизацию) то на этапе прототипирования они, вероятнее всего, будут лишь увеличивать время компиляции. Оптимизации хороши для уже отшлифованного алгоритма.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение Лекс Айрин » 02.12.2013 16:08:37

kazalex писал(а):В этом случае имеется немалый шанс обеспечить себя работой по переписыванию всего/большей части приложения.


И что? Лучше оптимизировать неработоспособную программу? Сколько раз находили ошибки в оптимизированном коде, которые там были с момента его создания. Конечно, по возможности, лучше стараться писать оптимальный код, но если в программе ошибки (и они не исправляются), но смысл пользования ею пропадает.

kazalex писал(а):то на этапе прототипирования они, вероятнее всего, будут лишь увеличивать время компиляции.


FPC не Си с плюсами, Я Lasarus скачиваю, переустанавливаю и перекомпилирую в процессе утреннего/вечернего просмотра новостей. Под любой из трех осей, в которых работаю. А настройки оптимизации я вбиваю сразу же при создании проекта и забываю о них.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение kazalex » 02.12.2013 16:53:27

Лекс Айрин писал(а):И что?

Да ничего. Только это мазохизм.
Лекс Айрин писал(а):Лучше оптимизировать неработоспособную программу?

А откуда эта идея, что если оптимизированная то значит обязательно неработоспособная? Тут стоит заметить, что оптимизированная совсем не означает, что там клубок низкоуровневых трюков. Последним, как раз, страдают прематурщики не понимающие, что выигрыш от таких плясок минимален, а код стремительно превращается во write only.
Лекс Айрин писал(а):FPC не Си с плюсами

Несомненно. Как и качество его оптимизаций. Тем не менее, компилирует он значительно дольше чем та же Delphi. Но речь скорее об общем подходе, не все же pascal-only разработчики.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение Лекс Айрин » 02.12.2013 17:51:11

kazalex писал(а):А откуда эта идея, что если оптимизированная то значит обязательно неработоспособная?


Конечно, не обязательно, но откуда тогда в прогах столько глюков?

kazalex писал(а):Тем не менее, компилирует он значительно дольше чем та же Delphi.


Знаешь, разница между 1 и 2-3 минутами для меня не принципиальна.


kazalex писал(а):Но речь скорее об общем подходе, не все же pascal-only разработчики.


Форум-то для паскалевских программистов.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение debi12345 » 02.12.2013 18:31:30

Тем не менее, компилирует он значительно дольше чем та же Delphi.

Знаешь, разница между 1 и 2-3 минутами для меня не принципиальна.

100% логично (даже не задумываешься сколь компилируется FPC-программа - отвернешься, а она уже готова), но хотелось бы чтобы более долгая компиляция объяснялась более тщательной оптимизацией. Пусть даже будет режим компиляции в 100раз медленнее чем обычно - но с оптимизацией уровня GCC/G++.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение Лекс Айрин » 02.12.2013 19:43:06

debi12345, согласен. Более тщательная оптимизация вполне нормальная цена за более долгую оптимизацию.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение kazalex » 02.12.2013 20:27:17

Лекс Айрин писал(а):Конечно, не обязательно, но откуда тогда в прогах столько глюков?

От низкой культуры разработчиков, от чего же еще.
Лекс Айрин писал(а):Знаешь, разница между 1 и 2-3 минутами для меня не принципиальна.

На этапе прототипирования скорость получения результата очень важна.
Лекс Айрин писал(а):Форум-то для паскалевских программистов.

Вот только обсуждаемый вопрос значительно шире.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение Лекс Айрин » 02.12.2013 20:56:36

kazalex писал(а):От низкой культуры разработчиков, от чего же еще.


От желания писать код быстро, вообще-то. Вот и забивают на полноценное тестирование.

kazalex писал(а):На этапе прототипирования скорость получения результата очень важна.


Так прототипирование это не более чем черновые наброски.
Если позволена будет аналогия с написанием художественным текстом, то это канва произведения. Но если в канве окажутся неточные куски (а то и она вся), то они переписываются уже после написания более-менее значительного объема, когда обнаруживается ее фальш.
И, кстати, я не пишу прототипов. Они мне не нужны. Я сам себе заказчик и мне вполне хватит умения развалить проект на составляющие и переписать его заново с более оптимальным алгоритмом. Или начать его писать снизу, а не сверху, примерно представляя результат.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение kazalex » 02.12.2013 23:43:19

Лекс Айрин писал(а):Вот и забивают на полноценное тестирование.

Это и есть культура разработки и разработчиков.
Лекс Айрин писал(а):Так прототипирование это не более чем черновые наброски.

Только эи черновые наброски позволяют выкристализовать/выбрать направление разработки алгоритмы и структуры данных для решения задачи. И процесс этот может быть весьма длительным. Кстати, именно на этом этапе наиболее часто используется отладчик, который очень не дружит с компиляторными оптимизациями.
Лекс Айрин писал(а):И, кстати, я не пишу прототипов. Они мне не нужны.

Все, разумеется, зависит от сложности решаемых задач.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение Лекс Айрин » 03.12.2013 00:45:59

kazalex писал(а):Все, разумеется, зависит от сложности решаемых задач.


Понятное дело. Но тот проект, который хочется сделать, мне если и удастся, то очень нескоро. Не хватает справочного материала на русском (с английским увы не очень дружу)
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение debi12345 » 16.12.2013 12:52:46

Что значит задействованная оптимизация :
Изображение
и
Изображение
то есть около 30-ти (!!!) раз относительно одно-операндного (нынешнего FPC) варианта.

Вся статья : http://software.intel.com/en-us/articles/introduction-to-intel-advanced-vector-extensions
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Скорость SSE с разными оптимизациями: -O1 и -O3

Сообщение alexey38 » 16.12.2013 18:56:20

kazalex писал(а):В этом случае имеется немалый шанс обеспечить себя работой по переписыванию всего/большей части приложения. При этом я не ратую за преждевременную оптимизацию. Но разработка без оптимизаций основанных на методе предварительных оценок ни к чему хорошему не приведет точно.

На ранней стадии разработки нужно просто исследовать отдельные новые алгоритмы. А из предыдущего опыта уже знать правильные алгоритмы.

В результате собственно проект пишеться без оптимизации, но исходно на правильных алгоритмах и правильными методами программирования. Тестирование быстродействия без реальных примеров обычно не требуется, т.к. не угадаешь что нужно было тестить. На этапе финального тестирования (в рабочем окружении) вычищаются очевидные тормоза.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Пред.

Вернуться в Free Pascal Compiler

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

Сейчас этот форум просматривают: Google [Bot] и гости: 4

Рейтинг@Mail.ru