Abstract
The motivation for the search of efficient cache management policies is due to the drawback of the large number of CPU cycles taken to fetch a block from the main memory to the last level cache. Recently, Researchers are using most recent advancements in machine learning (ML) to optimise the performance of cache. They designed different models using ML techniques to improve the performance of cache. Unfortunately, the schemes suffer from several drawbacks like storage complexity incurred while storing the extra bits required for prediction, excess time required for prediction, increase in difficulty of reuse prediction when workloads are increased, increase in energy consumption during the prediction process and lack in achieving expected accuracy. In order to overcome these drawbacks, cache reuse prediction is analysed using classification problem, which is actual view of the learning problem. The vital parameters used are the Frequency of access and reuse distance, in which the latter is modelled as stack distance. As an innovative idea, reuse distance is calculated based on status of each block into account. In addition, numerical nature of the dataset used in this article, helps in exploration of the ensemble-based ML, which is less frequently experimented into the context of cache memories rather than the deep learning approach. By applying suitably placed models, the memory references with high reuse capabilities are fetched into the cache. They are predicted with the aid of classification and cross-validation on the feature sets, which improve the accuracy and sensitivity by 6.2% and 5.46% respectively, when compared to the existing works.
Similar content being viewed by others
Data availability
The data generated during and/or analysed during the current study are available from the corresponding author on reasonable request.
References
Jiménez DA, Lin C (2001) Dynamic branch prediction with perceptrons. In: Proceedings of HPCA seventh international symposium on high-performance computer architecture, pp 197–206
Jimenez DA, Teran E (2017) Multi perspective reuse prediction. In: Proceedings of the 50th Annual IEEE/ACM international symposium on microarchitecture (MICRO-50), pp 436 –448. https://doi.org/10.1145/3123939.3123942
Teran E, Wang Z, Jimenez DA (2016) Perceptron learning for reuse prediction. In: 49thAnnual IEEE/ACM international symposium on microarchitecture (MICRO). https://doi.org/10.1109/micro.2016.7783705
Rai JK, Negi A, Wankar R, Nayak KD (2010) A ML based meta-scheduler for multi-core processors. Int J Adapt Resil Auton Syst 1(4):46–59. https://doi.org/10.4018/jaras.2010100104
Pekhimenko G, Huberty T, Cai R, Mutlu O, Gibbons PB, Kozuch MA, Mowry TC (2015) Exploiting compressed block size as an indicator of future reuse. In: 2015 IEEE 21st international symposium on high performance computer architecture (HPCA), pp 51–63
Wu C-J, Jaleel A , Hasenplaugh W, Martonosi M, Simon J, Steely C, Emer J (2011) SHiP Signature-based hit predictor for high performance caching. In: Proceedings of the 44th annual IEEE/ ACM international symposium on microarchitecture (MICRO- 44) New York, NY, USA, pp 430–441
Peled L, Weiser U, Etsion Y (2018) A neural network memory prefetcher using semantic locality
Keramidas G, Petoumenos P, Kaxiras S (2007) Cache replacement based on reuse- distance prediction. In: 25th international conference on computer design, pp 245–250
Ajorpaz SM, Garza E, Jindal S, Jiménez DA (2018) Exploring predictive replacement policies for instruction cache and branch target buffer. In: ACM/ IEEE 45th annual international symposium on computer architecture (ISCA), pp 519–532
Lai AC, Falsafi B (2000) Selective, accurate, and timely self-invalidation using last-touch prediction. In: International symposium on computer architecture, pp 139–148
Lai AC, Falsafi Fide CB (2001) Dead-block prediction and dead-block correlating prefetchers. SIGARCH Comput Archit News 29(2):144–154
Somogyi S, Wenisch TF, Hardavellas, N, Kim J, Ailamaki A , Falsafi B (2004) Memory coherence activity prediction in commercial workloads. In: Proceedings of the 3rd workshop on memory performance issues(WMPI ’04), New York, NY, USA, pp 37–45
Hu Z, Kaxira S, Martonosi M (2002) Timekeeping in the memory system: predicting and optimizing memory behavior. SIGARCH Computer Archit News 30(2):209–220
Abella A, Gonzalez X, Vera M, O’Boy FP (2005) Iatac: a smart predictor to turn-off l2 cache lines. ACM Trans Archit Code Optim 2(1):55–77
Liu H, Ferdman M, Huh ,Burger D (2008) Cache bursts: a new approach for eliminating dead blocks and increasing cache efficiency. In: Proceedings of the IEEE/ ACM international symposium on microarchitecture, Los Alamitos, CA, USA, pp 222–233
Khan SM, Tian Y, Jimenez DA ( 2010) Sampling dead block prediction for last-level caches. In: 43rd Annual IEEE/ACM international symposium on microarchitecture, pp 175–186
Sweety Prachi C (2018) Branch prediction techniques used in pipeline processors: a review. Int J Pure Appl Math 119(15):2843–2851
Rosenblatt F (1962) Principles of neurodynamic: perceptrons and the theory of brain mechanisms. Spartan, London
Shi Z, Huang X, Jain A, Lin C (2019) Applying deep learning to the cache replacement problem. In: Proceedings of the 52nd annual IEEE/ACM international symposium on microarchitecture, pp 413–425
Gawehn E, Hiss JA, Schneider G (2016) Deep learning in drug discovery. Mol Inf 2:1178
Goh GB, Hodas NO, Vishnu A (2017) Deep learning for computational chemistry. J Comput Chem 38(16):11258
Vietri G, Rodriguez LV, Martinez WA, Lyons S, Liu J, Rangaswami R, Narasimhan G (2018) Driving cache replacement with ml-based lecar. In: 10th USENIX workshop on hot topics in storage and filesystems
Hashemi M, Swersky K, Smith JA, Ayers G, Litz H, Chang J, Kozyrakis CE, Ranganathan P (2018) Learning memory AAccess patterns. In: Proceedings of the 35th international conference on ML, PMLR 80, pp 1919–1928
Wang H, Hao H, Alizadeh MI, Mao H (2019) Learning caching policies with subsampling. In: Procedings of the 33rd conference on neural information processing systems (NeurIPS 2019), Vancouver, Canada
Drault LB (2017) Evaluation of cache inclusion policies in cache management
Herodotou H (2019) AutoCache: employing ML to automate caching in distributed file systems. In: 2019 IEEE 35th international conference on data engineering workshops (ICDEW), pp 133–139
The ChampSim simulator (2017) https://github.com/ChampSim/ChampSim
Nethercote N, Seward J (2007) Valgrind: a framework for heavyweight dynamic binary instrumentation. In: Proceedings of the 28th ACM SIGPLAN conference on programming language design and implementation (PLDI ’07), San Diego, California, USA, pp 89–100
Aarshay J (2016) Complete guide to parameter tuning in XGBoost with codes in Python
Vishal M, Venkat AS (2019) XGBoost algorithm: Long May She Reign
Pedregosa F, Varoquaux G, Gramfort A, Michel V, Thirion B, Grisel O, Blondel M, Prettenhofer P, Weiss R, Dubourg V, Vanderplas J, Passor A, Cournapeau D, Brucher M, Perrot M, Duchesnay E (2011) Scikit-learn: ML in Python. J ML Res 12:2825–2830
Nagesh SC (2019) Introduction to artificial neural networks (ANN)
Jeff H (2018) TPOT automated ML in python
Song S, Wu Q (2017) Experiments with SPEC CPU 2017: similarity, balance, phase behavior and SimPoints, Department of Electrical and Computer Engineering,The University of Texas at Austin, TR-180515-01
Limaye A, Adegbija T (2018) A workload characterization of the SPEC CPU2017 benchmark suite. In: Proceedings of IEEE international symposium on performance analysis of systems and software (ISPASS). Belfast, pp 149–158. https://doi.org/10.1109/ISPASS.2018.00028
Son DO, Kim GB, Kim JM, Kim CH (2018) Cache reuse aware replacement policy for improving GPU cache performance. In: Kim K, Kim H, Baek N (eds) IT convergence and security 2017. Lecture Notes in Electrical Engineering, vol 450, Springer. https://doi.org/10.1007/978-981-10-6454-818
Freund Y, Schapire R (1995) A decision-theoretic generalization of on-line learning and an application to boosting
Glorot Xavier, Bengio Y (2010) Understanding the difficulty of training deep feedforward neural networks. In: International conference on artificial intelligence and statistics
Zhang H (2004) The optimality of Naive Bayes. In: Proceedings of FLAIRS
Smola AJ, Schölkopf B (2004) A tutorial on support vector regression statistics. Comput Arch 14(3):199–222
Henning JL (2006) SPEC CPU2006 benchmark descriptions. SIGARCH Comput Archit News 4(4):1–17
Olanrewaju RF, Baba A, Khan BUI, Yaacob M, Azman AW, Mir MS (2016) A study on performance evaluation of conventional cache replacement algorithms: a review. In: 2016 fourth IEEE international conference on parallel, distributed and grid computing (PDGC), pp 550–556
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Jose, J., Ramasubramanian, N. Applying machine learning to enhance the cache performance using reuse distance. Evol. Intel. 16, 1195–1216 (2023). https://doi.org/10.1007/s12065-022-00730-1
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12065-022-00730-1