| Шахматное программирование Chess Programming. Вы уже написали свою шахматную программу? Или только-только приступили к её разработке? Добро пожаловать в данный раздел! Делимся советами, помогаем новичкам в шахматном программировании |
![]() |
| Опции темы |
|
|
#1 |
|
Регистрация: 15.03.2010
Сообщений: 1,874
Сказал(а) спасибо: 2,230
Поблагодарили 4,925 раз(а) в 1,366 сообщениях
|
![]() Заготовка для движка (версия 0.1): http://sourceforge.net/projects/gullchess/. Пока играет где-то на 2600 - 2700 CCRL и поддерживает только контроли вида n'+0". Сделал две версии: 01a - генерация ходов с помощью Magic и массивов атак. 01b - просто Magic. На AMD K8 версия 01a быстрее на 10-15%. У кого Core 2, i7 и Phenom, вы не могли бы сравнить скорость этих версий? По идее, 01a должна быстро работать на компах с большим кэшем и медленной оперативной памятью, 01b - наоборот. Benchmark работает так: запускаете в консоли движок, пишете "bench 11". Программа работает несколько десятков секунд и выдает nps. Алгоритмы: -Хэш в ФВ -Пешечный хэш -Шахи в ФВ -SEE -Нулевой ход -История, Killer -LMR -Razoring -Продления шахов P.S. Весь код одним файлом, потому что 1) Так он быстрее грузится и компилируется. 2) Это облегчает навигацию по коду, если использовать полезную фичу Visual Studio: Клик правой кнопкой мыши->Outlining->Collapse to Definitions. Тесты Чайки (Gull) Последний раз редактировалось ThinkingALot; 17.04.2014 в 19:32. |
|
|
|
| 57 пользователя(ей) сказали cпасибо: |
|
|
#2 |
|
Регистрация: 15.03.2010
Сообщений: 1,712
Сказал(а) спасибо: 3,475
Поблагодарили 5,816 раз(а) в 1,744 сообщениях
Страна:
|
У меня на q6600 немного быстрее 01a.
|
|
|
|
| Пользователь сказал cпасибо: | ThinkingALot (08.06.2010) |
|
|
#3 |
|
Регистрация: 14.03.2010
Сообщений: 3,288
Сказал(а) спасибо: 3,524
Поблагодарили 7,160 раз(а) в 2,088 сообщениях
Страна:
|
А поподробнее можно про новый движок? Чем он отличается от остальных? Какие специфические особенности и уникальные идеи? Какие планы и перспективы?
|
|
|
|
|
|
#4 |
|
Заблокирован
Регистрация: 14.03.2010
Возраст: 34
Сообщений: 407
Сказал(а) спасибо: 119
Поблагодарили 448 раз(а) в 295 сообщениях
Страна:
|
.cpp тоже в папку с движками класть?
|
|
|
|
|
|
#5 |
|
Регистрация: 10.03.2010
Возраст: 42
Сообщений: 3,159
Сказал(а) спасибо: 1,011
Поблагодарили 7,149 раз(а) в 2,644 сообщениях
Страна:
|
|
|
|
|
|
|
#6 |
|
Заблокирован
Регистрация: 14.03.2010
Возраст: 34
Сообщений: 407
Сказал(а) спасибо: 119
Поблагодарили 448 раз(а) в 295 сообщениях
Страна:
|
|
|
|
|
|
|
#7 |
|
Регистрация: 10.03.2010
Возраст: 42
Сообщений: 3,159
Сказал(а) спасибо: 1,011
Поблагодарили 7,149 раз(а) в 2,644 сообщениях
Страна:
|
|
|
|
|
| Пользователь сказал cпасибо: | i7 (08.06.2010) |
|
|
#8 |
|
Регистрация: 10.05.2010
Возраст: 56
Сообщений: 235
Сказал(а) спасибо: 6
Поблагодарили 1,487 раз(а) в 241 сообщениях
Страна:
|
На моем старом пне-4 версия 01а на 10% быстрее.
Неожиданный результат. Циклы в do_move/undo_move все-таки производят страшное впечатление. Еще интересно выяснить, где массивы атак приносят больший выигрыш в скорости - в генераторах ходов или ОФ? И вообще, какова динамика скорости при: 1) Добавлении атак в do_move/undo_move: на сколько падает скорость. 2) Изменении генерации ходов: на сколько растет. 3) Изменении расчета мобильности в ОФ: на сколько еще быстрее. |
|
|
|
| Пользователь сказал cпасибо: | ThinkingALot (08.06.2010) |
|
|
#9 | |
|
Регистрация: 15.03.2010
Сообщений: 1,874
Сказал(а) спасибо: 2,230
Поблагодарили 4,925 раз(а) в 1,366 сообщениях
|
Цитата:
Код:
Gull 0.1a x64: CS:EIP Symbol + Offset 64-bit Timer samples 0x13f1e0000 evaluate 1 23.87 0x13f1e0f80 do_move 1 16.39 0x13f1e2a50 q_search 1 13.25 0x13f1d1000 do_capture 1 9.9 0x13f1dc040 see 1 5.99 0x13f1e3af0 search 1 4.33 0x13f1de240 gen_captures 1 3.4 0x13f1dc8b0 gen_good_checks 1 3.21 0x13f1da710 hash_low 1 3.13 0x13f1da850 hash_high 1 3.04 0x13f1dd5f0 gen_evasions 1 2.8 0x13f1e2760 q_evasion 1 2.63 0x13f1dad20 undo_move 1 2.54 0x13f1dbec0 get_attacks 1 2.46 0x13f1db880 eval_pawns 1 1.3 0x13f1ddc90 gen_quiet_moves 1 1.03 0x13f1d1970 do_null 1 0.33 0x13f1da980 is_legal 1 0.32 0x13f1e3810 search_evasion 1 0.03 0x13f1e3130 qpv_search 1 0.02 0x13f1d6cd4 _isatty 1 0.01 0x13f1e4510 pv_search 1 0.01 Gull 0.1b x64: CS:EIP Symbol + Offset 64-bit Timer samples 0x13fbc0630 evaluate 1 32.63 0x13fbc2e70 q_search 1 13.1 0x13fbc1820 do_move 1 8.56 0x13fbbbb90 get_attacks 1 6.91 0x13fbb1000 do_capture 1 5.61 0x13fbbbfb0 see 1 4.98 0x13fbc3e50 search 1 3.77 0x13fbbe820 gen_captures 1 3.56 0x13fbba4a0 hash_high 1 3.23 0x13fbba370 hash_low 1 3.18 0x13fbbc820 gen_good_checks 1 3.1 0x13fbbd850 gen_evasions 1 3.02 0x13fbc2ba0 q_evasion 1 2.98 0x13fbba9f0 undo_move 1 2.43 0x13fbbb550 eval_pawns 1 1.29 0x13fbbe110 gen_quiet_moves 1 1.01 0x13fbb62d0 memset 1 0.25 0x13fbba5d0 is_legal 1 0.25 0x13fbc3b90 search_evasion 1 0.04 0x13fbb1660 do_null 1 0.03 0x13fbb313c _write_nolock 1 0.01 0x13fbba290 check_time 1 0.01 0x13fbc34f0 qpv_search 1 0.01 0x13fbc4860 pv_search 1 0.01 Помимо оценочной функции в 0.1b чуть хуже работает prefetch, так как do_move выполняется очень быстро и информация из памяти, судя по всему, просто не успевает загрузиться. |
|
|
|
|
| Пользователь сказал cпасибо: | demon (21.10.2013) |
|
|
#10 | |
|
Регистрация: 15.03.2010
Сообщений: 1,874
Сказал(а) спасибо: 2,230
Поблагодарили 4,925 раз(а) в 1,366 сообщениях
|
Цитата:
Буду улучшать, пока не надоест. Лицензия public domain, поэтому кто угодно может делать с исходным кодом все, что угодно. Выложил Gull 0.2. По минуте против Стрелки (32-bit) x64 версия сыграла +13 =4 -33. Всего 8% ничьих . Выдаваемые оценки очень сильно отличаются, поэтому в оценочной функции, возможно, все еще есть баги...Добавлено через 8 минут Любопытно. Я ожидал, что 0.1b может ускориться (по сравнению с 0.1a) на Core i7 (там маленький кэш второго уровня), а вот Core 2 - это идеальная архитектура для 0.1a... Последний раз редактировалось ThinkingALot; 08.06.2010 в 14:07. |
|
|
|
|
|
|
#12 | |
|
Регистрация: 14.03.2010
Сообщений: 175
Сказал(а) спасибо: 5
Поблагодарили 202 раз(а) в 85 сообщениях
|
Цитата:
|
|
|
|
|
|
|
#13 |
|
Регистрация: 11.03.2010
Адрес: Москва
Возраст: 32
Сообщений: 1,097
Сказал(а) спасибо: 1,002
Поблагодарили 1,224 раз(а) в 630 сообщениях
|
Вот некоторым людям только дай волю покритиковать....
|
|
|
|
|
|
#14 |
|
Регистрация: 28.04.2010
Сообщений: 49
Сказал(а) спасибо: 13
Поблагодарили 52 раз(а) в 34 сообщениях
Страна:
|
|
|
|
|
|
|
#15 | ||
|
Регистрация: 15.03.2010
Сообщений: 1,874
Сказал(а) спасибо: 2,230
Поблагодарили 4,925 раз(а) в 1,366 сообщениях
|
Цитата:
Добавлено через 6 минут Цитата:
|
||
|
|
|
|
|
#16 |
|
Заблокирован
Регистрация: 14.03.2010
Возраст: 34
Сообщений: 407
Сказал(а) спасибо: 119
Поблагодарили 448 раз(а) в 295 сообщениях
Страна:
|
|
|
|
|
|
|
#17 |
|
Регистрация: 15.03.2010
Адрес: Санкт-Петербург
Возраст: 44
Сообщений: 4,425
Сказал(а) спасибо: 481
Поблагодарили 9,287 раз(а) в 4,166 сообщениях
Страна:
|
Сразу видно кто воспитывался на старых, добрых советских фильмах.
|
|
|
|
| Пользователь сказал cпасибо: | Антониус (10.11.2013) |
|
|
#18 |
|
Регистрация: 01.04.2010
Сообщений: 239
Сказал(а) спасибо: 94
Поблагодарили 179 раз(а) в 113 сообщениях
Страна:
|
Потом люди будут говорить, что нет оригинальности, что русские просто перевили имя движка Gaviota и сделали себе чайку.
|
|
|
|
|
|
#19 |
|
Регистрация: 15.03.2010
Сообщений: 1,874
Сказал(а) спасибо: 2,230
Поблагодарили 4,925 раз(а) в 1,366 сообщениях
|
|
|
|
|
|
|
#20 |
|
Регистрация: 15.04.2010
Адрес: Тверь, пос. Химинститута
Возраст: 33
Сообщений: 56
Сказал(а) спасибо: 245
Поблагодарили 141 раз(а) в 34 сообщениях
Страна:
|
|
|
|
|
| Пользователь сказал cпасибо: | Russian Gamer (11.01.2018) |