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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вероятные()/маловероятные() макросы в ядре Linux с ошибкой сегментации

У меня есть понимание того, как работают макросы с вероятными()/маловероятными(), и у меня также есть понимание прогноза ветвления. К сожалению, я не изучал предсказание ветвлений в контексте программирования на высоком уровне. То, что я хочу знать...
13 июл. '16 в 17:41
2

Является ли Haswell двухканальным исполнением CPU?

Haswell теперь имеет 2 ветки - как показано здесь: http://arstechnica.com/gadgets/2013/05/a-look-at-haswell/2/ Означает ли это, что Haswell - это CPU с двумя путями выполнения? С точки зрения: http://ditec.um.es/~jlaragon/papers/aragon_ICS02.pdf...
13 июл. '16 в 22:31
0

Обратная длина истории инженерной истории в предсказании отрасли

Я пытаюсь найти длину шаблона истории в предсказателе ветки моего компьютерного процессора. Я сгенерировал массив переменной длины бит и имел, если условия основаны на значении бит. Затем я закрою время выполнения различного выполнения функции и пои...
09 авг. '16 в 1:17
1

последнее обновление lhr/ghr в длинном трубопроводе

Мне интересно, является ли это жизнеспособным сценарием в длинных конвейерах, когда младшая инструкция ветвления уже обрабатывается механизмом предсказания ветвей, но соответствующий lhr (или ghr, в зависимости от реализации) до сих пор не обновлялс...
06 сент. '16 в 20:37
1

Может ли более сложный цикл выполняться быстрее?

Я нашел это при подготовке к реализации подобной питону функции ",".join(vector) Join ",".join(vector) в C++. Я хотел бы сравнить, имеет ли смысл устранить внутреннее условие if first element использовалось для того ',' чтобы избежать размещения доп...
29 сент. '16 в 23:17
3

расширение нескольких "если" с одним и тем же условием приводит к увеличению производительности

Скажем, у меня есть void f(const bool condition) { if (condition) { f2(); else { f3(); } f4(); if (condition) { f5(); } else { f6(); } } поскольку condition никогда не изменяется, вышесказанное может быть упрощено д...
28 нояб. '16 в 17:48
1

Какова стоимость правильно спрогнозированной ветки (на любом процессоре)

Основываясь на том, что я читал, кажется, что стоимость может быть 0 циклов. Это действительно 0 циклов? Если стоимость равна 0 циклам, включает ли это только инструкцию перехода, а не только возможный сброс в кэше команд процессора? Я ценю ответы н...
17 нояб. '17 в 22:03