Modern multi-core systems provide huge computational capabilities, which can be used to run multiple processes concurrently. To achieve the best possible performance within limited power budgets, the various system resources need to be allocated effectively. Any mismatch between runtime resource requirement and allocation leads to a sub-optimal energy-delay product (EDP). Different optimization techniques exist for addressing the problem of mismatch between the dynamic requirement and runtime allocation of the system resources. Choosing between multiple optimizations at runtime is complex due to the non-additive effects, making the scenario suitable for the application of machine learning techniques. We present a novel method, Machine Learned Machines (MLM), by using online reinforcement learning (RL) to perform dynamic partitioning of the last level cache (LLC), along with dynamic voltage and frequency scaling (DVFS) of the core and uncore (interconnection network and LLC). We have proposed and evaluated three different MLM co-optimization techniques based on independent and cooperative multi-agent learners. We show that the co-optimization results in a much lower system EDP than any of the techniques applied individually. We explore various RL models targeted toward optimization of different system metrics and study their effects on a system EDP, system throughput (STP), and Fairness. The various proposed techniques have been extensively evaluated with a mix of 20 workloads on a 4-core system using Spec2006 benchmarks. We have further evaluated our cooperative MLM techniques on a 16-core system. The results show an average of 20.5% and 19.1% system EDP improvement on a 4-core and 16-core system, respectively, with limited degradation of STP and Fairness. Europe (DATE-2016) conference with the title "Machine Learned Machines: Adaptive Co-optimization of Caches, Cores, and On-chip Network" in March 2016. This extension has explored four additional co-optimization models. Two of the additional models are extensions of the DATE-2016 proposal, while two models are novel co-optimization models based on cooperative learning among the multiple agents. The two cooperative learner-based co-optimization techniques, coMLM and JMLM, are shown to scale well to higher core counts by evaluating it on a 16-core system, which exhibits 19.1% system EDP improvement.
INTRODUCTIONA multi-core system is expected to run different programs simultaneously with their own runtime resource requirements. These resource requirements vary as the program executes, and any mismatch in the resource requirement and allocation leads to sub-optimal performance and power. Various proposed optimization techniques address this problem of resource mismatch.Multiprocessor systems-on-chip (MPSoC) have been witnessing increasing core counts to enable higher computational capabilities. The increasing core count leads to an increase in the shared resources such as Last Level Cache (LLC) and interconnects. The increasing hardware size and complexity poses mu...