Вопросы с тегом 'branch-prediction'

В компьютерной архитектуре предсказатель ветвления представляет собой цифровую схему, которая пытается угадать, к какой ветке (например, структура if-then-else) будет идти, прежде чем это будет известно наверняка. Целью прогнозирования ветвей является улучшение потока в конвейере команд. Отраслевые предиктора играют решающую роль в достижении высокой эффективности во многих современных конвейерных микропроцессорных архитектурах, таких как x86.
2 отв.

Прогнозируемое предсказание ветвления в сочетании с предсказанием ветвей?

EDIT: Моя путаница возникает, потому что, конечно, предсказывая, какая ветка взята, вы также эффективно выполняете целевое предсказание. Этот вопрос неотъемлемо связан с моим первым вопросом по теме: предсказание ветвления и предсказание целевой в...
14 февр. '14 в 22:01
3 отв.

Как я могу сделать бесплатный сервер?

В связи с этим ответом: qaru.site/questions/1/... В приведенном выше ответе он упомянул, как избежать предсказания ветвления, избегая ветвей. Пользователь демонстрирует это, заменив: if (data[c] >= 128) { sum += data[c]; } С int t = (dat...
20 авг. '15 в 2:10
4 отв.

Intel x86 0x2E/0x3E Префикс Филиал Прогноз фактически используется?

В последнем пособии по разработке программного обеспечения Intel в нем описываются два префикса опкода: Group 2 > Branch Hints 0x2E: Branch Not Taken 0x3E: Branch Taken Они допускают явное предсказание ветвления инструкций перехода (ко...
15 янв. '13 в 10:20
2 отв.

Отраслевое предсказание: написание кода для его понимания; Получение странных результатов

Я пытаюсь получить хорошее представление о предсказании ветвей, измеряя время запуска циклов с предсказуемыми ветвями против циклов со случайными ветвями. Итак, я написал программу, которая принимает большие массивы 0 и 1, расположенные в разных пор...
04 янв. '13 в 8:45
1 отв.

Могу ли я измерить ошибки ветвления-предсказания на современном процессоре Intel Core?

Этот вопрос и его ответ, который недавно был отмечен как эпический ответ, побудили меня задаться вопросом; Могу ли я измерить производительность работающего приложения в Windows с точки зрения ошибок прогнозирования ветвления процессора? Я знаю, что...
11 июля '12 в 19:50
4 отв.

Как иметь дело с предсказанием ветвей при использовании случая переключения в эмуляции процессора

Недавно я прочитал вопрос Почему быстрее обрабатывать отсортированный массив, чем несортированный массив? и нашел ответ абсолютно увлекательным, и он полностью изменился мой прогноз по программированию при работе с ветвями, основанными на данных. В ...
26 июля '12 в 14:16
1 отв.

Может ли предсказание ветвления сбой моей программы?

Перейдя через главу 3 этой книги под названием Архитектура компьютерных систем: перспектива программиста, говорится, что реализация типа testl %eax, %eax cmovne (%eax), %edx неверно, потому что, если предсказание терпит неудачу, у нас будет NULL р...
07 июля '14 в 16:10
1 отв.

Нерентабельные условности на целые числа - быстрая, но можно ли их сделать быстрее?

Я экспериментировал со следующим и заметил, что неопределенное "if", определенное здесь (теперь с заменой &-!! *!!), может ускорить некоторый код узкого места на столько же (почти) 2x на 64- бит Intel с clang: // Produces x if f is true, else ...
08 авг. '15 в 22:28
1 отв.

Не работает ли предсказание ветвления?

В отношении этого вопроса ответ указывает, что несортированный массив занимает больше времени, потому что он не прошел тест на предсказание ветвления. но если мы внесем незначительные изменения в программу: import java.util.Arrays; import java.util....
29 янв. '14 в 16:23
4 отв.

Что может сделать компилятор с информацией разветвления?

На современном Pentium уже невозможно дать ответные ответвления процессору. Предполагая, что профилирующий компилятор, такой как gcc с оптимизацией на основе профиля, получает информацию о вероятном ветвящем поведении, что он может сделать для создан...
30 мая '13 в 14:17
1 отв.

Очередь команд Intel CPU обеспечивает статическое предсказание ветвления?

В томе 3 руководств Intel в нем содержится описание счетчика аппаратных событий: BACLEAR_FORCE_IQ Подсчитывает количество раз, когда BACLEAR был принудительно введен в очередь команд. IQ также отвечает за предоставление прогноза условной ветки на...
27 июля '15 в 2:12
3 отв.

Может ли предсказание ветвления вызывать незаконную инструкцию?

В следующем псевдокоде: if (rdtscp supported by hardware) { Invoke "rdtscp" instruction } else { Invoke "rdtsc" instruction } Скажем, CPU не поддерживает инструкцию rdtscp, поэтому мы отступаем от инструкции else. Если CPU неправильно пр...
07 янв. '14 в 21:18
3 отв.

Микро-оптимизация функции сравнения С++

У меня есть функция Compare(), которая выглядит так: inline bool Compare(bool greater, int p1, int p2) { if (greater) return p1>=p2; else return p1<=p2; } Я решил оптимизировать, чтобы избежать ветвления: inline bool Compare2(bool grea...
02 апр. '13 в 20:06
3 отв.

Подсказка для прогноза ветвления в утверждениях

У меня есть пользовательский макрос ASSERT(...), который я использую в приложении С++. #include <stdlib.h> #include <iostream> /// ASSERT(expr) checks if expr is true. If not, error details are logged /// and the process is exited wit...
28 мая '14 в 14:28
1 отв.

Могу ли я использовать GCC __builtin_expect() с тройным оператором в C

Руководство пользователя GCC показывает только примеры, где __builtin_expect() помещается вокруг всего условия оператора if. Я также заметил, что GCC не жалуется, если я его использую, например, с тернарным оператором или любым произвольным интеграл...
09 февр. '13 в 5:59