Preguntas etiquetadas con 'predicción de rama'

En una arquitectura de computadora, el predictor de rama es un circuito digital que intenta adivinar qué rama (por ejemplo, la estructura if-then-else) irá antes de que se sepa a ciencia cierta. El objetivo de la predicción de rama es mejorar el flujo en la línea de instrucciones. Los predictores de la industria desempeñan un papel crucial en el logro de un alto rendimiento en muchas arquitecturas modernas de microprocesadores basados ​​en microprocesadores, como x86.
26
respuestas

¿Por qué es más rápido procesar una matriz ordenada que una matriz sin clasificar?

Aquí hay una pieza de código C ++ que parece muy peculiar. Por alguna extraña razón, la clasificación de los datos hace que el código sea milagrosamente casi seis veces más rápido. #include <algorithm> #include <ctime> #include <iostream> int main () {// Ge ...
Establecer el 27 de junio de 2012 a las 4:51 pm
5
respuestas

¿Por qué es (a * b! = 0) más rápido que (a! = 0 b! = 0) en Java?

Escribo algo de código en Java, donde en algún punto el flujo del programa está determinado por si las dos variables int "a" y "b" son distintas de cero (nota: a y b nunca son negativas y nunca deben estar dentro del entero números de desbordamiento ...
set 21 de febrero '16 a las 4:51
10
respuestas

¿Cuál es el efecto de ordenar, si ... más, si las afirmaciones son probables?

En particular, si tengo una serie de declaraciones if ... else if, y de alguna manera sé de antemano la probabilidad relativa de que cada operador se evalúe como verdadero, ¿en qué medida la diferencia en el tiempo de ejecución las clasifica por orden de probabilidad? ...
Set 19 de octubre. '17 a las 18:17
7
respuestas

¿Existe una sugerencia de compilación para que gcc haga que la predicción de bifurcaciones siempre vaya de cierta manera?

Para la arquitectura Intel, ¿hay una manera de ordenar al compilador GCC que genere código que siempre obliga a la predicción de bifurcación de cierta manera en mi código? ¿Este hardware es compatible con Intel? ¿Qué pasa con otros compiladores o ap ...
establecido en 08 de mayo de 15 a 21:54
5
respuestas

¿Cuándo deberían preferirse los hilos a los bucles tradicionales para un mejor rendimiento? ¿Los hilos aprovechan la predicción de la rama?

Acabo de leer sobre Branch-Prediction y quería probar cómo funciona con los subprocesos de Java 8. Sin embargo, el rendimiento con Streams siempre es peor que los bucles tradicionales. int totalSize = 32768; int filterValue = 1280; int [] array = new in ...
ambientada el 22 de diciembre. '16 a las 11:26
5
respuestas

Consejos portátiles para predecir la industria.

¿Hay alguna forma portátil de predecir la predicción de la rama? Considere el siguiente ejemplo: if (unlikely_condition) {/ * ..A .. * /} else {/ * ..B .. * /} No es eso: if (! Unlikely_condition) {/ * ..B .. * /} otra cosa ...
set 13 de septiembre '10 a las 20:35
8
respuestas

Programación con sucursales.

Leí que una predicción errónea de la industria puede ser un cuello de botella para una aplicación. Como veo, la gente a menudo muestra un código de ensamblador que descubre este problema y afirma que los programadores generalmente pueden predecir dónde está la rama ...
Preguntó el 15 de septiembre. '15 a las 11:48
2
respuestas

La fusión interna sin ramas es más lenta que la fusión interna con una rama

Hace poco hice una pregunta en una revisión de código para ver un algoritmo de clasificación llamado QuickMergeSort. No voy a entrar en detalles, pero en algún momento el algoritmo realiza una fusión interna: en lugar de usar memoria adicional para almacenar ...
ambientada el 13 de diciembre. '16 a las 22:53
5
respuestas

¿Por qué esta característica de C ++ produce tantas predicciones incorrectas de la industria?

Sea A una matriz que contenga un número impar de ceros y unos. Si n es el tamaño de A, entonces A está diseñado de tal manera que los elementos del primer ceil (n / 2) son 0, y los elementos restantes son 1. Entonces, si n = 9, A se verá así: 0,0,0,0,0, 1,1,1,1 El objetivo es ...
Preguntó el 15 de septiembre. '16 a las 17:44
2
respuestas

¿GCC recibe un código subóptimo para predecir una rama estática?

Desde mi curso universitario, escuché que, de acuerdo, es mejor colocar una condición más probable en lugar de hacerlo en otro lugar, lo que puede ayudar a predecir una rama estática. Por ejemplo: if (check_collision (jugador, enemigo)) {// muy poco probable que sea verdad ...
fijado el 26 de enero '17 a las 21:49
4
respuestas

Predicción de la industria y división cero

Escribí un código que se veía así: if (denominator == 0) {return false; } int resultado = valor / denominador; ... cuando estaba pensando en el comportamiento de bifurcación en la CPU. delphi-faq.net.site/questions/1 / ... Esta respuesta indica que la CPU intentará ...
set 03 ago. '15 a las 11:22
5
respuestas

¿Qué tan común es la predicción de rama en los procesadores actuales?

Debido al gran impacto en el rendimiento, nunca me pregunto si mi escritorio actual tiene un procesador de predicción de sucursal. Por supuesto Pero ¿qué pasa con las diversas ofertas de ARM? Los teléfonos iPhone o Android tienen una predicción sobre ...
fijado el 23 de noviembre '11 a las 2:31 pm
3
respuestas

¿Es "==" en una matriz ordenada no más rápido que una matriz sin clasificar?

Nota: Creo que la supuesta pregunta duplicada está relacionada principalmente con la comparación "<" y ">", pero no con la comparación "==" y, por lo tanto, no responde mi pregunta sobre la efectividad del operador "==". Durante mucho tiempo, creí que el "procesamiento" ...
establecido el 18 de agosto '15 a las 6:51
4
respuestas

X86-64 Construir optimización de rendimiento: nivelación y predicción de ramificación

Actualmente, codifico versiones altamente optimizadas de algunas funciones estándar de la biblioteca C99, como strlen (), memset (), etc., utilizando la compilación x86-64 con instrucciones SSE-2. Hasta ahora he conseguido excelentes resultados ...
set 08 ago. '13 a las 0:18