Forchess - форум о заочных шахматах  

Вернуться   Forchess - форум о заочных шахматах > Заочные турниры и партии > Шахматные программы и движки

Ответ
 
Опции темы Опции просмотра
Старый 07.08.2020, 22:05   #151
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Maratka
Желаю, но ценность VS не только в компиляторе, но и в привычной оболочке, я не зная С++ от слова "совсем", но работая с Vb.net, открыл исходники SF, и был там как дома...

Но в целом - да, если есть компилятор получше - чего бы и нет...

Тут хотелось бы что еще - тестов от владельцев Core (ибо этот вот мой бинарь - это из-под компилятора Intel), и на FX там, или может быть и Ryzen (вне зависимости от поколения) - он вероятно все же не генерит самый быстрый код.
Даже на Интелах скорость не будет выше.
В исходниках есть хак под MinGW компилятор...
ChessMan вне форума   Ответить с цитированием
Старый 07.08.2020, 23:46   #152
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Тем временем получилось сделать SF_NNUE ещё быстрее:



К сожалению, это работает только для AVX2 сборок (и выше).

https://www.mirrored.to/files/19MSBGJV/
ChessMan вне форума   Ответить с цитированием
Старый 08.08.2020, 08:52   #153
Rom77
Мастер
 
Аватар для Rom77
 
Регистрация: 11.08.2017
Адрес: Киров
Сообщений: 912
Сказал(а) спасибо: 888
Поблагодарили 1,197 раз(а) в 632 сообщениях
Репутация: 132
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Народ, вы в курсе, что недавний "гибридный" патч в официальном Стоке подключает обычную оценку Стока вместо нейросетевой в позициях с большим перевесом одной из сторон? Это сильно влияет на скорость в компиляциях с аброка. И соответственно, должно сильно влиять на бенч.
Rom77 вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
ChessMan (08.08.2020), Maratka (08.08.2020), Владимир001 (08.08.2020)
Старый 08.08.2020, 18:29   #154
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Rom77
Народ, вы в курсе, что недавний "гибридный" патч в официальном Стоке подключает обычную оценку Стока вместо нейросетевой в позициях с большим перевесом одной из сторон? Это сильно влияет на скорость в компиляциях с аброка. И соответственно, должно сильно влиять на бенч.
Подскажите, какой конкретно коммит?
ChessMan вне форума   Ответить с цитированием
Старый 08.08.2020, 18:39   #155
Rom77
Мастер
 
Аватар для Rom77
 
Регистрация: 11.08.2017
Адрес: Киров
Сообщений: 912
Сказал(а) спасибо: 888
Поблагодарили 1,197 раз(а) в 632 сообщениях
Репутация: 132
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от ChessMan
Подскажите, какой конкретно коммит?
Первый же после интеграции:
https://github.com/official-stockfis...fish/pull/2916

Возможно какие-то из последующих коммитов тоже влияют.
Rom77 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
ChessMan (08.08.2020)
Старый 08.08.2020, 18:44   #156
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от ChessMan
Ваша сборка

Моя сборка


Еще раз можете проверить?
Ваши сборки те же, моя -
https://yadi.sk/d/X3m-4tKiiEeUBQ

Нашел в общем, что можно подкрутить...
Maratka вне форума   Ответить с цитированием
Старый 08.08.2020, 19:38   #157
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Maratka
Еще раз можете проверить?
Ваши сборки те же, моя -
https://yadi.sk/d/X3m-4tKiiEeUBQ

Нашел в общем, что можно подкрутить...
Заметно быстрее. Правда исходники немного другие...

ChessMan вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Maratka (08.08.2020)
Старый 08.08.2020, 19:51   #158
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от ChessMan
Заметно быстрее. Правда исходники немного другие...
Исходники - те что были последними часа три тому, чего уж из старья собирать, коль столько патчей вышло!
Maratka вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
ChessMan (08.08.2020)
Старый 08.08.2020, 19:56   #159
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Maratka
Исходники - те что были последними часа три тому, чего уж из старья собирать, коль столько патчей вышло!
Вот движки: https://github.com/JavaMast/EXE/tree/SF_NNUE_SSE42
думаю скачаете без проблем
ChessMan вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
byan_mivv (08.08.2020)
Старый 08.08.2020, 20:05   #160
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Maratka, залил на ГитХаб ещё одну сборку (под FX).
Проверьте какая у Вас быстрее

ChessMan вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
byan_mivv (08.08.2020)
Старый 08.08.2020, 21:34   #161
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Все же хотелось бы на Intel'е это дело проверить..
Ну не обязан их компилятор собирать максимально быстрые бинари для AMD!
Maratka вне форума   Ответить с цитированием
Старый 08.08.2020, 21:46   #162
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от ChessMan
Maratka, залил на ГитХаб ещё одну сборку (под FX).
Проверьте какая у Вас быстрее
Сделал по-культурному

Maratka вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
ChessMan (08.08.2020)
Старый 08.08.2020, 21:54   #163
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Maratka
Сделал по-культурному
Залил на ГитХаб очередную сборку. Проверите?
У меня она конечно медленнее... но вдруг у Вас быстрее будет?)

ChessMan вне форума   Ответить с цитированием
Старый 08.08.2020, 22:01   #164
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

А где ее брать?
____
Все, сообразил!
Maratka вне форума   Ответить с цитированием
Старый 08.08.2020, 22:02   #165
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Maratka
А где ее брать?
На ГитХабе... по старой ссылке

https://github.com/JavaMast/EXE/tree/SF_NNUE_SSE42
ChessMan вне форума   Ответить с цитированием
Старый 08.08.2020, 22:10   #166
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Можно сказать, что равны!

Maratka вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
ChessMan (08.08.2020)
Старый 08.08.2020, 22:16   #167
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Я вот думаю, как тут аброковскую сборку протестировать....
У них же сеть по-умолчанию выключена!
Maratka вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Владимир001 (08.08.2020)
Старый 08.08.2020, 22:17   #168
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Maratka
Я вот думаю, как тут аброковскую сборку протестировать....
У них же сеть по-умолчанию выключена!
В БилдТестере никак не получится...
ChessMan вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Владимир001 (08.08.2020)
Старый 09.08.2020, 14:33   #169
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Кстати интересный ворос: а под какую оценку теперь SF нужно профилировать для лучшей скорости?

Если под сетевую, то просядет ручная, и наоборот.

Кто-то смотрел FEN'ы в бенчмарке: там соблюдается условие, чтобы SF достаточно часто переходил на ручную оценку?

Или может быть есть смысл добавить FEN'ов?

p.s. FEN'ы по идее можно и не смотреть, просто отпрофилировать с NN включенным по умолчанию и выключенным, и сравнить скорость версии с ручной оценкой.
Насколько я представляю, если FEN'ов нужных мало, то скорость заметно просядет.
Maratka вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Alex_Lk (10.08.2020)
Старый 09.08.2020, 14:45   #170
Vizvezdenec
Гроссмейстер
 
Аватар для Vizvezdenec
 
Регистрация: 30.05.2018
Адрес: Севастополь
Сообщений: 4,022
Сказал(а) спасибо: 56
Поблагодарили 5,294 раз(а) в 2,673 сообщениях
Репутация: 216
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Согласно vondele, у нас примерно 30% позиций оцениваются старой оценкой, 70% - NNUE
https://github.com/Vizvezdenec/Stock...5c766710667e97
Так что лучше оптимизировать под последнюю, имхо, там и оптимизация сама больше даст.
__________________

Развернуть для просмотра

[свернуть]
Vizvezdenec вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Alex_Lk (10.08.2020), Maratka (09.08.2020)
Старый 17.08.2020, 15:06   #171
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Мне до сих пор не понятно почему моя AVX2 компиляция заметно быстрее аброковской.
Особенно с
o["Use NNUE"] << Option(true, on_use_NNUE); (движок №3)



===============
Есть какие-то соображения на эту тему?
ChessMan вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Владимир001 (17.08.2020)
Старый 17.08.2020, 15:46   #172
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Ну так компиляторы то сильно разные, возможно то, что используется на Аброке не сильно умеет в AVX2, но под предыдущие наборы уже наловчился, вот и бонус!

Что если Вы у себя с этим же компилятором попробуете? Если окажется, что разница в 1-2% (т.е. по сути - погрешность) - вот и причина!

Ну и конечно нюансы профилирования... Хотите мои сборки прогнать, вида "непрофилированная", и два варианта "профилированных"?
Я у себя вижу в районе 2% от одного только способа профилирования, хотя в целом MSVC дает код так себе, на уровне аброка...

Мне лично было бы интересно, что будет на ZEN2
Maratka вне форума   Ответить с цитированием
Старый 17.08.2020, 15:48   #173
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Maratka
Ну так компиляторы то сильно разные, возможно то, что используется на Аброке не сильно умеет в AVX2, но под предыдущие наборы уже наловчился, вот и бонус!

Что если Вы у себя с этим же компилятором попробуете? Если окажется, что разница в 1-2% (т.е. по сути - погрешность) - вот и причина!
Несколько коммитов назад скорость была почти одинаковая.
К тому же, у меня быстрее не только AVX2 сборка

ChessMan вне форума   Ответить с цитированием
Старый 17.08.2020, 15:51   #174
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Я выше сообщение чуть дополнил...
Maratka вне форума   Ответить с цитированием
Старый 17.08.2020, 15:52   #175
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Maratka
Я выше сообщение чуть дополнил...
Давайте ссылку
ChessMan вне форума   Ответить с цитированием
Старый 17.08.2020, 16:12   #176
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Минут через десять - двадцать.
Только просьба: запустите тест не в пять кругов, а хотя бы в 15, лучше - 30, так заметно точнее получается.

Ну и Вашу сборку тоже... для сравнения - было бы полезно.
Хорошо бы еще и аброковскую, но это как я понимаю не очень просто.
Maratka вне форума   Ответить с цитированием
Старый 17.08.2020, 16:17   #177
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Maratka
Хорошо бы еще и аброковскую, но это как я понимаю не очень просто.
Почему нет?
Просто рядом положить две сети nn.nnue и nn-82215d0fd0df.nnue
ChessMan вне форума   Ответить с цитированием
Старый 17.08.2020, 16:18   #178
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

А..
Код:
o["Use NNUE"]              << Option(false, on_use_NNUE);
- опция по-умолчанию - это как?
Maratka вне форума   Ответить с цитированием
Старый 17.08.2020, 16:22   #179
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Maratka
А..
Код:
o["Use NNUE"]              << Option(false, on_use_NNUE);
- опция по-умолчанию - это как?
Так я могу собрать тоже с o["Use NNUE"] << Option(false, on_use_NNUE);
ChessMan вне форума   Ответить с цитированием
Старый 17.08.2020, 16:28   #180
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,951 раз(а) в 4,245 сообщениях
Репутация: 253
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Так собрать то нужно одинаково!
Я собираю так:
o["Use NNUE"] << Option(true, on_use_NNUE);
o["EvalFile"] << Option("./Eval/nn.nnue", on_eval_file);

Путь понятно некритичен, можно просто создать каталог для "меня" или кинуть сеть в кучу у Вас, но вот true/false у "Use NNUE" должно все же как-то влиять, если конечно нет где-то в недрах движка хака, который игнорит эту опцию при определенных условиях (и одно из условий мы все знаем), но что если их больше?

Потому- либо одинаковый исходник, либо только мои сборки между собой.
Это не значит, что я настаиваю именно на моих, и я готов собрать и чисто "аброковский" вариант, но мне кажется, что для современного SF Use NNUE=false - это некорректное использование движка в принципе, и сборка с профилированием - в частности.
Maratka вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 4 (пользователей: 0 , гостей: 4)
 

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 04:13. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Рейтинг@Mail.ru