Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3357526.3357534acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmemsysConference Proceedingsconference-collections
research-article

LLAMA - automatic memory allocations: an LLVM pass and library for automatically determining memory allocations

Published: 30 September 2019 Publication History

Abstract

There is an expectation among experts that the memory hierarchy will be expanded to provide support for multi-level memory, enabling the use of new memory technologies living side-by-side with traditional DRAM. In doing so, the advantages of traditional DRAM can be retained alongside the advantages of these new memory technologies. However, in order to be effective, memory must be allocated to different memory levels, either manually by the programmer, or automatically.
This paper introduces a novel process which combines a custom LLVM Pass with a custom C library to automatically handle memory allocations performed by function calls without the need for programmer input or hardware/OS level changes. When utilizing a simulated multi-level memory architecture with dual nonvolatile RAM and volatile DRAM, the results demonstrate that such a program can alleviate the burden on the programmer while still maintaining the performance advantages of DRAM and the higher density of non-volatile memory technology.

References

[1]
Arimoto, A. High-density scalable twin transistor ram (ttram) with verify control for soi platform memory ips, nov. 2007. Solid-State Circuits.
[2]
Arthur Lattner, C. Llvm: An infrastructure for multi-stage optimization.
[3]
Awad, A., Hammond, S., Hughes, C., Rodrigues, A., Hemmert, S., and Hoekstra, R. Performance analysis for using non-volatile memory dimms: Opportunities and challenges. In Proceedings of the International Symposium on Memory Systems (New York, NY, USA, 2017), MEMSYS '17, ACM, pp. 411--420.
[4]
Branscombe, M. How intel's new optane persistent memory will change your data center, June 2018.
[5]
Ceruzzi, P. E., Paul, E., et al. A history of modern computing. MIT press, 2003.
[6]
Chen, D., Ye, C., and Ding, C. Write locality and optimization for persistent $$memory. In Proceedings of the Second International Symposium on Memory Systems (New York, NY, USA, 2016), MEMSYS '16, ACM, pp. 77--87.
[7]
Chen, E., Lottis, D., Driskill-Smith, A., Druist, D., Nikitin, V., Watts, S., Tang, X., and Apalkov, D. Non-volatile spin-transfer torque ram (stt-ram). In 68th Device Research Conference (June 2010), pp. 249--252.
[8]
Feldman, J. M., and Retter, C. Computer Architecture; A Designer's Text Based on a Generic RISC. McGraw-Hill, Inc., 1993.
[9]
Hammond, S. D., Rodrigues, A. F., and Voskuilen, G. R. Multi-level memory policies: What you add is more important than what you take out. In Proceedings of the Second International Symposium on Memory Systems (New York, NY, USA, 2016), MEMSYS '16, ACM, pp. 88--93.
[10]
Heuring, V. P., Jordan, H. F., and Murdocca, M. Computer systems design and architecture. Addison-Wesley, 1997.
[11]
Houston, M., Park, J.-Y., Ren, M., Knight, T., Fatahalian, K., Aiken, A., Dally, W., and Hanrahan, P. A portable runtime interface for multi-level memory hierarchies. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (New York, NY, USA, 2008), PPoPP '08, ACM, pp. 143--152.
[12]
Itoh, K. The history of dram circuit designs -- at the forefront of dram development --. IEEE Solid-State Circuits Society Newsletter 13, 1 (Winter 2008), 27--31.
[13]
Jacob, B., Ng, S., and Wang, D. Memory systems: cache, DRAM, disk. Morgan Kaufmann, 2010.
[14]
Jagasivamani, M., Walden, C., Singh, D., Kang, L., Li, S., Asnaashari, M., Dubois, S., Jacob, B., and Yeung, D. Memory-systems challenges in realizing monolithic computers. In Proceedings of the International Symposium on Memory Systems (New York, NY, USA, 2018), MEMSYS '18, ACM, pp. 98--104.
[15]
Jayaraj, J., Rodrigues, A. F., Hammond, S. D., and Voskuilen, G. R. The potential and perils of multi-level memory. In Proceedings of the 2015 International Symposium on Memory Systems (2015), ACM, pp. 191--196.
[16]
Khaldi, D., and Chapman, B. Towards automatic hbm allocation using llvm: A case study with knights landing. In 2016 Third Workshop on the LLVM Compiler Infrastructure in HPC (LLVM-HPC) (Nov 2016), pp. 12--20.
[17]
Kurinec, S. K., and Iniewski, K. Nanoscale semiconductor memories: Technology and applications. CRC press, 2014.
[18]
Lattner, C. Llvm and clang: Next generation compiler technology. In The BSD conference (2008), pp. 1--2.
[19]
Lattner, C., and Adve, V. Llvm: a compilation framework for lifelong program analysis transformation. In International Symposium on Code Generation and Optimization, 2004. CGO 2004. (March 2004), pp. 75--86.
[20]
Lee, B. C., Zhou, P., Yang, J., Zhang, Y., Zhao, B., Ipek, E., Mutlu, O., and Burger, D. Phase-change technology and the future of main memory. IEEE Micro 30, 1 (Jan 2010), 143--143.
[21]
Meena, J., Min Sze, S., Chand, U., and Tseng, T.-Y. Overview of emerging non-volatile memory technologies. Nanoscale Research Letters 9 (09 2014), 1--33.
[22]
Middelhoek, S., George, P. K., and Dekker, P. Physics of computer memory devices. Academic Press, Inc., 1976.
[23]
Moore, B., Voskuilen, G. R., Rodrigues, A. F., Hammond, S. D., and Hemmert, K. S. Structural simulation toolkit. lunch & learn. Tech. rep., Sandia National Laboratories (SNL-NM), Albuquerque, NM (United States), 2015.
[24]
Nair, P. J., Kim, D.-H., and Qureshi, M. K. Archshield: Architectural framework for assisting dram scaling by tolerating high error rates. SIGARCH Comput. Archit. News 41, 3 (June 2013), 72--83.
[25]
Oden, L., and Balaji, P. Hexe: A toolkit for heterogeneous memory management. 2017 IEEE 23rd International Conference on Parallel and Distributed Systems (ICPADS) (2017), 656--663.
[26]
Okhonin, S., Nagoga, M., Carman, E., Beffa, R., and Faraoni, E. New generation of z-ram. In 2007 IEEE International Electron Devices Meeting (2007), IEEE, pp. 925--928.
[27]
Riley, W. B. Electronic computer memory technology. McGraw-Hill, 1971.
[28]
Rodrigues, A. F., Hemmert, K. S., Barrett, B. W., Kersey, C., Oldfield, R., Weston, M., Risen, R., Cook, J., Rosenfeld, P., Cooper-Balis, E., and Jacob, B. The structural simulation toolkit. SIGMETRICS Perform. Eval. Rev. 38, 4 (Mar. 2011), 37--42.
[29]
Rodrigues, A. F., Hemmert, K. S., Barrett, B. W., Kersey, C., Oldfield, R., Weston, M., Risen, R., Cook, J., Rosenfeld, P., CooperBalls, E., and Jacob, B. The structural simulation toolkit. SIGMETRICS Perform. Eval. Rev. 38, 4 (Mar. 2011), 37--42.
[30]
Rodriguez, N., Cristoloveanu, S., and Gamiz, F. A-ram: Novel capacitor-less dram memory. In 2009 IEEE International SOI Conference (2009), IEEE, pp. 1--2.
[31]
Rudoff, A. Persistent memory programming. Login: The Usenix Magazine 42 (2017), 34--40.
[32]
Sampson, A. Llvm for grad students, August 2015.
[33]
Stelle, G., Olivier, S. L., Stark, D., Rodrigues, A. F., and Hemmert, K. S. Using a complementary emulation-simulation co-design approach to assess application readiness for processing-in-memory systems. In Proceedings of the 1st International Workshop on Hardware-Software Co-Design for High Performance Computing (Piscataway, NJ, USA, 2014), Co-HPC '14, IEEE Press, pp. 64--71.
[34]
Steve Swanson. A Vision of Persistence, Jul 2018.
[35]
Tramm, J. R., Gunow, G., He, T., Smith, K. S., Forget, B., and Siegel, A. R. A task-based parallelism and vectorized approach to 3d method of characteristics (moc) reactor simulation for high performance computing architectures. Computer Physics Communications 202 (2016), 141--150.
[36]
Tramm, J. R., Siegel, A. R., Islam, T., and Schulz, M. XSBench - The Development and Verification of a Performance Abstraction for Monte Carlo Reactor Analysis. In PHYSOR 2014 - The Role of Reactor Physics toward a Sustainable Future (Kyoto).
[37]
Venkataraman, S., Tolia, N., Ranganathan, P., and Campbell, R. Consistent and durable data structures for non-volatile byte-addressable memory. pp. 61--75.
[38]
Voskuilen, G., Frank, M., Hammond, S., and Rodrigues, A. Evaluating the opportunities for multi-level memory--an asc 2016 l2 milestone. Sandia Report (2016).

Cited By

View all
  • (2022)MaPHeA: A Framework for Lightweight Memory Hierarchy-aware Profile-guided Heap AllocationACM Transactions on Embedded Computing Systems10.1145/352785322:1(1-28)Online publication date: 13-Dec-2022
  • (2021)MaPHeA: a lightweight memory hierarchy-aware profile-guided heap allocation frameworkProceedings of the 22nd ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems10.1145/3461648.3463844(24-36)Online publication date: 22-Jun-2021

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
MEMSYS '19: Proceedings of the International Symposium on Memory Systems
September 2019
517 pages
ISBN:9781450372060
DOI:10.1145/3357526
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 30 September 2019

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. compiler construction
  2. memory allocation/deallocation strategies
  3. memory management
  4. multi-level memory
  5. source code generation

Qualifiers

  • Research-article

Conference

MEMSYS '19
MEMSYS '19: The International Symposium on Memory Systems
September 30 - October 3, 2019
District of Columbia, Washington, USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)57
  • Downloads (Last 6 weeks)11
Reflects downloads up to 21 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2022)MaPHeA: A Framework for Lightweight Memory Hierarchy-aware Profile-guided Heap AllocationACM Transactions on Embedded Computing Systems10.1145/352785322:1(1-28)Online publication date: 13-Dec-2022
  • (2021)MaPHeA: a lightweight memory hierarchy-aware profile-guided heap allocation frameworkProceedings of the 22nd ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems10.1145/3461648.3463844(24-36)Online publication date: 22-Jun-2021

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media