Questions avec tag 'prédiction de branche'

Dans une architecture informatique, le prédicteur de branche est un circuit numérique qui essaie de deviner quelle branche (par exemple, la structure if-then-else) ira avant qu’elle ne soit connue avec certitude. L'objectif de la prédiction de branche est d'améliorer le flux dans le pipeline d'instructions. Les prédicteurs industriels jouent un rôle crucial dans la réalisation de performances élevées dans de nombreuses architectures de microprocesseurs modernes à base de microprocesseurs, telles que x86.
26
réponses

Pourquoi est-il plus rapide de traiter un tableau trié qu'un tableau non trié?

Voici un morceau de code C ++ qui semble très particulier. Pour une raison étrange, trier les données miraculeusement rend le code presque six fois plus rapide. #include <algorithm> #include <ctime> #include <iostream> int main () {// Ge ...
Le 27 juin 12 à 16h51
5
réponses

Pourquoi (a * b! = 0) est-il plus rapide que (a! = 0 b! = 0) en Java?

J'écris du code en Java où, à un moment donné, le déroulement du programme est déterminé par le fait que les deux variables int "a" et "b" sont non nulles (remarque: a et b ne sont jamais négatifs et ne doivent jamais être compris dans l'entier nombre de débordement ...
mis le 21 février '16 à 4:51
10
réponses

Quel est l'effet de l'ordre, si ... sinon, si les déclarations sont en probabilité?

En particulier, si j’ai une série de déclarations if ... else si, et que je connais par avance la probabilité relative que chaque opérateur s’évalue en vrai, dans quelle mesure la différence d’exécution les trie-t-elle par ordre de probabilité? ...
fixé le 19 octobre. '17 à 18h17
7
réponses

Existe-t-il un indice de compilation pour que gcc fasse en sorte que la prédiction de branche aille toujours d'une certaine manière?

Pour l'architecture Intel, existe-t-il un moyen de charger le compilateur GCC de générer un code qui force toujours la prédiction de branche d'une certaine manière dans mon code? Ce matériel prend-il en charge Intel? Qu'en est-il des autres compilateurs ou ap ...
fixé le 08 mai 15 à 21:54
5
réponses

Quand faut-il privilégier les threads par rapport aux boucles traditionnelles pour de meilleures performances? Les threads tirent-ils parti de la prédiction de branche?

Je viens juste de lire un article sur Branch-Prediction et je voulais essayer son fonctionnement avec les threads Java 8. Toutefois, les performances avec Streams s'avèrent toujours pires que celles en boucle traditionnelle. int totalSize = 32768; int filterValue = 1280; int [] array = new in ...
fixé le 22 décembre. '16 à 11h26
5
réponses

Astuces portables pour prédire l'industrie

Existe-t-il un moyen portable de prédire la prédiction de branche? Prenons l’exemple suivant: if (Improbable_condition) {/ * ..A .. * /} else {/ * ..B .. * /} N’est pas: if (! Unlobody_condition) {/ * ..B .. * /} sinon ...
mis le 13 septembre '10 à 20h35
8
réponses

Programmation avec des branches

J'ai lu qu'une mauvaise prévision de l'industrie peut être un goulot d'étranglement pour une application. Comme je le vois, les gens montrent souvent un code assembleur qui découvre ce problème et indique que les programmeurs peuvent généralement prédire où se trouve la branche ...
demandé le 15 septembre '15 à 11h48
2
réponses

La fusion interne sans branches est plus lente que la fusion interne avec une branche

J'ai récemment posé une question dans une révision de code pour afficher un algorithme de tri appelé QuickMergeSort. Je n'entrerai pas dans les détails, mais à un moment donné, l'algorithme effectuera une fusion interne: au lieu d'utiliser de la mémoire supplémentaire pour le stockage ...
fixé le 13 décembre. '16 à 22:53
5
réponses

Pourquoi cette fonctionnalité C ++ génère-t-elle autant de prédictions industrielles incorrectes?

Soit A un tableau contenant un nombre impair de zéros et de uns. Si n est la taille de A, alors A est conçu de manière à ce que les premiers éléments de ceil (n / 2) soient 0 et les éléments restants à 1. Donc, si n = 9, A ressemblera à ceci: 0,0,0,0,0, 1,1,1,1 Le but est ...
demandé le 15 septembre '16 à 17h44
2
réponses

GCC reçoit-il un code sous-optimal pour prédire une branche statique?

Lors de mon cursus universitaire, j'ai entendu dire qu'il était préférable de placer une condition plus probable dans if, plutôt qu'ailleurs, ce qui peut aider à prévoir un prédicteur d'une branche statique. Par exemple: if (check_collision (joueur, ennemi)) {// il est très peu probable que ce soit vrai ...
mis le 26 janvier '17 à 21h49
4
réponses

Prédiction industrielle et zéro partage

J'ai écrit un code qui ressemblait à ceci: if (dénominateur == 0) {return false; } int result = valeur / dénominateur; ... quand je pensais au comportement des branches dans la CPU. recomed.site.site/questions/1 / ... Cette réponse indique que le processeur essaiera de ...
mis le 03 août '15 à 11h22
5
réponses

Quelle est la fréquence de prédiction de branche sur les processeurs actuels?

En raison de l'impact considérable sur les performances, je ne me demande jamais si mon ordinateur de bureau actuel est doté d'un processeur de prédiction de branche. Bien sur Mais qu'en est-il des différentes offres ARM? Les téléphones iPhone ou Android ont une prédiction sur ...
fixé le 23 novembre '11 à 14h31
3
réponses

Est-ce que "==" dans un tableau trié n'est pas plus rapide qu'un tableau non trié?

Remarque: Je pense que la question en double alléguée est principalement liée aux comparaisons "<> et">, mais pas à la comparaison "==" et, par conséquent, ne répond pas à ma question sur l'efficacité de l'opérateur "==". Pendant longtemps, j'ai cru que le "traitement" ...
fixé le 18 août '15 à 6h51
4
réponses

Optimisation des performances de construction X86-64 - Prévision de nivellement et de branchement

Actuellement, je code des versions hautement optimisées de certaines fonctions de la bibliothèque C99 standard, telles que strlen (), memset (), etc., à l’aide de la compilation x86-64 avec les instructions SSE-2. Jusqu'à présent, j'ai réussi à obtenir d'excellents résultats ...
mis 08 août '13 à 0:18