Size: a a a

2020 October 31

IA

Ilia Abernikhin in pro.cxx
Constantine Drozdov
вообще можно собрать статистику по количеству частых/редких ветвлений, мне почему-то кажется, что таких в действительности будет очень много
Конечно
источник

I

Ioann_V in pro.cxx
но из всех архитектур мне нравится zen 2 от AMD - там очень крутые фишки есть, которых в Интеле нету, ну то есть, очень-очень.
источник

CD

Constantine Drozdov in pro.cxx
то есть по-моему намного большим исключением является 50/50 ветвление
источник

IA

Ilia Abernikhin in pro.cxx
Constantine Drozdov
вообще можно собрать статистику по количеству частых/редких ветвлений, мне почему-то кажется, что таких в действительности будет очень много
Мне кажеться что случаи когда обе ветки 50/50 используються весьма редки
источник

I

Ioann_V in pro.cxx
Надо стараться ибавиться от веток - умножением, или чем-то еще, типа cmove - если хочется хорошего кода, умножение это не дорого, а еще и отдельную линию пайплайна параллельного использует.
источник

MD

Mys Dol in pro.cxx
вопрос немного глупый, не могу в 19 vs найти настройку проекта, раньше была на вкладке общее
источник

I

Ioann_V in pro.cxx
Ioann_V
Надо стараться ибавиться от веток - умножением, или чем-то еще, типа cmove - если хочется хорошего кода, умножение это не дорого, а еще и отдельную линию пайплайна параллельного использует.
Тут кстати есть очень крутой трюк, для чисел с плавающей запятой. Компиляторы его не делают, и я его еще не проверил на бенчах - но думаю, там реально ускорить неускоряемое. Ну и я его нигде не видел.
источник

CD

Constantine Drozdov in pro.cxx
Ioann_V
Надо стараться ибавиться от веток - умножением, или чем-то еще, типа cmove - если хочется хорошего кода, умножение это не дорого, а еще и отдельную линию пайплайна параллельного использует.
это понятно, да, мне вот это нравится
      inline uint8_t index_from_char(uint8_t b) noexcept
     {
       return ((int8_t)b >> 7) | (uint8_t)index_from_char_table[b & 0x7F];
     }
источник

EZ

Evgenii Zheltonozhsk... in pro.cxx
Constantine Drozdov
то есть по-моему намного большим исключением является 50/50 ветвление
Так как раз с 50-50 у бранч предиктора проблемы будут, а в редких он ну пару раз сфейлится
источник

EZ

Evgenii Zheltonozhsk... in pro.cxx
Constantine Drozdov
да, разумеется
Что ж у тебя там за код
источник

CD

Constantine Drozdov in pro.cxx
Evgenii Zheltonozhskii🇮🇱
Так как раз с 50-50 у бранч предиктора проблемы будут, а в редких он ну пару раз сфейлится
Ну то есть у тебя весь код всего лишь пару раз
источник

IA

Ilia Abernikhin in pro.cxx
Судя что вероятночсть угадать у бренч предиктора очень велика, то в подавляющем большинчтве случаев ветки не сбаланчировани по частоте исполнения
источник

IA

Ilia Abernikhin in pro.cxx
Т.е. поеобладают часто редко используемве
источник

I

Ioann_V in pro.cxx
Ilia Abernikhin
Судя что вероятночсть угадать у бренч предиктора очень велика, то в подавляющем большинчтве случаев ветки не сбаланчировани по частоте исполнения
Думаю, как работают предикторы только инженеры проектирующие их и знают
источник

IA

Ilia Abernikhin in pro.cxx
А не 50/50
источник

EZ

Evgenii Zheltonozhsk... in pro.cxx
Constantine Drozdov
Ну то есть у тебя весь код всего лишь пару раз
Что
источник

CD

Constantine Drozdov in pro.cxx
Так это каждый иф пофейлится пару раз
источник

CD

Constantine Drozdov in pro.cxx
Мы же уже выяснили, что бОльшая часть ифов несимметричная
источник

EZ

Evgenii Zheltonozhsk... in pro.cxx
Constantine Drozdov
Так это каждый иф пофейлится пару раз
Ну если у тебя большая часть команд это не ифы то это довольно пренебрежимо
источник

CD

Constantine Drozdov in pro.cxx
Evgenii Zheltonozhskii🇮🇱
Ну если у тебя большая часть команд это не ифы то это довольно пренебрежимо
Что пока комп не прогреется каждый иф миспредикшн 50%?
источник