Size: a a a

2020 October 31

IA

Ilia Abernikhin in pro.cxx
Evgenii Zheltonozhskii🇮🇱
Ну branch predictor должен с такой штукой практически идеально справляться
Я по гуглил, про бранч предиктор короче получаеться что эта фича с отметкой используемости веток совершенно бесполезна ибо бранч предиктор предсказывает с вероятностью более 90% правильный переход)
источник

CD

Constantine Drozdov in pro.cxx
Ioann_V
мелтдаун позволял читать память чужого процесса, не думаю, что тут надо выключать предиктор. Скорее как то кеши синхронизировать по доступу - но никто бренч предиктор не выключал, это точно. Бренч миспридикшн это дорого - если есть возможность обойтись без перехода условного, лучше обойтись без него., скажем умножать на ноль или единицу.
я не разбираюсь в деталях, я образно имел в виду, что накопленное состояние бранч предиктора - потенциальная утечка данных
источник

SS

Sergey Skvortsov in pro.cxx
Evgenii Zheltonozhskii🇮🇱
Ну branch predictor должен с такой штукой практически идеально справляться
Так атрибуты эти на порядок кода влияют, бранч предиктор сам вряд ли код переставлять будет (сейчас, по крайней мере)

Вон мотивация
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0479r0.html
источник

I

Ioann_V in pro.cxx
Constantine Drozdov
я не разбираюсь в деталях, я образно имел в виду, что накопленное состояние бранч предиктора - потенциальная утечка данных
ну да, тут ты прав, более чем - но там уже пофиксили как-то это, без отключения. Вот таких деталей, я честно не знаю.
источник

EZ

Evgenii Zheltonozhsk... in pro.cxx
Sergey Skvortsov
Так атрибуты эти на порядок кода влияют, бранч предиктор сам вряд ли код переставлять будет (сейчас, по крайней мере)

Вон мотивация
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0479r0.html
Хммм, типа поставить часто используемый код ближе?
источник

SS

Sergey Skvortsov in pro.cxx
Evgenii Zheltonozhskii🇮🇱
Хммм, типа поставить часто используемый код ближе?
Ну да
источник

CD

Constantine Drozdov in pro.cxx
желаний написать unlikely в куче случаев у меня очень много, в том числе в паре макросов условий самоконтроля которые тысячей встречаются в коде
источник

I

Ioann_V in pro.cxx
Evgenii Zheltonozhskii🇮🇱
Хммм, типа поставить часто используемый код ближе?
Если у бренч предиктора нету никакой истории, какую ветку он выберет? Вроде, часто выбирают ближнюю.
источник

EZ

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

I

Ioann_V in pro.cxx
Evgenii Zheltonozhskii🇮🇱
Ну не знаю это сколько кода должно быть чтобы джамп в кеш не влез? Опять таки бранч предиктор и префетчит же
префетчит если все верно угадал, не обе ветки префетчит же, вроде - хотя на ГПУ вроде обе было раньше.
источник

CD

Constantine Drozdov in pro.cxx
Evgenii Zheltonozhskii🇮🇱
Ну не знаю это сколько кода должно быть чтобы джамп в кеш не влез? Опять таки бранч предиктор и префетчит же
не забывай про код в котором каждый доступ к массиву закрыт range check-ом
источник

EZ

Evgenii Zheltonozhsk... in pro.cxx
Ioann_V
префетчит если все верно угадал, не обе ветки префетчит же, вроде - хотя на ГПУ вроде обе было раньше.
Ну так и тут будет все хорошо если программист угадал
источник

CD

Constantine Drozdov in pro.cxx
редкие ветки вполне могут тысячами содержаться в коде
источник

I

Ioann_V in pro.cxx
кстати, если кому то интересно - предикторов в процессоре может быть несколько
источник

EZ

Evgenii Zheltonozhsk... in pro.cxx
Constantine Drozdov
не забывай про код в котором каждый доступ к массиву закрыт range check-ом
Хочешь фейл ренжчека пометить как likely?
источник

I

Ioann_V in pro.cxx
у интела есть еще loop predictor
источник

CD

Constantine Drozdov in pro.cxx
Evgenii Zheltonozhskii🇮🇱
Хочешь фейл ренжчека пометить как likely?
да, разумеется
источник

I

Ioann_V in pro.cxx
так как ваши циклы - это все условные переходы, для этих случаев у проца есть свой отдельный предиктор с какой-то другой логикой
источник

IA

Ilia Abernikhin in pro.cxx
Ioann_V
у интела есть еще loop predictor
Там кажись еще есть предиктор для адресов или как то так, щас как раз читаю😂
источник

CD

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