1. Esports World Cup 2025 13:00 | Шахматные звезды 5.0 | Дубов - Ниманн
    Тур чемпионов. Финал top!! | ЧМ рапид + блиц 25 top!!
    Последний довод короля Книга - NEW!
    Очень СКОРО переезжаем. Оставайтесь с нами!

Меряемся производительностью perft

Discussion in 'Машинное отделение' started by WildCat, 4 Jul 2007.

  1. Chemer
    Оффлайн

    Chemer Максим

    Репутация:
    0
    Я тоже надеюсь скоро включюсь.
     
  2. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    Кот, а если я тебе исходники свои дам, скомпилишь своим компилятором?
     
  3. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Давай.
     
  4. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    Вечером выложу.
    И не понятен такой факт. У меня по второму тесту цифры 41 и 37 (разница 4 секунды) а у тебя 18 - 13.6 (разница 4.4). Как такое может быть? По идее все цифры должны были пропорционально уменьшится, а у тебя разница даже возросла.
     
  5. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Процессоры ведь разные.
     
  6. Shark
    Оффлайн

    Shark Учаcтник

    Репутация:
    0
    Пути работы современных процессоров неисповедимы, сыны мои! :)

    А если серьезно, то с их кэшами и распаралеливанием и предсказаниями ветвления не соскучишься.
    Вчера был случай, Добавил глобальный массив в программу, ни одно обращения к нему не было. Производительность упала на 2сек! (16%). Закомментировал, попробовал попереставлять разные глобальные массивы местами. производительность гуляет +- 0.5 сек
    Вот так то.
     
  7. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Я скоро включусь. Правда, по олимпийскому принципу - "главное участие" :)
     
  8. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    [c]
    ———————————————————————————————————————————————-
    | | Sempron 2295 | Проц 2 | Проц 3 |
    |——————————————————————————————————————————————-|
    | |Тест 1|Тест 2|Тест 3|Тест 4|Тест 1|Тест 2|Тест 3|Тест 4|Тест 1|Тест 2|Тест 3|Тест 4|
    |——————————————————————————————————————————————-|
    |WildCat | 8.42| 13.61| 72.53| 14.31| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх|
    |ProstoTak| 12.17| 18.03|106.44| 26.30| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх|
    |Shark | хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх|
    |WinPooh | хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх|
    ———————————————————————————————————————————————-
    [/c]
    Вот эту табличку и давайте заполнять потихоньку. :)
     
  9. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    Кот, вот. http://www.extrabrain.kiev.ua/001/chess3.zip
    Там и исходник и экзешник. Интересно посмотреть сравнение моего экзешника с тем что ты скомпилируешь.
     
  10. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
  11. ChessTerminator75
    Оффлайн

    ChessTerminator75 Андрей

    Репутация:
    0
    ProstoTak
    вставляй перед функциями хотя бы
    краткие комментарии о том что они делают :)
    и хорошо бы их как-нибудь друг от друга отделять
     
  12. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    Может тебе и ключ дать... где деньги лежат? :D
     
  13. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    Ну что ж, подправляю таблицу.
    [c]
    ———————————————————————————————————————————————-
    | | Sempron 2295 | Проц 2 | Проц 3 |
    |——————————————————————————————————————————————-|
    | |Тест 1|Тест 2|Тест 3|Тест 4|Тест 1|Тест 2|Тест 3|Тест 4|Тест 1|Тест 2|Тест 3|Тест 4|
    |——————————————————————————————————————————————-|
    |WildCat | 8.42| 13.61| 72.53| 14.31| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх|
    |ProstoTak| 9.81| 14.75| 92.88| 21.22| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх|
    |Shark | хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх|
    |WinPooh | хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх|
    ———————————————————————————————————————————————-
    [/c]
    Вот эту табличку и давайте заполнять потихоньку. :)
     
  14. krey
    Оффлайн

    krey Михаил Кройтор Staff Member Команда форума

    Репутация:
    1
    так я не понял, у кого пис... перфт самый короткий?!
     
  15. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    Пока только 2 генератора тестились, и Кот меня опережает по всем тестам. Смотри таблицу.
     
  16. Shark
    Оффлайн

    Shark Учаcтник

    Репутация:
    0
    Признаюсь, есть у меня версия, которая 8.10 perft(6) считает на P4-3000 [WildCat =9.45] :)
    Но уж до ума все доведу и завтра, наверное, выложу с исходниками.
     
  17. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    Нужно чтобы её Кот компильнул у себя и у себя же протестил, чтобы всё условия совпадали.
     
  18. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Делаю понемногу свою perft-считалку. Пока что в "псевдошахматах" (без проверки на шах и взятие короля) достиг скорости 8700 knps - у Простотаковской программы на моём компе чуть больше 9000, причём в легальном поиске. Работа продолжается.
     
  19. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Преодолел в "псевдошахматах" рубеж 10000 knps.
    Теперь буду добавлять проверку - производительность неизбежно просядет... Ну и ладно, главное что всё равно будет быстрее нынешней версии Греки чуть ли не в два раза.
     
  20. Shark
    Оффлайн

    Shark Учаcтник

    Репутация:
    0
    Если напишешь оптимально, ниже 8000 knps не упадет.
    Надеюсь, все эти соревнования дадут дополнительный толчок к появлению Greko 6 и WildCat 8 :D
     
  21. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    А я вот подумываю на JavaScript полноценный движок написать. Как считаете какого рейта можно достичь таким движком при условии реального времени конечно, а не сутками над ходом думать?
     
  22. Shark
    Оффлайн

    Shark Учаcтник

    Репутация:
    0
    Да, кстати, еще условие если кто надумает присоединится.
    Программа должна работать в 1 поток.
    Распаралеливать perf - нечестно :)
     
  23. Shark
    Оффлайн

    Shark Учаcтник

    Репутация:
    0
    Кстати, WinPooh, ты приводил такие данные
    GreKo 5.3 Athlon X2 4400+ 2.21 GHz
    perft 6 - 27.03 sec, 4404 knps

    Я когда собрал под VS 2005 c моими настройками, вышло
    GreKo 5.3 Athlon X2 3800+ 2.00 GHz
    perft 6 - 17.7 sec

    Выигрыш (с учетом процессора) почти в 2 раза.
    Может тебе компилятор сменить :)
    Могу выложить собраный мной Greko

    Правда на P4-3000 не такие впечатляющее результаты
    GreKo 5.3 Pentium 4 3000Mhz
    perft 6 - 20.06 sec
     
  24. Shark
    Оффлайн

    Shark Учаcтник

    Репутация:
    0
    Ну что ж, подправляю таблицу.
    Code:
    ———————————————————————————————————————————————-
    |         |      Sempron 2295         |          P4-3000          |           Проц 3          |
    |——————————————————————————————————————————————-|
    |         |Тест 1|Тест 2|Тест 3|Тест 4|Тест 1|Тест 2|Тест 3|Тест 4|Тест 1|Тест 2|Тест 3|Тест 4|
    |——————————————————————————————————————————————-|
    |WildCat  |  8.42| 13.61| 72.53| 14.31|  9.41| 17.11| 84.06| 17.31| хх.хх| хх.хх| хх.хх| хх.хх|
    |ProstoTak|  9.81| 14.75| 92.88| 21.22| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх|
    |Shark    | хх.хх| хх.хх| хх.хх| хх.хх|  8.34| 15.79| 81.42| 18.34| хх.хх| хх.хх| хх.хх| хх.хх|
    |WinPooh  | хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх| хх.хх|
    ———————————————————————————————————————————————-
    Вот почему мой генератор последний тест слил поразбираюсь сегодня вечером :)
    все остальное, как и обещал, - завтра
     
  25. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    Shark Так и мой же прогони на своём компе http://www.igorkorshunov.narod.ru/ProstoTak.rar
    [c]
    ———————————————————————————————————————————————-
    | | Sempron 2295 | P4-3000 | Проц 3 |
    |——————————————————————————————————————————————-|
    | |Тест 1|Тест 2|Тест 3|Тест 4|Тест 1|Тест 2|Тест 3|Тест 4|Тест 1|Тест 2|Тест 3|Тест 4|
    |——————————————————————————————————————————————-|
    |WildCat | 8.42| 13.61| 72.53| 14.31| 9.41| 17.11| 84.06| 17.31| —.—| —.—| —.—| —.—|
    |ProstoTak| 9.81| 14.75| 92.88| 21.22| —.—| —.—| —.—| —.—| —.—| —.—| —.—| —.—|
    |Shark | —.—| —.—| —.—| —.—| 8.34| 15.79| 81.42| 18.34| —.—| —.—| —.—| —.—|
    |WinPooh | —.—| —.—| —.—| —.—| —.—| —.—| —.—| —.—| —.—| —.—| —.—| —.—|
    ———————————————————————————————————————————————-
    [/c]
     
  26. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    Кот, компильни и протестируй вот это, плиз. http://www.extrabrain.kiev.ua/001/chess4.zip
    По идее я тебя обошёл в третьем тесте и улучшился в четвёртом.
     
  27. Shark
    Оффлайн

    Shark Учаcтник

    Репутация:
    0
    Итак.

    Пришел вчера домой и протестировал последнюю версию свой программы. Как и ожидал, на более короткоконвеерном AMD Athlon X2 3800+ , результаты были гораздо хуже. Удалось обогнать WC только в первом тесте. Генератор мой, кстати, принципиально без списков фигур (сканом по доске).

    Поработал еще над программой, удалось улучшить результаты, Но в 4м тесте так и не победил Игоря, видимо в нем списки все таки рулят. Ну, соответственно, на P4 все стало еще лучше.

    Сделал тесты c выгрузкой из пямяти всех программ.
    Вот данные для обновления таблицы (У ProstoTak лучше получается обновлять таблицу :) )

    Code:
    P4-3000
         Sh     WC     PT
    1)  8.01   9.30  10.91
    2) 12.75  16.94  16.17
    3) 77.39  83.03  95.82
    4) 17.98  17.14  24.73
    
    Athlon X2 3800+ (справочно, не для таблицы)
         Sh     WC     PT
    1)  9.33   9.64  12.13
    2) 14.59  15.65  18.17
    3) 78.50  84.20 111.36
    4) 18.86  17.02  26.47
    ProstoTak, Как видишь, твой код тоже тяготеет к длинному конвееру.
    В качестве 3го процессора нам нужен Core 2 Duo

    Ну и, наконец, мои файлы
    http://dev.enterra-inc.com/perft/shark_perft.zip

    PS.
    Буду благодарен, если Игорь попробует мою программу Интелом скомпилировать.
     
  28. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    [c]
    ———————————————————————————————————————————————-
    | | Sempron 2295 | P4-3000 | Проц 3 |
    |——————————————————————————————————————————————-|
    | |Тест 1|Тест 2|Тест 3|Тест 4|Тест 1|Тест 2|Тест 3|Тест 4|Тест 1|Тест 2|Тест 3|Тест 4|
    |——————————————————————————————————————————————-|
    |WildCat | 8.42| 13.61| 72.53| 14.31| 9.30| 16.94| 83.03| 17.14| —.—| —.—| —.—| —.—|
    |ProstoTak| 9.81| 14.75| 92.88| 21.22| 10.91| 16.17| 95.82| 24.73| —.—| —.—| —.—| —.—|
    |Shark | —.—| —.—| —.—| —.—| 8.01| 12.75| 77.39| 17.98| —.—| —.—| —.—| —.—|
    |WinPooh | —.—| —.—| —.—| —.—| —.—| —.—| —.—| —.—| —.—| —.—| —.—| —.—|
    ———————————————————————————————————————————————-
    [/c]
     
  29. Shark
    Оффлайн

    Shark Учаcтник

    Репутация:
    0
  30. WinPooh
    Оффлайн

    WinPooh В.М. Staff Member

    Репутация:
    95
    Я, пожалуй, пока возьму перерыв. Что-то нынешняя схема с проверками ходов слишком сильно тормозит мою программу, а под другую надо кое-что переделывать в структурах данных. И времени на это совершенно нет. Так что меня пока из таблицы уберите, может быть ближе к осени найду время для котоборства...
     
  31. Shark
    Оффлайн

    Shark Учаcтник

    Репутация:
    0
    Я в шоке :rolleyes:

    Вот Эта программа http://home.hccnet.nl/h.g.muller/perft.c

    От известно автора micro-Max - считает perft
    т.е Как у нас, но не делает ходы последнего уровня.
    На P4-3000 ee результат потрясает!!!!
    1) 1.56
    2) 2.57
    3) 26.25
    4) 3.78

    Моя программа в таком режиме дает всего лишь
    1) 5.70
    2) 8.78
    3) 61.28
    4) 14.06

    Вот кто настоящий МАНЬЯК!!!
    Все учимся у него :D
     
  32. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0
    Новые результаты.
    ProstoTak:
    9.58
    14.13
    81.91
    19.73

    Shark (VS2005 __cdecl):
    8.17
    12.31
    66.11
    14.80
     
  33. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    Спасибо за компиляцию и тестирование, но дай мне мою версию откомпилированную интелом и весрию Шарка. Ты ведь и Шарка компилил?
    [c]
    ———————————————————————————————————————————————-
    | | Sempron 2295 | P4-3000 | Проц 3 |
    |——————————————————————————————————————————————-|
    | |Тест 1|Тест 2|Тест 3|Тест 4|Тест 1|Тест 2|Тест 3|Тест 4|Тест 1|Тест 2|Тест 3|Тест 4|
    |——————————————————————————————————————————————-|
    |WildCat | 8.42| 13.61| 72.53| 14.31| 9.30| 16.94| 83.03| 17.14| —.—| —.—| —.—| —.—|
    |ProstoTak| 9.58| 14.13| 81.91| 19.73| 10.91| 16.17| 95.82| 24.73| —.—| —.—| —.—| —.—|
    |Shark | 8.17| 12.31| 66.11| 14.80| 8.01| 12.75| 77.39| 17.98| —.—| —.—| —.—| —.—|
    ———————————————————————————————————————————————-
    [/c]
     
  34. ProstoTak
    Оффлайн

    ProstoTak Старожил

    Репутация:
    1
    У меня при такой схеме скорость возрастает на примерно 25-30%, собственно как и у тебя.
     
  35. WildCat
    Оффлайн

    WildCat Коршунов Игорь Staff Member

    Репутация:
    0