|
|
Опции темы | Опции просмотра |
23.02.2020, 10:35 | #91 |
Мастер
Регистрация: 11.08.2017
Адрес: Киров
Сообщений: 912
Сказал(а) спасибо: 888
Поблагодарили 1,197 раз(а) в 632 сообщениях
Репутация: 132
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от Омегазеро
Но большинство людей в компьютерных шахматах намеренно игнорируют эту проблему, а возможно, сознательно обманывают
В общем случае проблема равномерности дебютов решается достаточным количеством партий и случайным чередованием дебютных вариантов. Понятно, что сравнение тестов Стокфиша на 2-х и 8-х ходовых дебютных наборах в такой расклад не вписывается. Сравнения разброса результатов должны проводиться в одинаковых условиях или максимально приближенных к таковым. Цитата: Сообщение от Омегазеро
Мой ответ: она не стремится к нулю и может быть очень велика. Да, не бесконечность, как в случае с детерминированными движками и двумя дебютами, но число все равно большое
|
3 пользователя(ей) сказали cпасибо: |
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 |
Эксперт
ТС
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от Омегазеро
И существование этой ошибки доказывается многолетней практикой тестирования. Когда несколько патчей в сумме показывают 30 Эло, а реальности там 10, а то и -2
Ради смеха сложите рост Эло всех патчей Стокфиша за год и сравните с официальным итоговым ростом Прекрасно известно, по какой причине это происходило. Сейчас рост наверняка будет более приближенным к сумме пачтей, но в любом случае в идеале никогда не сложится, т.к. патч против мастера играется до достижения приемлемого уровня погрешности измерения, т.е. какой-то там жирный патч вполне может пройти и на 5 тыс. партий, а регресс-тест против предыдущего релиза - на фиксированное количество партий, 60 тыс. на сегодня. И уж коль Вам так интересно обсудить сложение патчей SF, не потрудитесь ли заодно объяснить, откуда у LZ самоеэло 4-5 тыс, если не больше? |
Пользователь сказал cпасибо: | Владимир001 (23.02.2020) |
23.02.2020, 13:11 | #96 |
Гроссмейстер
Регистрация: 19.04.2017
Сообщений: 4,734
Сказал(а) спасибо: 1,204
Поблагодарили 2,853 раз(а) в 1,885 сообщениях
Репутация: 159
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Просто при сложении матожиданий, ошибки тоже нужно складывать, результат будет больше соответствовать реальности
|
3 пользователя(ей) сказали cпасибо: |
23.02.2020, 14:35 | #97 |
Мастер
Регистрация: 11.08.2017
Адрес: Киров
Сообщений: 912
Сказал(а) спасибо: 888
Поблагодарили 1,197 раз(а) в 632 сообщениях
Репутация: 132
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от Омегазеро
Да, именно так!
Цитата: Сообщение от Омегазеро
И существование этой ошибки доказывается многолетней практикой тестирования. Когда несколько патчей в сумме показывают 30 Эло, а реальности там 10, а то и -2
Ради смеха сложите рост Эло всех патчей Стокфиша за год и сравните с официальным итоговым ростом Цитата: Сообщение от Омегазеро
Не надо утрировать!
Если ошибка, например, 20 Эло, то рост в 50 Эло тесты могут уверенно зафиксировать Цитата: Сообщение от Омегазеро
А то получается, что у вас все дебютные наборы априори сбалансированные с нулевой ошибкой!
Вы сами понимаете, что это чушь? Тогда почему этот вопрос замалчивается? Цитата: Сообщение от Омегазеро
Поэтому модель Эло, взятая у людей, для расчета рейтинга движков мало годится. Там появляется дополнительная ошибка, которая гораздо больше статистической стандартной ошибки
|
23.02.2020, 14:48 | #98 |
Мастер
Регистрация: 11.08.2017
Адрес: Киров
Сообщений: 912
Сказал(а) спасибо: 888
Поблагодарили 1,197 раз(а) в 632 сообщениях
Репутация: 132
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от svoitsl
Просто при сложении матожиданий, ошибки тоже нужно складывать, результат будет больше соответствовать реальности
|
Пользователь сказал cпасибо: | Владимир001 (23.02.2020) |
23.02.2020, 15:12 | #99 |
Гроссмейстер
Регистрация: 19.04.2017
Сообщений: 4,734
Сказал(а) спасибо: 1,204
Поблагодарили 2,853 раз(а) в 1,885 сообщениях
Репутация: 159
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
скорее всего из суммы погрешностей
|
2 пользователя(ей) сказали cпасибо: | Rom77 (23.02.2020), Владимир001 (23.02.2020) |
23.02.2020, 16:43 | #100 |
Эксперт
Регистрация: 07.06.2016
Сообщений: 5,907
Сказал(а) спасибо: 13,814
Поблагодарили 12,717 раз(а) в 4,521 сообщениях
Репутация: 726
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Не это:
Доверительный интервал (Погрешность) зависит от заданной достоверности = 600/корень квадратный из количества партий. |
3 пользователя(ей) сказали cпасибо: |
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 нельзя складывать. Вам это уже не раз писали
В противном случае рейтинг-таблицы были бы невозможны Ваша ссылка на 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 |
Super Moderator
Регистрация: 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 - оба движка медленнее чем оригинал |
4 пользователя(ей) сказали cпасибо: |
25.05.2020, 12:29 | #103 |
Эксперт
Регистрация: 31.05.2016
Сообщений: 6,474
Сказал(а) спасибо: 10,473
Поблагодарили 6,624 раз(а) в 3,608 сообщениях
Репутация: 467
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Омегазеро,
Все правильно вы говорите- в технике это называется- калибратор, т.е. хорошо проверенный прибор-шкала... Также и здесь- хорошо подобранные 100-200 партий проверенных дебютов (без 1хода- h3, а3 и тому подобное) не хуже 50-100 тысяч партий с дебютами- навалом (лепим все подряд). Т.о. еще и время можно увеличить в 500 раз! и вместо секунды на партию получить 8 минут- а это совсем другая глубина на том же хорошем железе... |
25.05.2020, 15:48 | #104 |
Гроссмейстер
Регистрация: 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.. |
Пользователь сказал cпасибо: | Владимир001 (25.05.2020) |
08.06.2020, 14:36 | #105 |
Эксперт
ТС
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
|
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 Владелец сервера (вариант - арендатор) в любом случае может проверить, что быстрее, просто запустив бенч именно на целевой железке. |
18.06.2020, 18:55 | #106 |
Super Moderator
Регистрация: 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. |
Пользователь сказал cпасибо: | Владимир001 (18.06.2020) |
18.06.2020, 21:08 | #107 |
Гроссмейстер
Регистрация: 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.. |
19.06.2020, 07:00 | #108 |
Эксперт
ТС
Регистрация: 11.04.2017
Адрес: РФ, Крым, Севастополь.
Сообщений: 11,849
Сказал(а) спасибо: 3,311
Поблагодарили 5,952 раз(а) в 4,245 сообщениях
Репутация: 253
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от ChessMan
P.S.: на моём Райзене почему-то нет падения скорости у сборок BMI2/PEXT с новыми AVX2 битбордами... Возможно AVX2 код отключает PEXT инструкции...
|
19.06.2020, 07:09 | #109 |
Super Moderator
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от Maratka
Так а общая производительность какая на фоне POPCNT?
|
19.06.2020, 07:09 | #110 |
Super Moderator
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от dew
@ChessMan А попробуй ключи -fno-vectorize и -fno-tree-vectorize
как в связке, так и по отдельности.. С первым флагом не захотело компилировать. |
19.06.2020, 12:39 | #111 |
Гроссмейстер
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от ChessMan
С первым флагом не захотело компилировать.
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say.. |
19.06.2020, 13:32 | #112 |
Гроссмейстер
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от ChessMan
Возможно AVX2 код отключает PEXT инструкции...
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say.. |
19.06.2020, 18:14 | #113 |
Super Moderator
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от dew
Я если честно, подобным инструментом для замерения производительности не пользовался и стало быть в нем не очень хорошо понимаю.. То есть, отключение дерева векторизации ускорило бинарь? А первый флаг (где не собралось) - с какими словами ошибки были?
|
20.06.2020, 15:28 | #114 |
Гроссмейстер
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
@ChessMan С ключом это я попутал.. Протестировать сам пока не начем.. Я бы посоветовал использовать -mavx2 только для исходного файла, которого касается патч..
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say.. |
20.06.2020, 16:46 | #115 |
Super Moderator
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от dew
@ChessMan С ключом это я попутал.. Протестировать сам пока не начем.. Я бы посоветовал использовать -mavx2 только для исходного файла, которого касается патч..
|
20.06.2020, 17:11 | #116 |
Гроссмейстер
Регистрация: 21.02.2019
Сообщений: 1,206
Сказал(а) спасибо: 131
Поблагодарили 514 раз(а) в 368 сообщениях
Репутация: 62
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от ChessMan
Я так и делаю, иначе патч просто не компилируется.
__________________
*Origin: Мы делили апельсин - много наших полегло.. And I don't care just what people say.. |
20.06.2020, 17:20 | #117 |
Super Moderator
Регистрация: 04.01.2017
Сообщений: 3,629
Сказал(а) спасибо: 2,879
Поблагодарили 6,463 раз(а) в 2,331 сообщениях
Репутация: 354
|
Re: Оптимизации SF в зависимости от компилятора, профилирования и ключей компилятора
Цитата: Сообщение от dew
На скрине выше мало что видно, но такое впечатление что ты для каждого cpp-файла делаешь -DUSE_AVX2 и -mavx2.. Я не прав?
А его можно применять только для отдельного cpp файла? Я компилирую в MinGW/GCC с использованием мейк-файла... |
20.06.2020, 17:28 | #118 |
Гроссмейстер
Регистрация: 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.. |
20.06.2020, 17:31 | #119 |
Гроссмейстер
Регистрация: 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.. |
20.06.2020, 17:34 | #120 |
Гроссмейстер
Регистрация: 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.. |
Здесь присутствуют: 3 (пользователей: 0 , гостей: 3) | |
|
|