Get the latest tech news
The ITTAGE indirect branch predictor
Modern CPUs are actually pretty good at predicting the indirect branch inside an interpreter loop, _contra_ the conventional wisdom. We take a deep dive into the ITTAGE indirect branch prediction algorithm, which is capable of making those predictions, and draw some connections to some other interests of mine in the areas of fuzzing and reinforcement learning.
The author of that predictor wrote a paper exploring prediction on bytecode interpreters and found that his ITTAGE exhibited similar performance to Intel Haswell CPUs and suggested they use a variation of it, but I don’t think we know for sure. Reading these papers, it really jumped out at me the extent to which it’s not enough to have the right high-level ideas; a high-performing implementation of TAGE or ITTAGE (or any branch predictor) is the result of both a good design, and a ton of careful tuning and balancing of tradeoffs. As best I can tell, this technique worked fairly well; the second paper achieved state-of-the-art performance on Montezuma’s Revenge, an Atari game which was famously hard for reinforcement learning algorithms, since it requires extensive exploration and manipulation of keys and equipment prior to receiving any score.
Or read this on Hacker News