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

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

Содержит ли родовая конструкция списка, если экземпляр уже существует?

У меня есть этот код: if (null == _priceComplianceSummaryList) { _priceComplianceSummaryList = new List<PriceComplianceSummary>(); } Resharper помещает это как проблему, предлагая "Заменить", если "инструкция с соответствующей ветвью". Е...
26 марта '16 в 2:07
1 отв.

Прогнозирование и производительность ветвей

Я читаю книгу об компьютерной архитектуре, и я в этой главе расскажу о предсказании ветвей. Это небольшое упражнение, с которым я с трудом обволакиваю голову. Рассмотрим следующий внутренний цикл for (j = 0; j < 2; j++) { for (i = 10; i >...
18 мая '16 в 12:32
1 отв.

Минимизировать ветвление в C++ - Приращение, если значение отличное от нуля

У меня есть следующий вложенный цикл for: for(k = 0; k < n; ++k) { for(m = 0; m < n; ++m) { /* other logic altering a */ if(a[index] != 0) count++; } } где a содержит uint32_t. Поскольку n может быть довольно большим ...
16 мая '15 в 9:56
1 отв.

Какое влияние имеет предсказание ветвления на следующий цикл C?

Мой опыт работы с C относительно скромный, и мне не хватает понимания его скомпилированного вывода на современных процессорах. Контекст: я работаю над обработкой изображений для приложения для Android. Я прочитал, что машинный код без ветвления явля...
29 мая '15 в 20:38
1 отв.

Программа тестирования для Branch Predictor в Java. Нечетный результат.

Я прочитал вопрос: почему быстрее обрабатывать отсортированный массив, чем несортированный массив? сегодня и пытается воспроизвести результат на Java. Вот мой код: public class BranchPredictorTest { static int[] getBranchCounts1(List<Integer...
22 июня '15 в 20:05
1 отв.

Confused by simplescalr preditor

теперь я изучаю исходный код simplescalar. Но меня смущает модуль прогнозирования. Речь идет о предиторе бимода. Вот инициализация: case BPred2bit: if (!l1size || (l1size & (l1size-1)) != 0) fatal("2bit table size, '%d', must be non-ze...
18 авг. '15 в 12:35
1 отв.

Написание небольших контрольных тестов

Я покупаю новый компьютер. Это здорово, но я хотел бы знать, насколько он быстрее. Теперь я мог бы использовать уже установленный тест - НО Я хочу узнать, ПОЧЕМУ, что это быстрее. Поэтому моя идея заключалась в следующем: 1. пишите небольшие тест...
04 нояб. '15 в 18:45
2 отв.

Могу ли я измерить ошибки прогнозирования ветвлений на современной Intel Mac OS X?

Я хотел бы измерить предсказание ветвления на Xcode для процессоров Intel в Mac OS X с очевидным намерением оптимизации скорости. Есть ли способ программирования XCode Instruments для этого? Я уже проверил, и эта информация, к сожалению, отсутству...
26 нояб. '15 в 13:56
2 отв.

Оптимизация прогнозов отрасли: как обобщить код, который может запускать wth различный компилятор, межперенос и аппаратное прогнозирование?

Я столкнулся с некоторыми замедлениями на узкой петле сегодня, вызванной оператором If, что меня удивило, потому что я ожидал, что предсказание ветвей успешно конструирует конкретный оператор, чтобы свести к минимуму стоимость условного. Когда я се...
11 янв. '16 в 23:12
1 отв.

MIPS - Ветвянная конвенция с bne

В лекции наш профессор сказал, что есть причина использовать bne в ветвящейся работе, а не использовать beq (и оставили нас для выяснения), как показано на примере ниже. if ( i == j ) i++ ; j-- ; который сводится к bne $r1, $r2, L1 # b...
21 янв. '16 в 5:48
1 отв.

Прогнозирование ветвей

Предположим, что процессор имеет функцию, которая позволяет компилятору указывать начальное состояние предсказания как LT или LNT для команды перехода. Рассмотрим формулировку формы IF A> B THEN A = A + 1 ELSE B = B + 1 (a) Сгенерировать код на...
15 марта '16 в 23:00
1 отв.

как запустить c-код с помощью simplescalar?

Я хочу имитировать предсказатель ветвления персептрона с simplescalar. Я пишу простой код на языке программирования c. В simplescalar установке simplescalar эта команда будет компилировать c-код: $ $IDIR/bin/sslittle-na-sstrix-gcc –o hello hello.c ...
25 марта '16 в 11:18
3 отв.

как бы вы оптимизировали эту функцию?

#include <stdlib.h> #include <cstring.h> #include <time.h> int cp[1000000][3]; int p[1000000][3];//assume this array to be populated void main(){ srand(time(NULL)); for(n; n < 1000000; n++){ if (rand()%2) memcp...
29 сент. '16 в 16:11
2 отв.

Недостаток кэша при ветвлении

Интересно, быстрее ли заменить ветвление на 2 умножения или нет (из-за отказа промаха в кеше)? Вот мой случай: float dot = rib1.x*-dir.y + rib1.y*dir.x; if(dot<0){ dir.x = -dir.x; dir.y = -dir.y; } И я пытаюсь заменить его: float dot ...
23 марта '14 в 2:19
1 отв.

Отраслевые неверности

Этот вопрос может быть глупым, но я все равно спрошу его. Я слышал о предсказании ветвей из этого Мистического ответа и я хочу знать, возможно ли, чтобы произошло следующее Допустим, у меня есть этот фрагмент кода C++ while(memoryAddress = getNex...
02 окт. '13 в 19:02