Leistungsbewertung und Profiling

Mit Leistungszählern wurde festgestellt, dass sehr viele Verzweigungen falsch vorhergesagt werden. Welche Verbesserungsmethode trifft zu?

  1. AWeitere Verzweigungen in die Schleife einfügen
  2. BDie Daten sortieren, damit Verzweigungsergebnisse leichter vorhersagbar werden, oder Verzweigungen durch bedingte Auswahl oder Berechnung ganz vermeiden
  3. CDie Cache-Kapazität verringern
Antwort und Erläuterung anzeigen

Antwort: B. Die Daten sortieren, damit Verzweigungsergebnisse leichter vorhersagbar werden, oder Verzweigungen durch bedingte Auswahl oder Berechnung ganz vermeiden

Bei falsch vorhergesagter Verzweigung verwirft die CPU die spekulativ ausgeführten Befehle und beginnt neu; dabei gehen jedes Mal einige zehn Zyklen oder mehr verloren. Bei zufälligen Daten ist das Ergebnis einer Verzweigung wie „wenn der Wert 128 oder mehr ist“ nicht vorhersagbar. Werden die Daten vorher sortiert, sind die Ergebnisse gleichförmig und die Vorhersage trifft eher, und mit bedingten Auswahlbefehlen oder Bitoperationen entfällt die Verzweigung selbst. Auch der Compiler kann zu solchen Umwandlungen angeregt werden.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Leistungsbewertung und Profiling

  1. Welche Hauptkategorien teilen bei der Top-down-Analyse (Top-down Microarchitecture Analysis) mit Leistungszählern die Nutzung der Befehlsverarbeitungs-Slots der CPU ein?
  2. Das Programm ist langsam, doch die CPU-Auslastung war mit etwa 20 % niedrig. Was ist die wahrscheinlichste Ursache?
  3. Um zu prüfen, ob ein Programm rechen- oder speichergebunden ist, wurde die Ausführungszeit bei unterschiedlicher CPU-Frequenz gemessen. Welches Ergebnis ist bei Speichergebundenheit im Allgemeinen zu erwarten?
  4. Welche Richtung zur Leistungssteigerung ist richtig, wenn sich im Roofline-Modell zeigt, dass eine Verarbeitung im durch die Speicherbandbreite begrenzten Bereich liegt?
  5. Was misst der STREAM-Benchmark hauptsächlich?