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

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

Ответ
 
Опции темы Опции просмотра
Старый 23.02.2020, 10:35   #91
Rom77
Мастер
 
Аватар для Rom77
 
Регистрация: 11.08.2017
Адрес: Киров
Сообщений: 912
Сказал(а) спасибо: 888
Поблагодарили 1,197 раз(а) в 632 сообщениях
Репутация: 132
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Омегазеро
Но большинство людей в компьютерных шахматах намеренно игнорируют эту проблему, а возможно, сознательно обманывают
Проблема сбалансированного дебютного набора хорошо известна и большинство тестеров так или иначе пытаются её решить. Не вижу смысла искать здесь какого-либо злого умысла (в большинстве случаев).

В общем случае проблема равномерности дебютов решается достаточным количеством партий и случайным чередованием дебютных вариантов. Понятно, что сравнение тестов Стокфиша на 2-х и 8-х ходовых дебютных наборах в такой расклад не вписывается. Сравнения разброса результатов должны проводиться в одинаковых условиях или максимально приближенных к таковым.

Цитата: Сообщение от Омегазеро
Мой ответ: она не стремится к нулю и может быть очень велика. Да, не бесконечность, как в случае с детерминированными движками и двумя дебютами, но число все равно большое
В таком случае любые тесты были бы совершенно бессмысленны. Если уж ошибка от дебютов превышает тот диапазон, которые дают обычные программы для расчета рейтингов, то если (как вы ранее писали) стандартная ошибка ещё в разы меньше, то о чем вообще можно говорить?
Rom77 вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
Maratka (23.02.2020), Viktor (23.02.2020), Владимир001 (23.02.2020)
Старый 23.02.2020, 12:22   #92
Омегазеро
Гроссмейстер
 
Аватар для Омегазеро
 
Регистрация: 20.01.2019
Сообщений: 1,067
Сказал(а) спасибо: 2
Поблагодарили 701 раз(а) в 343 сообщениях
Репутация: 92
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Rom77
Правильно ли я понимаю, что вы предлагаете разделить +/- 4,96 на корень из числа партий, для примера ChessMan'а?
Да, именно так!
Если бы Карлсен с Накамурой сыграли между собой 4800 партий, ошибка их рейтинга была бы именно такова - порядка 0.1 Эло

Но беда в том, что программы не люди. Они играют слишком детерминированно. У них нет зависимости от настроения, самочувствия, они не могут совершать ошибки типа Крамника, который не увидел мат в два хода. Слишком низок элемент случайности, чтобы нормально работала система Эло, построенная на случайностях

Поэтому модель Эло, взятая у людей, для расчета рейтинга движков мало годится. Там появляется дополнительная ошибка, которая гораздо больше статистической стандартной ошибки

И существование этой ошибки доказывается многолетней практикой тестирования. Когда несколько патчей в сумме показывают 30 Эло, а реальности там 10, а то и -2

Ради смеха сложите рост Эло всех патчей Стокфиша за год и сравните с официальным итоговым ростом
Омегазеро вне форума   Ответить с цитированием
Старый 23.02.2020, 12:25   #93
Омегазеро
Гроссмейстер
 
Аватар для Омегазеро
 
Регистрация: 20.01.2019
Сообщений: 1,067
Сказал(а) спасибо: 2
Поблагодарили 701 раз(а) в 343 сообщениях
Репутация: 92
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Rom77
В таком случае любые тесты были бы совершенно бессмысленны
Не надо утрировать!
Если ошибка, например, 20 Эло, то рост в 50 Эло тесты могут уверенно зафиксировать
Омегазеро вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Владимир001 (23.02.2020)
Старый 23.02.2020, 12:45   #94
Омегазеро
Гроссмейстер
 
Аватар для Омегазеро
 
Регистрация: 20.01.2019
Сообщений: 1,067
Сказал(а) спасибо: 2
Поблагодарили 701 раз(а) в 343 сообщениях
Репутация: 92
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Rom77
Проблема сбалансированного дебютного набора хорошо известна и большинство тестеров так или иначе пытаются
А вы понимаете, что оценка сбалансированности также имеет статистическую ошибку и ее нужно добавлять в формулу расчета Эло?

А то получается, что у вас все дебютные наборы априори сбалансированные с нулевой ошибкой!

Вы сами понимаете, что это чушь? Тогда почему этот вопрос замалчивается?

Более того, я вам сообщу страшную вещь. Дебютный набор, хорошо сбалансированный для одной пары движков (или патчей) может оказаться плохо сбалансированным для другой пары

То есть даже если вы после долгих тестов сильно уменьшите ошибку сбалансированности для одного набора, она может резко подскочить при дальнейшем тестировании с другими патчами или движками
Омегазеро вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Владимир001 (23.02.2020)
Старый 23.02.2020, 12:47   #95
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,833
Сказал(а) спасибо: 3,296
Поблагодарили 5,927 раз(а) в 4,236 сообщениях
Репутация: 250
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Омегазеро
И существование этой ошибки доказывается многолетней практикой тестирования. Когда несколько патчей в сумме показывают 30 Эло, а реальности там 10, а то и -2
Ради смеха сложите рост Эло всех патчей Стокфиша за год и сравните с официальным итоговым ростом
Хватит уже чушь писать!
Прекрасно известно, по какой причине это происходило. Сейчас рост наверняка будет более приближенным к сумме пачтей, но в любом случае в идеале никогда не сложится, т.к. патч против мастера играется до достижения приемлемого уровня погрешности измерения, т.е. какой-то там жирный патч вполне может пройти и на 5 тыс. партий, а регресс-тест против предыдущего релиза - на фиксированное количество партий, 60 тыс. на сегодня.

И уж коль Вам так интересно обсудить сложение патчей SF, не потрудитесь ли заодно объяснить, откуда у LZ самоеэло 4-5 тыс, если не больше?
Maratka вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Владимир001 (23.02.2020)
Старый 23.02.2020, 13:11   #96
svoitsl
Гроссмейстер
 
Аватар для svoitsl
 
Регистрация: 19.04.2017
Сообщений: 4,710
Сказал(а) спасибо: 1,202
Поблагодарили 2,834 раз(а) в 1,876 сообщениях
Репутация: 159
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Просто при сложении матожиданий, ошибки тоже нужно складывать, результат будет больше соответствовать реальности
svoitsl вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
Maratka (23.02.2020), Rom77 (23.02.2020), Владимир001 (23.02.2020)
Старый 23.02.2020, 14:35   #97
Rom77
Мастер
 
Аватар для Rom77
 
Регистрация: 11.08.2017
Адрес: Киров
Сообщений: 912
Сказал(а) спасибо: 888
Поблагодарили 1,197 раз(а) в 632 сообщениях
Репутация: 132
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Омегазеро
Да, именно так!
То есть 0.07. Но с таким интервалом существует одна проблема. Кто бы это ни был, человек или машина, всего двух-трех партий выигранных в ряд одной из сторон достаточно, чтобы интервал был превышен, даже если такие партии будут чередоваться с ничьими. А это вполне рядовая ситуация. Так что с какой стороны не погляди, такое значение никак не катит на оценку ошибки.

Цитата: Сообщение от Омегазеро
И существование этой ошибки доказывается многолетней практикой тестирования. Когда несколько патчей в сумме показывают 30 Эло, а реальности там 10, а то и -2
Ради смеха сложите рост Эло всех патчей Стокфиша за год и сравните с официальным итоговым ростом
LLR нельзя складывать. Вам это уже не раз писали.

Цитата: Сообщение от Омегазеро
Не надо утрировать!
Если ошибка, например, 20 Эло, то рост в 50 Эло тесты могут уверенно зафиксировать
Да где уж тут утрирование. Если уж о десятках тысяч партий вы пишете в том духе, что интервал должен быть значительно больше расчетного, то в сотне партий он должен просто зашкаливать.

Цитата: Сообщение от Омегазеро
А то получается, что у вас все дебютные наборы априори сбалансированные с нулевой ошибкой!
Вы сами понимаете, что это чушь? Тогда почему этот вопрос замалчивается?
Никто не говорит, что ошибка нулевая, и проблему пытаются решать, о чем я уже писал выше.

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

Цитата: Сообщение от svoitsl
Просто при сложении матожиданий, ошибки тоже нужно складывать, результат будет больше соответствовать реальности
В свое время Владимир Медведев (WinPooh) на форуме Каспаровчесс, мне объяснил, что нужно брать квадратный корень от ряда погрешностей. Только сейчас уже не помню, то ли из суммы погрешностей, то ли сумму квадратных корней из погрешностей.
Rom77 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Владимир001 (23.02.2020)
Старый 23.02.2020, 15:12   #99
svoitsl
Гроссмейстер
 
Аватар для svoitsl
 
Регистрация: 19.04.2017
Сообщений: 4,710
Сказал(а) спасибо: 1,202
Поблагодарили 2,834 раз(а) в 1,876 сообщениях
Репутация: 159
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

скорее всего из суммы погрешностей
svoitsl вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Rom77 (23.02.2020), Владимир001 (23.02.2020)
Старый 23.02.2020, 16:43   #100
Viktor
Эксперт
 
Аватар для Viktor
 
Регистрация: 07.06.2016
Сообщений: 5,876
Сказал(а) спасибо: 13,803
Поблагодарили 12,618 раз(а) в 4,488 сообщениях
Репутация: 723
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Не это:
Доверительный интервал (Погрешность) зависит от заданной достоверности =
600/корень квадратный из количества партий.
Viktor вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
4el0vek (23.02.2020), АЛЕКСЕЙ1976 (09.06.2020), Владимир001 (24.02.2020)
Старый 03.03.2020, 23:31   #101
Омегазеро
Гроссмейстер
 
Аватар для Омегазеро
 
Регистрация: 20.01.2019
Сообщений: 1,067
Сказал(а) спасибо: 2
Поблагодарили 701 раз(а) в 343 сообщениях
Репутация: 92
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Rom77
То есть 0.07. Но с таким интервалом существует одна проблема. Кто бы это ни был, человек или машина, всего двух-трех партий выигранных в ряд одной из сторон достаточно, чтобы интервал был превышен, даже если такие партии будут чередоваться с ничьими. А это вполне рядовая ситуация. Так что с какой стороны не погляди, такое значение никак не катит на оценку ошибки
Вполне катит, так как
1) ошибка имеет 66%-ю вероятность, то есть в 34% случаев Эло может выйти за ее пределы
2) даже две "сверхнормативные" победы подряд на фоне 5 тысяч партий мало повлияют на рейтинг

Мне кажется, что вы опять путаете мгновенный рейтинг с рейтингом по итогам матча. Как раз мгновенный рейтинг сильно колеблется и вот эти доверительные интервалы в 7-12 Эло - они как раз рассчитаны для мгновенного рейтинга

Цитата: Сообщение от Rom77
LLR нельзя складывать. Вам это уже не раз писали
Рейтинг Эло по определению обладает транзитивностью, так как специально так сконструирован - есть игрок А на 20 Эло сильнее игрока В, а тот на 20 Эло сильнее игрока С, то игрок А на 40 Эло сильнее игрока С

В противном случае рейтинг-таблицы были бы невозможны

Ваша ссылка на LLR не имеет отношения к "сложению" рейтингов.
LLR - это тест отношения правдоподобия https://ru.wikipedia.org/wiki/%D0%A2...B1%D0%B8%D1%8F

Может, вы имели ввиду доверительные интервалы, но кто их когда складывал? Маратка?

Цитата: Сообщение от Rom77
Да где уж тут утрирование. Если уж о десятках тысяч партий вы пишете в том духе, что интервал должен быть значительно больше расчетного, то в сотне партий он должен просто зашкаливать
А с чего вы так решили?
Ошибка, связанная с дебютными наборами и детерминированностью движков, не уменьшается с ростом числа партий - поэтому она не увеличивается с их уменьшением

То есть на сотне партий она примерно такая же, как и на тысяче

Цитата: Сообщение от Rom77
Никто не говорит, что ошибка нулевая, и проблему пытаются решать, о чем я уже писал выше
Так как решение проблемы не сводит ошибку к нулю, ее надо писать во всех формулах, но никто это не делает
Какой отсюда вывод?

Цитата: Сообщение от Rom77
Но в своих тестах вы пишете о погрешностях гораздо меньше расчетных
В моих тестах я не пишу никакой погрешности именно потому, что не знаю, как определить ошибку детерминированности и ошибку дебютов
Омегазеро вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Владимир001 (03.03.2020)
Старый 25.05.2020, 12:16   #102
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

@dew
@Maratka

Возможно Вам будет интересно.

Пару дней назад заметил на ГитХабе pull request в Cfish

Experimental AVX2 computational (non-magic) bitboard

https://github.com/syzygy1/Cfish/pull/115

а также бренч Стокфиша:

avx2-bitboard

https://github.com/okuhara/Stockfish/tree/avx2-bitboard

========
Пробовал компилировать в GCC - оба движка медленнее чем оригинал
ChessMan вне форума   Ответить с цитированием
4 пользователя(ей) сказали cпасибо:
dew (25.05.2020), Maratka (28.05.2020), АЛЕКСЕЙ1976 (09.06.2020), Владимир001 (25.05.2020)
Старый 25.05.2020, 12:29   #103
sergey1963
Эксперт
 
Аватар для sergey1963
 
Регистрация: 31.05.2016
Сообщений: 6,474
Сказал(а) спасибо: 10,473
Поблагодарили 6,624 раз(а) в 3,608 сообщениях
Репутация: 467
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Омегазеро,
Все правильно вы говорите- в технике это называется- калибратор, т.е. хорошо проверенный прибор-шкала... Также и здесь- хорошо подобранные 100-200 партий проверенных дебютов (без 1хода- h3, а3 и тому подобное) не хуже 50-100 тысяч партий с дебютами- навалом (лепим все подряд). Т.о. еще и время можно увеличить в 500 раз! и вместо секунды на партию получить 8 минут- а это совсем другая глубина на том же хорошем железе...
sergey1963 вне форума   Ответить с цитированием
Старый 25.05.2020, 15:48   #104
dew
Гроссмейстер
 
Аватар для dew
 
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

@ChessMan у меня до карантина накрылся SSD, где я вел свои наработки для cfish.. Вот надеюсь после всей катавасии его восстановить.. Но есть неприятный момент - по поводу cfish: у меня мораль понизилась, когда понял, как один фунционал Рональд развеял по всем файлам - от этого нельзя очень легко применять патчи стока, нужно еще понимать, где в других файлах вносить правки..
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say..
dew вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Владимир001 (25.05.2020)
Старый 08.06.2020, 14:36   #105
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,833
Сказал(а) спасибо: 3,296
Поблагодарили 5,927 раз(а) в 4,236 сообщениях
Репутация: 250
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от ChessMan
Пробовал компилировать в GCC - оба движка медленнее чем оригинал
А правильно ли компилировали?
Нужно же чтобы был один и тот же компилятор, в сравнении с эталонным Abrok'ом, и ровно те же ключи?

Что если Вы соберете сами с одним компилятором две сборки, с той лишь разницей, что одна будет иметь флаг AVX2, а другая будет без него?

Ну и в качестве факультатива - проверить AVX (не AVX2)?

А для владельцев Core (некоторых моделей, если таковые найдутся на форуме) - проверить и AVX3, более известный как AVX-512?
В итоге, нужны четыре сборки без профилирования, POPCNT, POPCNT+AVX, POPCNT+AVX2, POPCNT+AVX-512.

Без профилирования просто потому, что последнюю Вы на Ryzen собрать не сможете, как я на AMD FX не могу собрать AVX2. :(

Еще интересно - BMI2+ разные версии AVX. BMI2 не дружит с Ryzen, но владельцы Core его таки могут проверить.
Это еще четыре сборки.

Итого, минут пять на сборку, и еще столько же на выкладку бинарей в паблик.


_____
кстати, это не просто себе безобидные тесты... Если вдруг обнаружится, что версия POPCNT плюс AVX работает на Core быстрее, чем просто POPCNT, то ее есть смысл давать в тот же TCEC, плюс 0,2 ELO - это мелочь, но это же плюс, а не минус!

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

Цитата: Сообщение от Maratka
А правильно ли компилировали?
Нужно же чтобы был один и тот же компилятор, в сравнении с эталонным Abrok'ом, и ровно те же ключи?

Что если Вы соберете сами с одним компилятором две сборки, с той лишь разницей, что одна будет иметь флаг AVX2, а другая будет без него?

Ну и в качестве факультатива - проверить AVX (не AVX2)?

А для владельцев Core (некоторых моделей, если таковые найдутся на форуме) - проверить и AVX3, более известный как AVX-512?
В итоге, нужны четыре сборки без профилирования, POPCNT, POPCNT+AVX, POPCNT+AVX2, POPCNT+AVX-512.

Без профилирования просто потому, что последнюю Вы на Ryzen собрать не сможете, как я на AMD FX не могу собрать AVX2. :(

Еще интересно - BMI2+ разные версии AVX. BMI2 не дружит с Ryzen, но владельцы Core его таки могут проверить.
Это еще четыре сборки.

Итого, минут пять на сборку, и еще столько же на выкладку бинарей в паблик.


_____
кстати, это не просто себе безобидные тесты... Если вдруг обнаружится, что версия POPCNT плюс AVX работает на Core быстрее, чем просто POPCNT, то ее есть смысл давать в тот же TCEC, плюс 0,2 ELO - это мелочь, но это же плюс, а не минус!

P.s
Владелец сервера (вариант - арендатор) в любом случае может проверить, что быстрее, просто запустив бенч именно на целевой железке.
Да правильно я всё компилировал. И проверял со своей же компиляцией оригинала.

Основная причина падения скорости - то что это не magic bitboards

Experimental AVX2 computational (non-magic) sliding attacks …
okuhara committed on 1 May


=============
Может кто знает как в оригинальном Стокфише отключить magic bitboards? Для чистоты эксперимента.


Если кто хочет проверить у себя:
https://www28.zippyshare.com/v/q7FQddjQ/file.html



=============
P.S.: на моём Райзене почему-то нет падения скорости у сборок BMI2/PEXT с новыми AVX2 битбордами... Возможно AVX2 код отключает PEXT инструкции...

P.P.S: движки с AVX2 в названии содержат новые битборды, без AVX2 в названии - нет.
mavx/mavx2 в названии - просто соответствующие флаги в мейкфайле.

Последний раз редактировалось ChessMan; 19.06.2020 в 07:56.
ChessMan вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Владимир001 (18.06.2020)
Старый 18.06.2020, 21:08   #107
dew
Гроссмейстер
 
Аватар для dew
 
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

@ChessMan А попробуй ключи -fno-vectorize и -fno-tree-vectorize
как в связке, так и по отдельности..
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say..
dew вне форума   Ответить с цитированием
Старый 19.06.2020, 07:00   #108
Maratka
Эксперт
ТС
 
Аватар для Maratka
 
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,833
Сказал(а) спасибо: 3,296
Поблагодарили 5,927 раз(а) в 4,236 сообщениях
Репутация: 250
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от ChessMan
P.S.: на моём Райзене почему-то нет падения скорости у сборок BMI2/PEXT с новыми AVX2 битбордами... Возможно AVX2 код отключает PEXT инструкции...
Так а общая производительность какая на фоне POPCNT?
Maratka вне форума   Ответить с цитированием
Старый 19.06.2020, 07:09   #109
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от Maratka
Так а общая производительность какая на фоне POPCNT?
Такая же как у AVX2 - то есть медленнее чем просто popcnt.
ChessMan вне форума   Ответить с цитированием
Старый 19.06.2020, 07:09   #110
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от dew
@ChessMan А попробуй ключи -fno-vectorize и -fno-tree-vectorize
как в связке, так и по отдельности..


С первым флагом не захотело компилировать.
ChessMan вне форума   Ответить с цитированием
Старый 19.06.2020, 12:39   #111
dew
Гроссмейстер
 
Аватар для dew
 
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от ChessMan
С первым флагом не захотело компилировать.
Я если честно, подобным инструментом для замерения производительности не пользовался и стало быть в нем не очень хорошо понимаю.. То есть, отключение дерева векторизации ускорило бинарь? А первый флаг (где не собралось) - с какими словами ошибки были?
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say..
dew вне форума   Ответить с цитированием
Старый 19.06.2020, 13:32   #112
dew
Гроссмейстер
 
Аватар для dew
 
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от ChessMan
Возможно AVX2 код отключает PEXT инструкции...
Бинго! The AVX2 implementation are designed to be replacements for the BMI2 instructions pdep and pext when used in memory scans.
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say..
dew вне форума   Ответить с цитированием
Старый 19.06.2020, 18:14   #113
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от dew
Я если честно, подобным инструментом для замерения производительности не пользовался и стало быть в нем не очень хорошо понимаю.. То есть, отключение дерева векторизации ускорило бинарь? А первый флаг (где не собралось) - с какими словами ошибки были?
Статическая сборка (COMP=mingw) замедлилась, LTO сборка (COMP=gcc) - немного ускорилась.

ChessMan вне форума   Ответить с цитированием
Старый 20.06.2020, 15:28   #114
dew
Гроссмейстер
 
Аватар для dew
 
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

@ChessMan С ключом это я попутал.. Протестировать сам пока не начем.. Я бы посоветовал использовать -mavx2 только для исходного файла, которого касается патч..
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say..
dew вне форума   Ответить с цитированием
Старый 20.06.2020, 16:46   #115
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от dew
@ChessMan С ключом это я попутал.. Протестировать сам пока не начем.. Я бы посоветовал использовать -mavx2 только для исходного файла, которого касается патч..
Я так и делаю, иначе патч просто не компилируется.
ChessMan вне форума   Ответить с цитированием
Старый 20.06.2020, 17:11   #116
dew
Гроссмейстер
 
Аватар для dew
 
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от ChessMan
Я так и делаю, иначе патч просто не компилируется.
На скрине выше мало что видно, но такое впечатление что ты для каждого cpp-файла делаешь -DUSE_AVX2 и -mavx2.. Я не прав?
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say..
dew вне форума   Ответить с цитированием
Старый 20.06.2020, 17:20   #117
ChessMan
Super Moderator
 
Аватар для ChessMan
 
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от dew
На скрине выше мало что видно, но такое впечатление что ты для каждого cpp-файла делаешь -DUSE_AVX2 и -mavx2.. Я не прав?
Да, для каждого.
А его можно применять только для отдельного cpp файла?

Я компилирую в MinGW/GCC с использованием мейк-файла...
ChessMan вне форума   Ответить с цитированием
Старый 20.06.2020, 17:28   #118
dew
Гроссмейстер
 
Аватар для dew
 
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Цитата: Сообщение от ChessMan
Да, для каждого.
А его можно применять только для отдельного cpp файла?

Я компилирую в MinGW/GCC с использованием мейк-файла...
Если патч не касается прям всего исходного кода, то почему нет?
Можно например в одном cpp-файле собрать mpopcount SSE4.2, в другом скажем popcount для SSSE3.. Назвать функции в них по разному.. и скажем в основном коде для popcnt(number) в зависмости от результатов cpuid менять поинтер на нужную функцию в зависимости от архитерктуры.. Таким же образом ты вот этот патч (где чисто AVX2) можешь вынести в отдельный cpp-файл и собрать объектный файл с совершенно другими ключами нежели весь проект.. Потом просто слинковать объектники...
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say..
dew вне форума   Ответить с цитированием
Старый 20.06.2020, 17:31   #119
dew
Гроссмейстер
 
Аватар для dew
 
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Просто в стокфише проповедуется "One theory for all".. От того все и так единообразно..
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say..
dew вне форума   Ответить с цитированием
Старый 20.06.2020, 17:34   #120
dew
Гроссмейстер
 
Аватар для dew
 
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
По умолчанию Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора

Ну а собственный makefile/shell скрипт - для быстроты не заморациваясь в стиле:

#!/bin/sh

g++ <for file1>
...
g++ <for fileN>

g++ <link objs> -o binary
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say..
dew вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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


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


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