Forth
http://www.fforum.winglion.ru/

Сравнения скорости. Forth benchmarks.
http://www.fforum.winglion.ru/viewtopic.php?f=18&t=3122
Страница 2 из 2

Автор:  nbkolchin [ Чт янв 05, 2023 16:35 ]
Заголовок сообщения:  Re: Сравнения скорости. Forth benchmarks.

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 он обычно проигрывает.

Автор:  Hishnik [ Сб янв 07, 2023 16:21 ]
Заголовок сообщения:  Re: Сравнения скорости. Forth benchmarks.

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

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

Автор:  nbkolchin [ Вт янв 10, 2023 18:23 ]
Заголовок сообщения:  Re: Сравнения скорости. Forth benchmarks.

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


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

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

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

Автор:  Hishnik [ Вт янв 10, 2023 18:27 ]
Заголовок сообщения:  Re: Сравнения скорости. Forth benchmarks.

Вопрос не в этом. Зачем вообще добиваться от кода на Форте высокой производительности? Оформление вызова заранее скомпилированной функции может быть в принципе менее 1% от времени выполнения, но коррекция и отладка порядка вычислений, аргументов, перебора, диапазонов и прочего собственно и составляет практически весь процесс работы с алгоритмом. Ну и пусть редактирование-отладка будет удобным, а быстрым будет не Форт, а вызываемый им код.

Автор:  nbkolchin [ Вт янв 10, 2023 18:48 ]
Заголовок сообщения:  Re: Сравнения скорости. Forth benchmarks.

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


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

Автор:  Hishnik [ Вт янв 10, 2023 20:02 ]
Заголовок сообщения:  Re: Сравнения скорости. Forth benchmarks.

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

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

Автор:  KPG [ Чт янв 12, 2023 15:14 ]
Заголовок сообщения:  Re: Сравнения скорости. Forth benchmarks.

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. Более подробные цифры по тестам приведены в репе этого бенчмарка.

Автор:  Hishnik [ Чт янв 12, 2023 15:17 ]
Заголовок сообщения:  Re: Сравнения скорости. Forth benchmarks.

KPG писал(а):
На RC4 алгоритме и gForth системы

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

Автор:  nbkolchin [ Ср янв 25, 2023 03:25 ]
Заголовок сообщения:  Re: Сравнения скорости. Forth benchmarks.

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

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

Автор:  KPG [ Пн фев 06, 2023 15:32 ]
Заголовок сообщения:  Re: Сравнения скорости. Forth benchmarks.

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
и некоторые другие бенчмарки на этой странице

Автор:  nbkolchin [ Пн фев 20, 2023 08:00 ]
Заголовок сообщения:  Re: Сравнения скорости. Forth benchmarks.

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" на основе "реальных приложений на форте". Правда он давно их не обновлял.

Страница 2 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/