OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 09 Август, 2025 05:41

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 65 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Вторник, 25 Декабрь, 2007 16:55 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Trurl писал(а):
Есть и другие возможности :-)
...


Да уж.
Впрочем, что аналитическая математика иногда (когда может) бьет численную с бесконечной :-) силой, всем ... образованным людям известно ;-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Вторник, 25 Декабрь, 2007 17:07 

Зарегистрирован: Среда, 04 Июль, 2007 16:43
Сообщения: 247
Trurl писал(а):
Код:
(* Module 8: Procedure calls *)
PROCEDURE P3(X,Y : REAL; VAR Z : REAL);
VAR X1, Y1 : REAL;
BEGIN
   X1 := X;
   Y1 := Y;
   X1 := T * (X1 + Y1);
   Y1 := T * (X1 + Y1);
   Z := (X1 + Y1) / T2;
END P3;

T2 := 2.0;
X := 1.0; Y := 1.0; Z := 1.0;
FOR I:=1 TO N8 DO
   P3 (X,Y,Z)
END;

инлайним P3
Код:
T2 := 2.0;
X := 1.0;
Y := 1.0;
Z := 1.0;
FOR I:=1 TO N8 DO
   X1 := X;
   Y1 := Y;
   X1 := T * (X + Y);
   Y1 := T * (X + Y);
   Z := (X1 + Y1) / T2;
END;



Может всё-же
Код:
T2 := 2.0;
X := 1.0;
Y := 1.0;
Z := 1.0;
FOR I:=1 TO N8 DO
   X1 := X;
   Y1 := Y;
   X1 := T * (X1 + Y1);
   Y1 := T * (X1 + Y1);
   Z := (X1 + Y1) / T2;
END;

? А в остальном, видимо, так и есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Вторник, 25 Декабрь, 2007 18:06 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1437
Вот такие оптимизации дают самое впечатляюще ускорение на тестах и наименьшую практическую пользу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Вторник, 25 Декабрь, 2007 18:39 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Илья Ермаков писал(а):
Или ещё что имеется в виду?
Вы как в воду глядели, готовый это не переделанный. Это о компиляторе сказано.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Вторник, 25 Декабрь, 2007 19:26 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Info21 писал(а):
Подозреваю, что главная часть оптимизации, поразившей AVC (8000), состоит в использовании векторных инструкций.
Наверное, проще всего их предоставлять библиотекой? Для ясности. А то плохо не знать, что там компилятор творит.


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Вторник, 25 Декабрь, 2007 22:00 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
QWERTYProgrammer писал(а):
Поведение программы написанной на Блэкбоксе может изменяться непредсказуемым образом и без оптимизаций

У меня оба варианта выполняются за 594 ms. Но подобные случаи с непредсказуемым поведением тоже встречались: viewtopic.php?f=2&t=515


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Вторник, 25 Декабрь, 2007 22:05 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Info21 писал(а):
Подозреваю, что главная часть оптимизации, поразившей AVC (8000), состоит в использовании векторных инструкций.

В первом сообщении приводился результат для GCC при использовании векторных инструкций (опции -msse -msse2 -mfpmath=sse,387).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Вторник, 25 Декабрь, 2007 23:56 

Зарегистрирован: Среда, 04 Июль, 2007 16:43
Сообщения: 247
PGR писал(а):
У меня оба варианта выполняются за 594 ms. Но подобные случаи с непредсказуемым поведением тоже встречались: viewtopic.php?f=2&t=515


А машина какая, не P4, случайно? У меня эффект присутствует на P3 и Pentium M.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Среда, 26 Декабрь, 2007 00:43 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
PGR писал(а):
Info21 писал(а):
Подозреваю, что главная часть оптимизации, поразившей AVC (8000), состоит в использовании векторных инструкций.

В первом сообщении приводился результат для GCC при использовании векторных инструкций (опции -msse -msse2 -mfpmath=sse,387).


То, что компилятору скормили ключики, еще не значит, что он смог эти инструкции заюзать ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Среда, 26 Декабрь, 2007 00:43 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Vlad писал(а):
Конечно, написать и использовать библиотеку векторных инструкций под конкретный процессор проще, чем оптимизирующий компилятор...


...чем использовать оптимизирующий компилятор...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Среда, 26 Декабрь, 2007 12:06 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Vlad писал(а):
То, что компилятору скормили ключики, еще не значит, что он смог эти инструкции заюзать.
Так скормите ещё -S и убедитесь, что смог.

QWERTYProgrammer писал(а):
А машина какая, не P4, случайно? У меня эффект присутствует на P3 и Pentium M.
Да, именно P4.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Среда, 26 Декабрь, 2007 13:31 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
Vlad писал(а):
Конечно, написать и использовать библиотеку векторных инструкций под конкретный процессор проще, чем оптимизирующий компилятор...

...чем использовать оптимизирующий компилятор...


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Среда, 26 Декабрь, 2007 17:28 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Не поверите - для серьёзных вычислительных задач проще. Т.к. там жизненно важно, чтобы порядок операций не менялся по прихоти компилятора - иначе, к примеру, контроль погрешностей превращается в ад...


Вы сами такими задачами занимались? Тогда приведите пример, где компилятор что-то не так переставил, что повлияло на погрешность.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Среда, 26 Декабрь, 2007 17:30 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
PGR писал(а):
Vlad писал(а):
То, что компилятору скормили ключики, еще не значит, что он смог эти инструкции заюзать.
Так скормите ещё -S и убедитесь, что смог.


Ну значит не смог правильно заюзать...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Среда, 26 Декабрь, 2007 21:30 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
Вы сами такими задачами занимались? Тогда приведите пример, где компилятор что-то не так переставил, что повлияло на погрешность.

Нет, но общался с несколькими людьми, говорившими одно и то же. То, что погрешность плавающей точки может меняться при любом "дуновении" на выражение, общеизвестно. Самая главная проблема, я так понимаю, даже не в самой погрешности (поэтому многие и не замечают), а в её точной оценке.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Среда, 26 Декабрь, 2007 22:47 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Vlad писал(а):
Вы сами такими задачами занимались? Тогда приведите пример, где компилятор что-то не так переставил, что повлияло на погрешность.

Нет, но общался с несколькими людьми, говорившими одно и то же. То, что погрешность плавающей точки может меняться при любом "дуновении" на выражение, общеизвестно. Самая главная проблема, я так понимаю, даже не в самой погрешности (поэтому многие и не замечают), а в её точной оценке.


OK. Эти люди говорили что-то плохое об оптимизирующих компиляторах? О каких именно?

P.S. То, что плавающая точка подразумевает "иной подход" к вычислениям и так понятно и с этим никто не спорит.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Среда, 26 Декабрь, 2007 22:59 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Vlad писал(а):
OK. Эти люди говорили что-то плохое об оптимизирующих компиляторах? О каких именно?

Один - о фортрановском. Другой - о каком-то С++сном, как бы не GCC...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Четверг, 27 Декабрь, 2007 00:54 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Илья Ермаков писал(а):
Vlad писал(а):
OK. Эти люди говорили что-то плохое об оптимизирующих компиляторах? О каких именно?

Один - о фортрановском. Другой - о каком-то С++сном, как бы не GCC...


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Четверг, 27 Декабрь, 2007 09:07 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1437
Vlad писал(а):
Следуя заповедям оберона еще больше упростили кодогенератор? ;)


Кстати, кодогенератор можно упростить, повысив качество кода. Надо удалить генрацию WAIT. ;-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Whetstone Benchmark
СообщениеДобавлено: Четверг, 27 Декабрь, 2007 16:39 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Trurl писал(а):
Vlad писал(а):
Следуя заповедям оберона еще больше упростили кодогенератор? ;)


Кстати, кодогенератор можно упростить, повысив качество кода. Надо удалить генрацию WAIT. ;-)


А зачем она была сделана?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 65 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2025, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB