Питання з тегом 'branch-prediction'

У комп'ютерній архітектурі провісник розгалуження є цифровою схему, яка намагається вгадати, до якої гілці (наприклад, структура if-then-else) буде йти, перш ніж це буде відомо напевно. Метою прогнозування гілок є поліпшення потоку в конвеєрі команд. Галузеві предіктора грають вирішальну роль в досягненні високої ефективності в багатьох сучасних конвеєрних мікропроцесорних архітектур, таких як x86.
26
відповідей

Чому швидше обробляти відсортований масив, ніж несортоване масив?

Ось шматок коду на С ++, який здається дуже своєрідним. З якоїсь дивної причини сортування даних дивом робить код майже в шість разів швидше. #include <algorithm> #include <ctime> #include <iostream> int main () {// Ge ...
заданий 27 червня '12 о 16:51
5
відповідей

Чому (a * b! = 0) швидше, ніж (a! = 0 b! = 0) в Java?

Я пишу якийсь код на Java, де в якийсь момент потік програми визначається тим, чи є дві змінні int "a" і "b" ненульовими (примітка: a і b ніколи не негативний і ніколи не повинен перебувати в межах цілих чисел переповнених ...
заданий 21 февр. '16 в 4:51
10
відповідей

Який ефект упорядкування, якщо ... else, якщо твердження по ймовірності?

Зокрема, якщо у мене є ряд операторів if ... else if, і я якось заздалегідь знаю відносну ймовірність того, що кожен оператор буде оцінювати до true, наскільки різниця в часі виконання робить це сортувати їх в порядку ймовірності? ...
заданий 19 Жовтня. '17 о 18:17
7
відповідей

Чи є підказка компілятора для GCC, щоб змусити пророкування гілок завжди йти певним чином?

Для архітектури Intel чи існує спосіб дати вказівку компілятору GCC генерувати код, який завжди форсує пророкування розгалужень певним чином в моєму коді? Чи підтримує це обладнання Intel? Як щодо інших компіляторів або ап ...
заданий 08 травня '15 о 21:54
7
відповідей
5
відповідей

Коли потоки повинні бути краще традиційних циклів для кращої продуктивності? Чи використовують потоки переваги передбачення гілок?

Я тільки що прочитав про Branch-Prediction і хотів спробувати, як це працює з потоками Java 8. Однак продуктивність з Streams завжди виявляється гірше традиційних циклів. int totalSize = 32768; int filterValue = 1280; int [] array = new in ...
заданий 22 дек. '16 об 11:26
5
відповідей

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

Чи є який-небудь переносний спосіб підказки передбачення розгалуження? Розглянемо наступний приклад: if (unlikely_condition) {/ * ..A .. * /} else {/ * ..B .. * /} Хіба це не так: if (! Unlikely_condition) {/ * ..B .. * /} else ...
заданий 13 сент. '10 о 20:35
8
відповідей

Програмування з урахуванням гілок

Я читаю, що невірне передбачення галузі може бути гарячим вузьким місцем для роботи програми. Як я бачу, люди часто показують асемблерний код, який розкриває цю проблему, і заявляє, що програмісти зазвичай можуть передбачити, де гілка мо ...
заданий 15 сент. '15 о 11:48
2
відповідей

Внутрішнє злиття без гілок повільніше, ніж внутрішнє злиття з гілкою

Нещодавно я запитав питання в огляді коду, щоб переглянути алгоритм сортування з ім'ям QuickMergeSort. Я не буду вдаватися в подробиці, але в якийсь момент алгоритм виконує внутрішній злиття: замість використання додаткової пам'яті для збер ...
заданий 13 дек. '16 о 22:53
5
відповідей

Чому ця функція С ++ видає так багато невірних прогнозів галузі?

Нехай A - масив, що містить непарне число нулів і одиниць. Якщо n - розмір A, то A побудований таким чином, що перші ceil (n / 2) елементи 0, а інші елементи 1. Отже, якщо n = 9, A буде виглядати так: 0,0,0,0,0, 1,1,1,1 Мета полягає в тому, ...
заданий 15 сент. '16 о 17:44
2
відповідей

Чи отримує GCC субоптимальний код для передбачення статичної гілки?

З мого університетського курсу я чув, що за угодою краще розмістити більш ймовірне умова в if, а не в else, що може допомогти провісника статичної гілки. Наприклад: if (check_collision (player, enemy)) {// very unlikely to be true ...
заданий 26 Січня. '17 о 21:49
4
відповідей

Галузеве пророкування і поділ на нуль

Я писав код, який виглядав наступним чином: if (denominator == 0) {return false; } Int result = value / denominator; ... коли я думав про ветвящегося поведінці в CPU. medican.site.site/questions/1 / ... У цій відповіді говориться, що ЦП буде намагатися п ...
заданий 03 Серпня. '15 о 11:22
5
відповідей

Наскільки поширене пророкування розгалуження на поточних процесорах?

Через величезного впливу на продуктивність я ніколи не ставлю собі запитання, чи має мій поточний робочий стіл процесор з прогнозом розгалужень. Звичайно. Але як щодо різних пропозицій ARM? У iPhone або Android-телефонів є передбачення про в ...
заданий 23 нояб. '11 о 14:31
3
відповідей

Чи є "==" в відсортованому масиві не швидше, ніж несортоване масив?

Примітка: передбачуваний дублюючий питання, я думаю, в основному пов'язаний з "<" і ">" порівняння, але не порівняння "==" і, отже, не відповідає на моє запитання про ефективність оператора "==". Довгий час я вважав, що "обробка" ...
заданий 18 Серпня. '15 в 6:51
4
відповідей

Оптимізація продуктивності складання x86-64 - Вирівнювання та прогнозування розгалужень

Im в даний час кодує високо оптимізовані версії деяких стандартних функцій бібліотеки бібліотеки C99, таких як strlen (), memset () і т.д., використовуючи збірку x86-64 з інструкціями SSE-2. Поки мені вдалося добитися відмінних результатів ...
заданий 08 Серпня. '13 в 0:18