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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Сравнения скорости. Forth benchmarks.
СообщениеДобавлено: Чт янв 05, 2023 16:35 
Не в сети

Зарегистрирован: Вт ноя 22, 2022 17:27
Сообщения: 6
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
KPG писал(а):
Forth_coremark
Цитата:
Forth_coremark предоставляет порт эталонного теста CoreMark для языка программирования Forth.


На AMD5950X Coremark даёт следующие результаты:

Код:
flk 1.3.2         | 11915
SwiftForth        | 8738
VFX 5.20 32-bit   | 15240
VFX 5.20 64-bit   | 14563
GForth 0.7.9      | 1092
GForth-fast 0.7.9 | 4096
GForth 0.7.3      | 512
IKForth           | 682
LXF               | 13107
GCC 12.2          | 41849
Clang 14.0.6      | 36480


У меня тихое подозрение, что Coremark.f некорректно работает на 64-битных системах.

Но в целом видно, что классический ITC Forth сливает по скорости безнадёжно даже FLK от начала 90-х годов прошлого века. GForth значительно ускорился за счёт суперинструкций.

Единственная более-менее пристойная реализация -- VFX. Но Coremark для него -- удачный бенч. На большинстве других он сильно проигрывает С компиляторам. Да и LXF он обычно проигрывает.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сравнения скорости. Forth benchmarks.
СообщениеДобавлено: Сб янв 07, 2023 16:21 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7934
Благодарил (а): 24 раз.
Поблагодарили: 144 раз.
nbkolchin писал(а):
Но в целом видно, что классический ITC Forth сливает по скорости безнадёжно даже FLK от начала 90-х годов прошлого века. GForth значительно ускорился за счёт суперинструкций.

В целом это и не нужно. Берем CUDA, и даже ассемблерная программа не имеет шансов догнать GPU. Повышение производительности одного потока вычислений CPU - тупик. Его давно обошли многопоточным программированием и спецвычислителями. Соответственно, и тянуть Форт нужно в совершенно другую сторону - интеграция, glueware, предметно-ориентированные фреймворки.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сравнения скорости. Forth benchmarks.
СообщениеДобавлено: Вт янв 10, 2023 18:23 
Не в сети

Зарегистрирован: Вт ноя 22, 2022 17:27
Сообщения: 6
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Hishnik писал(а):
В целом это и не нужно. Берем CUDA, и даже ассемблерная программа не имеет шансов догнать GPU. Повышение производительности одного потока вычислений CPU - тупик. Его давно обошли многопоточным программированием и спецвычислителями. Соответственно, и тянуть Форт нужно в совершенно другую сторону - интеграция, glueware, предметно-ориентированные фреймворки.


Во-первых, не все задачи легко распараллеливаются и ложатся на GPU.

Во-вторых, принципиальный момент -- что в 80-е ITC сливал в 3-5 раз ( KPG бросал диссер какого-то прибалта про реализацию форта, там это было указано), а сейчас более 50. И по скорости ITC часто сливает даже Питону, что совсем неприлично.

Скорее надо уходить от ITC и работать над упрощением преобразования стекового кода в регистровый для современных CPU. У нас эта проблематика сейчас хорошо проработана из-за JVM.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сравнения скорости. Forth benchmarks.
СообщениеДобавлено: Вт янв 10, 2023 18:27 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7934
Благодарил (а): 24 раз.
Поблагодарили: 144 раз.
Вопрос не в этом. Зачем вообще добиваться от кода на Форте высокой производительности? Оформление вызова заранее скомпилированной функции может быть в принципе менее 1% от времени выполнения, но коррекция и отладка порядка вычислений, аргументов, перебора, диапазонов и прочего собственно и составляет практически весь процесс работы с алгоритмом. Ну и пусть редактирование-отладка будет удобным, а быстрым будет не Форт, а вызываемый им код.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сравнения скорости. Forth benchmarks.
СообщениеДобавлено: Вт янв 10, 2023 18:48 
Не в сети

Зарегистрирован: Вт ноя 22, 2022 17:27
Сообщения: 6
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Hishnik писал(а):
Вопрос не в этом. Зачем вообще добиваться от кода на Форте высокой производительности? Оформление вызова заранее скомпилированной функции может быть в принципе менее 1% от времени выполнения, но коррекция и отладка порядка вычислений, аргументов, перебора, диапазонов и прочего собственно и составляет практически весь процесс работы с алгоритмом. Ну и пусть редактирование-отладка будет удобным, а быстрым будет не Форт, а вызываемый им код.


Так это Питон получается, с которым соревноваться бессмысленно, потому-что у него в пакетах лежат готовые решения на все случаи жизни.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сравнения скорости. Forth benchmarks.
СообщениеДобавлено: Вт янв 10, 2023 20:02 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7934
Благодарил (а): 24 раз.
Поблагодарили: 144 раз.
nbkolchin писал(а):
Так это Питон получается, с которым соревноваться бессмысленно, потому-что у него в пакетах лежат готовые решения на все случаи жизни.

На все случаи жизни решений быть не может. Развитие-то продолжается, и в пакеты попадает в основном то, что проработано и формализовано. Суть работы может быть тоже разной. Если в ней не подразумевается исследование, а все заключается в сборке-настройке, то может быть и Форту в такой деятельности места нет. Проще пользоваться готовыми инструментами с рекомендуемым порядком применения. У нас Форт в стандартных задачах и не применялся никогда, потому что почти все задачи нестандартные, и именно в их решении и был смысл работы.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сравнения скорости. Forth benchmarks.
СообщениеДобавлено: Чт янв 12, 2023 15:14 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2124
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Forth VS C (and Pascal)
На RC4 алгоритме и gForth системы

Цитата:
Intel Core i7-5930K CPU @ 3.50GHz
using gcc 8.3.0 and gforth 0.7.3 on Linux 5.0.0.
Free Pascal Compiler v3.0.4+dfsg-22 [2019/01/24] for x86_64.


Код:
          Comparison

            Test      Language   Iterations   Time/sec      Iterations/Time

          Key
                      Forth      100000       21.573        4635
          Schedules

                      C          10000000     6.822         1465846

                      Pascal     10000000     23.601        423711

          Key
                      Forth      10000000     19.560        511247
          Stream

                      C          2000000000   5.976         334672021

                      Pascal     2000000000   8.844         226142017


P.S. Более подробные цифры по тестам приведены в репе этого бенчмарка.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сравнения скорости. Forth benchmarks.
СообщениеДобавлено: Чт янв 12, 2023 15:17 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7934
Благодарил (а): 24 раз.
Поблагодарили: 144 раз.
KPG писал(а):
На RC4 алгоритме и gForth системы

Вывод - написать RC4 на Си и вызывать из Форта.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сравнения скорости. Forth benchmarks.
СообщениеДобавлено: Ср янв 25, 2023 03:25 
Не в сети

Зарегистрирован: Вт ноя 22, 2022 17:27
Сообщения: 6
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
KPG писал(а):
Forth VS C (and Pascal)
На RC4 алгоритме и gForth системы


Да, блин. Во-первых нужно использовать для сравнения с Си 'gforth-fast', 'VFX' или 'LXF'. Во-вторых, автор не осилил разбор командной строки даже в Си и у меня получилось, что VFX порядок быстрее Си:

- VFX: 0.716040419 seconds time elapsed
- GCC 12.2: 6.491812772 seconds time elapsed

Хреновый бенчмарк...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сравнения скорости. Forth benchmarks.
СообщениеДобавлено: Пн фев 06, 2023 15:32 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2124
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
nbkolchin писал(а):
Во-вторых, принципиальный момент -- что в 80-е ITC сливал в 3-5 раз ( KPG бросал диссер какого-то прибалта про реализацию форта, там это было указано), а сейчас более 50. И по скорости ITC часто сливает даже Питону, что совсем неприлично.

Скорее надо уходить от ITC и работать над упрощением преобразования стекового кода в регистровый для современных CPU. У нас эта проблематика сейчас хорошо проработана из-за JVM.


Возможно ITC ещё не так сильно проигрывает в замерах для контроллеров AVR,PIC,STM8,STM32,MCS-51 ...
но, это возможно имеет смысл проверить отдельно на существующих вариантах.

P.S. Запускал Тест счастливых билетов на VFX Forth и amForth и вроде для MSP430 в рамках обсуждения времени его выполнения для разных калькуляторов на сайте pmk.arbinada.com и он, вроде, достаточно неплохо выполнился в рамках этих контроллеров. На этом же сайте есть замеры по тесту 8-ми ферзей.
VFX правда для контроллеров (STM32, MSP430) в натив переводит Форт код.

А, LXF имеется только в бинарном виде или в исходниках тоже можно увидеть?

В замеры можно включить ещё SPF4 реализованный и для Linux 32.

Интересно, что gForth из репы полностью у меня собрался для Linux 32 в рамках ScPup32. :)
BigForth тоже рабочий с мелкими замечаниями.

Для Windows форк SPF4 от mOleg имеет в своей реализации разные варианты шитого кода и тоже может выступать некоторым тестом для них.

Есть и такие Форт бенчмарки
The ultimate Forth Benchmark
The Forth MONSTER benchmark
FFT benchmark code
и некоторые другие бенчмарки на этой странице


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Сравнения скорости. Forth benchmarks.
СообщениеДобавлено: Пн фев 20, 2023 08:00 
Не в сети

Зарегистрирован: Вт ноя 22, 2022 17:27
Сообщения: 6
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
KPG писал(а):
nbkolchin писал(а):
Во-вторых, принципиальный момент -- что в 80-е ITC сливал в 3-5 раз ( KPG бросал диссер какого-то прибалта про реализацию форта, там это было указано), а сейчас более 50. И по скорости ITC часто сливает даже Питону, что совсем неприлично.

Скорее надо уходить от ITC и работать над упрощением преобразования стекового кода в регистровый для современных CPU. У нас эта проблематика сейчас хорошо проработана из-за JVM.


Возможно ITC ещё не так сильно проигрывает в замерах для контроллеров AVR,PIC,STM8,STM32,MCS-51 ...
но, это возможно имеет смысл проверить отдельно на существующих вариантах.


Конечно, не так сильно. Чем ближе к 80-м -- тем меньше проигрывает.

KPG писал(а):
А, LXF имеется только в бинарном виде или в исходниках тоже можно увидеть?


Только бинари. У него даже странички в интернете нет. Только файл для скачивания на тайгете.

KPG писал(а):
В замеры можно включить ещё SPF4 реализованный и для Linux 32.


Я его иногда включаю, но с ним сложно бывает из-за отсутствия поддержки Forth-2012.

KPG писал(а):


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

P.S. У Эртла есть набор бенчей "appBench" на основе "реальных приложений на форте". Правда он давно их не обновлял.


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

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


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

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


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

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