Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 18:01

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 366 ]  На страницу Пред.  1 ... 20, 21, 22, 23, 24, 25  След.
Автор Сообщение
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Вт мар 06, 2012 17:19 
Mihail писал(а):
Я действую от частного к общему. Новые более абстрактные
правила могут перекрывать собой старые жесткие. Чтобы
выявить невостребованные правила я написал программу:

Для выявления, действительно уже неактуальных правил,
придётся прогнать через макрооптимизатор "представительный"
набор тестов, для понимания на какие цепочки Форт кода
сработало то или иное правило и степень его актуальности
после исключения (перекроется ли данное правило набором других оставшихся правил).
Задача,по моему, достаточно нетривиальная, оценивая возможное комбинаторное число оптимальных правил.
Можно сделать генератор "случайного" кода и прогнать его
через оптимизатор, для выявления "всех" возможных вариантов
срабатывания правил.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Вт мар 06, 2012 17:41 
Mihail писал(а):
Какие еще библиотеки следовало-бы протестировать на использование правил?


Можно прогнать этот комплексный тест http://www.complang.tuwien.ac.at/forth/appbench-1.2.zip
ранняя версия упоминалась на форуме. (~ygrek, вроде правил
и почти всё из него выполнялось под spf4)
и другие подходящие тесты.

P.S. Может, имеет смысл, выделить топики про производительность
Форт реализаций и собрать в одном месте подраздела форума?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Ср мар 07, 2012 11:36 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Mihail писал(а):
Обнаружил, что : BB I I I */ ; компилит нечто несуразное, но разбираться
было некогда. Сегодня на работе вижу нормальный код и тест работает.


Таки ошибка в оптимизаторе. исправил: http://fpauk.narod.ru/macroopt.f
Вместо MOV ECX , EBX компилилось MOV EDX , EAX
Работало нормально когда правило не срабатывало.
Почему правило не всегда срабатывает тоже надо разбираться.
Должно быть так:
Код:
REQUIRE SEE lib\ext\disasm.f
: a I I I */ ;

SEE a
5751B7 8945FC           MOV     FC [EBP] , EAX
5751BA 8B0424           MOV     EAX , [ESP]
5751BD 2B442404         SUB     EAX , 4 [ESP]
5751C1 8945F8           MOV     F8 [EBP] , EAX
5751C4 8B0424           MOV     EAX , [ESP]
5751C7 2B442404         SUB     EAX , 4 [ESP]
5751CB 8B1C24           MOV     EBX , [ESP]
5751CE 2B5C2404         SUB     EBX , 4 [ESP]
5751D2 8BCB             MOV     ECX , EBX
5751D4 F76DF8           IMUL    F8 [EBP]
5751D7 F7F9             IDIV    ECX
5751D9 8D6DFC           LEA     EBP , FC [EBP]
5751DC C3               RET     NEAR


`Kopa писал(а):
Mihail писал(а):
Какие еще библиотеки следовало-бы протестировать на использование правил?
Можно прогнать этот комплексный тест http://www.complang.tuwien.ac.at/forth/appbench-1.2.zip

Желательно, подборку делать из SPF релиза, тогда и данную проверку можно включить в поставку.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Ср мар 07, 2012 14:55 
Mihail писал(а):
Mihail писал(а):
Обнаружил, что : BB I I I */ ; компилит нечто несуразное,
Таки ошибка в оптимизаторе. исправил:[/url]
У меня тест не проходит
Код:
: BB I I I * /;
выдал
572C4B 8945FC      MOV     FC [EBP] , EAX
572C4E 8B0424      MOV     EAX , [ESP]
572C51 2B442404      SUB     EAX , 4 [ESP]
572C55 8945F8      MOV     F8 [EBP] , EAX
572C58 8B0424      MOV     EAX , [ESP]
572C5B 2B442404      SUB     EAX , 4 [ESP]
572C5F 8B1C24      MOV     EBX , [ESP]
572C62 2B5C2404      SUB     EBX , 4 [ESP]
572C66 8BD1      MOV     EDX , ECX
572C68 F76DF8      IMUL    F8 [EBP]
572C6B F7F9      IDIV    ECX
572C6D 8D6DFC      LEA     EBP , FC [EBP]
572C70 C3              RET     NEAR


Mihail писал(а):

Желательно, подборку делать из SPF релиза, тогда и данную проверку можно включить в поставку.

Тогда нужен свой вариант бенчмарк-а в SPF4 для
комплексного теста макрооптимизатора.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Ср мар 07, 2012 20:38 
Mihail писал(а):
Mihail писал(а):
Обнаружил, что : BB I I I */ ; компилит нечто несуразное,
Таки ошибка в оптимизаторе. исправил: http://fpauk.narod.ru/macroopt.f
У меня эта ошибка продолжает проявлятся на данной версии macroopt.f.

Она также проявляется в macroopt.f,v1.74 и v1.73; а в v1.72 тест проходит нормально.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Ср мар 07, 2012 21:36 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
spf писал(а):
У меня эта ошибка продолжает проявлятся на данной версии macroopt.f.


Да, что-то я перепутал версии
еше раз: http://fpauk.narod.ru/macroopt.f


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Пн мар 12, 2012 10:47 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
`Kopa писал(а):
Может будет полезно такое сравнение Spf4 и VFX
Код:
HEX
: a  DP @ OVER - 7E >  IF   DROP EXIT THEN
  DP @ HERE <> IF  DROP EXIT THEN
;
SEE a

572CA3 E87446FEFF  CALL    55731C  ( DP ) ( 004C8E50 8B1524214000 ) MOV    EDX, [00402124]
. . .


C DP в СПФ перемудрили.
На сколько я знаю, замысел остался не востребован.
Может сделать его USER переменной? Или вообще обычной переменной?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Пн мар 12, 2012 12:41 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Mihail писал(а):
На сколько я знаю, замысел остался не востребован.

Это я опрометчиво. TEMP-WORDLIST используется.
Тогда предлагаю, условие заменить дополнительной косвенностью:
Код:
: DP ( -- addr )
GET-CURRENT 7 CELLS + @   ;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Вт мар 13, 2012 15:29 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
В samples\bench\benchmark.f [o/n] для СПФ следует определить как
Код:
: [o/n] HERE DROP ; IMMEDIATE

Если [o/n] - пустое слово, то тест не честный.

ЗЫ Последняя версия оптимизатора


Последний раз редактировалось Mihail Вт мар 13, 2012 17:19, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Вт мар 13, 2012 16:43 
Результаты замера benchmark на последней
версии оптимизатора (Celeron 900, 1Гб) нетбук eee900
VFX vs SPF4
Код:
                                        VFX   SPF4 
                                        ms         
DO LOOP                                  6     31   
+                                        8     47   
M+                                       8     63   
*                                        8     46   
/                                       14     63   
M*                                       7     31   
M/                                      14    109   
/MOD                                    15     78   
*/                                      40    219   
ARRAY fill                              12     16   
Total:                                 132    734   
                                                   
                                                   
This system's O/S interface                         
                                                   
Test time including overhead            ms         
Win32 API: SendMessage                  16    125   
Win32 API: COUNTER                     374    266   
System I/O: KEY?                        19    969   
Total:                                 409   1360   
                                                   
                                                   
This system's application performance               
                                                   
Test time including overhead               ms  times
Eratosthenes sieve 1899 Primes            259   250
Fibonacci recursion ( 35 -> 9227465 )     381   359
Hoare's quick sort (reverse order)        227   281
Generate random numbers (1024 kb array)   260   266
LZ77 Comp. (400 kb Random Data Mem>Mem)   301   344
Dhrystone (integer)                       224   250
Total:                                   1652  1750


P.S. Результаты по комплексным тестам где то близко.
Тест по примитивам, почему то провален.
Можно будет добавить ещё iForth, у него результаты,
вероятней всего, будут лучше.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Вт мар 13, 2012 17:12 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
`Kopa писал(а):
Тест по примитивам, почему то провален.

Может у тебя старая версия DO LOOP
Новая в:
http://fpauk.narod.ru/spf_forthproc.f
http://spf.cvs.sourceforge.net/viewvc/spf/src/tc_spf.F (UNIX)
http://spf.cvs.sourceforge.net/viewvc/spf/src/compiler/spf_immed_loop.f (UNIX)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Вт мар 13, 2012 20:33 
Mihail писал(а):

Михаил, есть ошибка в отпимизаторе — слово HASH не работает. Посмотри пожалуйста багрепорт.

Наверное, уведомления от багтрекера к тебе на электропочту не доходят?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Вт мар 13, 2012 22:11 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
rvm писал(а):
слово HASH не работает. Посмотри пожалуйста багрепорт.


Исправил


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Вт мар 13, 2012 23:39 
Mihail писал(а):
Спасибо, работает.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: СПФ и оптимизатор
СообщениеДобавлено: Ср мар 14, 2012 12:45 
Не в сети

Зарегистрирован: Пт июн 23, 2006 14:05
Сообщения: 126
Благодарил (а): 1 раз.
Поблагодарили: 16 раз.
`Kopa писал(а):
Можно будет добавить ещё iForth, у него результаты,
вероятней всего, будут лучше.


А знает ли кто-нибудь, в каких реальных приложениях применяются все эти замечательные импортные форты? Куда идёт вся эта непревзойденная (в тестах) мощь? Мне в виндовом SPF производительности всегда хватало, "узкие места" всегда вне SPF. Правда вот в ARM'овом форте не всегда хватает (часть циклов в драйверах пришлось переписать на асме - дает ускорение в 3-10 раз), но там CODE-слов всего около 30, оптимизация отсутствует вообще.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 366 ]  На страницу Пред.  1 ... 20, 21, 22, 23, 24, 25  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB