Вопросы по теме 'branch-prediction'
Переключение так же плохо, как если бы?
Я читал в StackOverflow, что с помощью
if(someCondition)
{
someCode();
}
else
{
alternateCode();
}
может быть неэффективным из-за подверженности неправильному предсказанию перехода (см., например, этот вопрос ).
То же самое и с...
263 просмотров
schedule
29.03.2022
Ошибочные предсказания ветвей
Этот вопрос может показаться глупым, но я все равно его задам. Я слышал о предсказании переходов от этот ответ Mysticial , и я хочу знать, возможно ли следующее
Допустим, у меня есть этот фрагмент кода C++
while(memoryAddress =...
499 просмотров
schedule
19.10.2022
предсказание ветвления против предсказания цели ветвления
Правильно ли я понял, что операторы if больше зависят от предсказания ветвления, а поиск в v-таблице больше зависит от предсказания цели ветвления? Что касается v-таблиц, то нет «предсказания ветвей», только целевое предсказание?
Попытка понять,...
849 просмотров
schedule
26.09.2022
Где/как хранятся данные предсказания переходов?
Мне всегда было интересно, где/как хранятся данные прогноза? Есть ли предел? Это только последние ветки? Меня больше всего беспокоит архитектура Intel, но все, что я могу узнать о любой архитектуре, ценится.
640 просмотров
schedule
21.08.2023
Сбрасывает ли ошибочное предсказание ветвление весь конвейер, даже для очень короткого тела оператора if?
Все, что я читал, похоже, указывает на то, что неверное предсказание ветвления всегда приводит к очистке всего конвейера, что означает много потраченных впустую циклов. Я никогда не слышал, чтобы кто-нибудь упоминал какие-либо исключения для коротких...
5416 просмотров
schedule
25.03.2023
Очередь инструкций процессоров Intel обеспечивает предсказание статического перехода?
В томе 3 руководств Intel содержится описание счетчика аппаратных событий:
BACLEAR_FORCE_IQ
Подсчитывает, сколько раз BACLEAR был принудительно инициирован очередью инструкций. IQ также отвечает за обеспечение направления условного...
675 просмотров
schedule
15.04.2024
Программирование с учетом филиалов
Я читаю о том, что неправильное предсказание ветвления может стать узким местом для производительности приложения. Как я вижу, люди часто показывают код сборки , который раскрывает проблему и заявляет, что программисты обычно могут предсказать, где...
6728 просмотров
schedule
11.02.2024
предсказание ветвлений и объявление переменных
Как я понимаю, если у меня есть:
if(case 1)
{
char x[] = "1";
printf("%s",x);
}
else if(case 2)
{
char x[] = "12";
printf("blah-blah-blah\n");
printf("%s",x);
}
тогда мой компилятор попытается предсказать ветку, в которую войдет...
106 просмотров
schedule
27.10.2023
Найдите размер целевого буфера ветки (BTB)
Можно ли каким-либо образом перепроектировать организацию предсказателя ветвления процессоров, чтобы найти размер целевого буфера ветвления (BTB) с помощью программы C?
Если да, то есть ли у вас идеи, какой должна быть программа?
Я могу...
462 просмотров
schedule
22.03.2023
Дорогой прыжок с GCC 5.4.0
У меня была функция, которая выглядела так (показывала только важную часть):
double CompareShifted(const std::vector<uint16_t>& l, const std::vector<uint16_t> &curr, int shift, int shiftY) {
...
for(std::size_t...
9870 просмотров
schedule
13.12.2023
Почему логический оператор короткого замыкания должен быть быстрее
Этот вопрос касается не оптимизации кода, а технического вопроса о разнице в производительности логических операторов короткого замыкания и обычных логических операторов, которые могут сводиться к тому, как они выполняются на аппаратном уровне.
В...
359 просмотров
schedule
28.02.2022
Как предсказание ветвления взаимодействует с указателем инструкции
Насколько я понимаю, в начале конвейера процессора указатель инструкции (который указывает на адрес следующей инструкции для выполнения) обновляется предсказателем ветвления после выборки, так что этот новый адрес можно затем получить в следующем...
298 просмотров
schedule
02.08.2022
Как ускорить динамическую отправку на 20% с помощью вычисленных gotos в стандартном C ++
Прежде чем проголосовать против или начать говорить, что goto ing является злом и устаревшим, пожалуйста, прочтите обоснование того, почему он жизнеспособен в данном случае. Прежде чем пометить его как дубликат, прочтите вопрос полностью.
Я читал...
656 просмотров
schedule
12.03.2024
Как именно работает статическое предсказание? а что такое слоты задержки?
Я знаю, что невыполненный прогноз всегда предполагает, что ветвление не выполнено, поэтому ПК продолжает работать нормально, если не доказано, что ветвление выполнено, поэтому удалите все инструкции за ветвью в конвейере (при условии, что ветвь...
26 просмотров
schedule
08.06.2022
Cortex M4: инструкция cmp нарушена?
Это круто, и я чешу в затылке.
Настраивать:
Микроконтроллер ARM Cortex M4 (PAC5532).
Отладчик Segger J-Link Plus.
Компилятор GCC 7.2.0
GDB 8.0.1
Скомпилировано с -O0 (без оптимизации)
Вот код. Это часть логики противодействия входу...
118 просмотров
schedule
04.02.2022
Правильное использование C++20 `[вероятно]]`/`[[маловероятно]]` в операторах `switch`
C++20 имеет удобные атрибуты [[likely]] / [[unlikely]] , которые определяют генерацию кода. Например, вы можете указать ветку, которая, вероятно, будет выбрана:
if (b) [[likely]] { /*...*/ }
Точно так же можно использовать эти атрибуты в...
172 просмотров
schedule
22.12.2022
Почему безусловные переходы занимают место в BTB?
https://blog.cloudflare.com/branch-predictor/ содержит отличный анализ производительность филиалов на современном оборудовании.
Одна вещь, которая меня удивила, заключалась в том, что безусловные переходы занимают место в целевом буфере...
22 просмотров
schedule
26.12.2023