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.

Get the Android app

Or read this on Hacker News

Read more on:

Photo of ITTAGE

ITTAGE