Wie moderne CPUs Bytecode-Interpreter-Schleifen effizient vorhersagen
Bei der Untersuchung der Leistung eines neuen Python-Interpreters stellte der Autor fest, dass moderne CPUs indirekte Sprünge in Bytecode-Interpreter-Schleifen effizient vorhersagen können. Dies wird durch fortschrittliche Branch Predictors wie TAGE und ITTAGE erreicht. Diese Predictors bilden den Programmzähler (PC) und seinen Verlauf auf das vergangene Ausführungsverhalten ab und verwenden mehrere Tabellen mit geometrisch ansteigenden Verlaufslängen, um dynamisch die beste Vorhersage auszuwählen. Der Autor untersucht die Anwendung der Prinzipien von ITTAGE auf das coverage-guided Fuzzing und die Programmzustanderkundung und legt nahe, dass dies zu einem besseren Verständnis und zur besseren Erkundung von Interpretern und ähnlichen Programmen führen könnte.
Mehr lesen