Fragen, die mit 'Branchenvorhersage' getaggt sind

In einer Computerarchitektur ist der Zweigprädiktor eine digitale Schaltung, die versucht zu erraten, welcher Zweig (beispielsweise die If-Then-else-Struktur) gehen wird, bevor er sicher bekannt ist. Das Ziel der Verzweigungsvorhersage ist die Verbesserung des Flusses in der Anweisungspipeline. Branchenprädiktoren spielen eine entscheidende Rolle bei der Erzielung einer hohen Leistung in vielen modernen Mikroprozessor-Architekturen auf Mikroprozessorbasis, wie z. B. x86.
26
antwortet

Warum kann ein sortiertes Array schneller verarbeitet werden als ein unsortiertes Array?

Hier ist ein Stück C ++ - Code, das sehr eigenartig erscheint. Aus irgendeinem seltsamen Grund macht das Sortieren der Daten auf wundersame Weise den Code fast sechsmal schneller. #include <algorithm> #include <ctime> #include <iostream> int main () {// Ge ...
Am 27. Juni 12 um 16:51 Uhr festgelegt
5
antwortet

Warum ist (a * b! = 0) in Java schneller als (a! = 0 b! = 0)?

Ich schreibe etwas Code in Java, wo irgendwann der Programmfluss dadurch bestimmt wird, ob die beiden Variablen int "a" und "b" nicht Null sind (Anmerkung: a und b sind niemals negativ und sollten niemals innerhalb der Ganzzahl liegen Überlaufnummern ...
Set 21 Feb 16 um 04:51 Uhr
10
antwortet

Was bewirkt die Reihenfolge, wenn ... sonst, wenn die Aussagen wahrscheinlich sind?

Insbesondere wenn ich eine Reihe von if ... else if -Anweisungen habe und ich im Voraus die relative Wahrscheinlichkeit kenne, die jeder Operator als wahr auswertet, wie viel sortiert der Unterschied in der Laufzeit sie nach der Wahrscheinlichkeit? ...
19. Oktober eingestellt. '17 um 18:17
7
antwortet

Gibt es einen Compiler-Hinweis für gcc, damit die Verzweigungsvorhersage immer einen bestimmten Weg ausführt?

Gibt es für die Intel-Architektur eine Möglichkeit, den GCC-Compiler anzuweisen, Code zu generieren, der die Verzweigungsvorhersage in meinem Code immer auf eine bestimmte Weise erzwingt? Unterstützt diese Hardware Intel? Was ist mit anderen Compilern oder ap ...
am 8. Mai 15 um 21:54 Uhr festgelegt
5
antwortet

Wann sollten Threads für eine bessere Leistung gegenüber herkömmlichen Schleifen bevorzugt werden? Nutzen Threads die Verzweigungsvorhersage?

Ich habe gerade über Branch-Prediction gelesen und wollte ausprobieren, wie es mit Java-8-Threads funktioniert, jedoch ist die Leistung bei Streams immer schlechter als bei herkömmlichen Schleifen. int totalSize = 32768; int filterValue = 1280; int [] array = neu in ...
am 22. Dezember festgelegt. '16 um 11:26
5
antwortet

Tragbare Tipps zum Vorhersagen der Branche

Gibt es eine tragbare Möglichkeit, die Vorhersage von Zweigen vorherzusagen? Betrachten Sie das folgende Beispiel: if (unlikely_condition) {/ * ..A .. * /} else {/ * ..B .. * /} Stimmt nicht: if (! Unlikely_condition) {/ * ..B .. * /} sonst ...
13. September eingestellt '10 um 20:35
8
antwortet

Programmierung mit Niederlassungen

Ich habe gelesen, dass eine falsche Branchenprognose für eine Anwendung ein heißer Engpass sein kann. Wie ich sehe, zeigen die Leute oft einen Assembler-Code, der dieses Problem aufdeckt, und besagt, dass Programmierer normalerweise vorhersagen können, wo sich der Zweig befindet.
fragte am 15. Sep. '15 um 11:48
5
antwortet

Warum erzeugt diese C ++ - Funktion so viele falsche Branchenvorhersagen?

Sei A ein Array mit einer ungeraden Anzahl von Nullen und Einsen. Wenn n die Größe von A ist, ist A so gestaltet, dass die ersten Elemente (n / 2) 0 und die übrigen Elemente 1 sind. Wenn also n = 9 ist, sieht A so aus: 0,0,0,0,0, 1,1,1,1 Das Ziel ist ...
fragte am 15. Sep. 16 um 17:44 Uhr
2
antwortet

Empfängt GCC einen suboptimalen Code zur Vorhersage eines statischen Zweigs?

Ich habe aus meinem Universitätslehrgang erfahren, dass es nach Absprache besser ist, eine eher wahrscheinliche Bedingung als wenn nicht anderswo zu setzen, was einem Prädiktor eines statischen Zweigs helfen kann. Zum Beispiel: if (check_collision (Spieler, Feind)) {// sehr unwahrscheinlich wahr ...
Set 26. Januar '17 um 21:49
4
antwortet

Branchenvorhersage und Nullsplit

Ich schrieb Code, der so aussah: if (Nenner == 0) {return false; } int Ergebnis = Wert / Nenner; ... als ich über das Verzweigungsverhalten in der CPU nachdachte. spravaw.site.site/questions/1 / ... Diese Antwort gibt an, dass die CPU versucht, ...
set 03 Aug. '15 um 11:22
5
antwortet

Wie häufig ist die Branchenvorhersage auf aktuellen Prozessoren?

Aufgrund der enormen Auswirkungen auf die Leistung frage ich mich nie, ob mein aktueller Desktop über einen Prozessor für Verzweigungsvorhersage verfügt. Natürlich Aber was ist mit den verschiedenen ARM-Angeboten? Das iPhone oder Android-Handy hat eine Vorhersage über ...
am 23. November eingestellt '11 um 14:31 Uhr
3
antwortet

Ist "==" in einem sortierten Array nicht schneller als ein unsortiertes Array?

Anmerkung: Ich denke, die angeblich doppelte Frage bezieht sich hauptsächlich auf den Vergleich "<" und ">", aber nicht auf den Vergleich "==" und beantwortet daher meine Frage nach der Effektivität des Operators "==" nicht. Ich glaubte >
am 18. August eingestellt '15 um 6:51
4
antwortet

X86-64 Build Performance Optimization - Vorausberechnung für Abgleich und Verzweigung

Gegenwärtig codiert ich hochoptimierte Versionen einiger Standard-C99-Bibliotheksfunktionen, wie z. B. strlen (), memset () usw., wobei der Befehl x86-64 mit SSE-2-Anweisungen verwendet wird. Bisher habe ich hervorragende Ergebnisse erzielt ...
set 08 aug. '13 um 0:18