  To close the gap between memory and processors, and in turn improve
performance, there has been an abundance of work in the area of
data/instruction prefetcher designs. Prefetchers are deployed in each level of
the memory hierarchy, but typically, each prefetcher gets designed without
comprehensively accounting for other prefetchers in the system. As a result,
these individual prefetcher designs do not always complement each other, and
that leads to low average performance gains and/or many negative outliers. In
this work, we propose SuitAP (Suite of random forests for Adaptation of
Prefetcher system configuration), which is a hardware prefetcher adapter that
uses a suite of random forests to determine at runtime which prefetcher should
be ON at each memory level, such that they complement each other. Compared to a
design with no prefetchers, using SuitAP we improve IPC by 46% on average
across traces generated from SPEC2017 suite with 12KB overhead. Moreover, we
also reduce negative outliers using SuitAP.
