skip to main content
10.1145/3609308.3625267acmconferencesArticle/Chapter ViewAbstractPublication PagessospConference Proceedingsconference-collections
research-article
Open Access

Morsels: Explicit Virtual Memory Objects

Published:23 October 2023Publication History

ABSTRACT

The tremendous growth of RAM capacity - now exceeding multiple terabytes - necessitates a reevaluation of traditional memory-management methods, which were developed when resources were scarce. Current virtual-memory subsystems handle address-space regions as sets of individual 4-KiB pages with demand paging and copy-on-write, resulting in significant management overhead. Although huge pages reduce the number of managed entities, they induce internal fragmentation and have a coarse copy granularity.

To address these problems, we introduce Morsels, a novel virtual-memory-management paradigm that is purely based on hardware data structures and enables the efficient sharing of virtual-memory objects between processes and devices while being well suited for non-volatile memory. Our benchmarks show that Morsels reduce the mapping time for a 6.82-GiB machine-learning model by up to 99.8 percent compared to conventional memory mapping in Linux.

References

  1. A. Bensoussan, C. T. Clingen, and R. C. Daley. "The multics virtual memory". In: Proceedings of the second symposium on Operating systems principles. SOSP '69. New York, NY, USA: Association for Computing Machinery, Oct. 1969, 30--42. isbn: 978-1-4503-7456-9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Daniel Bittman, Peter Alvaro, Pankaj Mehra, Darrell D. E. Long, and Ethan L. Miller. "Twizzler: a Data-Centric OS for Non-Volatile Memory". In: 2020 USENIX Annual Technical Conference (USENIX ATC '20). USENIX Association, July 2020, pp. 65--80. isbn: 978-1-93913314-4. url: https://www.usenix.org/conference/atc20/presentation/bittman.Google ScholarGoogle Scholar
  3. Jeffrey S. Chase, Henry M. Levy, Michael J. Feeley, and Edward D. Lazowska. "Sharing and Protection in a Single-Address-Space Operating System". In: ACM Trans. Comput. Syst. 12.4 (1994), 271--307. issn: 0734-2071. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Compute Express Link Consortium, Inc. CXL Specification, Revision 2.0. Oct. 2020.Google ScholarGoogle Scholar
  5. Alan Dearle, Rex di Bona, James Farrow, Frans Henskens, Anders Lindström, John Rosenberg, and Francis Vaughan. "Grasshopper: An Orthogonally Persistent Operating System". In: Comput. Syst. 7.3 (1994), 289--312. issn: 0895-6340.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Izzat El Hajj et al. "SpaceJMP: Programming with Multiple Virtual Address Spaces". In: Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems. ASPLOS '16. Atlanta, Georgia, USA: Association for Computing Machinery, 2016, 353--368. isbn: 9781450340915. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Dawson R. Engler, M. Frans Kaashoek, and James O'Toole. "Exokernel: An Operating System Architecture for Application-Level Resource Management". In: Proceedings of the 15th ACM Symposium on Operating Systems Principles (SOSP '95) (Copper Mountain, CO, USA). New York, NY, USA: ACM Press, Dec. 1995, pp. 251--266. isbn: 0-89791-715-4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Brad Fitzpatrick. "Distributed Caching with Mem-cached". In: Linux Journal 2004.124 (Aug. 2004), pp. 5--. issn: 1075--3583. url: http://dl.acm.org/citation.cfm?id=1012889.1012894.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Gen-Z Consortium. Gen-Z Core Specification, Revision 1.1. Oct. 2020.Google ScholarGoogle Scholar
  10. Georgi Gerganov. llama.cpp: Port of Facebook's LLaMA model in C/C++. June 2023. url: https://github.com/ggerganov/llama.cpp.Google ScholarGoogle Scholar
  11. Brendan Gregg. "The flame graph". In: Communications of the ACM 59.6 (2016), pp. 48--57.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Gernot Heiser, Kevin Elphinstone, Jerry Vochteloo, Stephen Russel, and Jochen Liedtke. "The Mungi Single-Address-Space Operating System". In: Software: Practice and Experience 18.9 (July 1998).Google ScholarGoogle Scholar
  13. Merle E. Houdek, Frank G. Soltis, and Roy L. Hoffman. "IBM System/38 Support for Capability-Based Addressing". In: Proceedings of the 8th Annual Symposium on Computer Architecture (ISCA). ISCA '81. Minneapolis, Minnesota, USA: IEEE Computer Society Press, 1981, 341--348.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Tom Jobbins. Selfee-13B-GGML-DOI (Revision 4dd57ef). 2023. url: https://huggingface.co/TheBloke/Selfee-13B-GGML-DOI. Google ScholarGoogle ScholarCross RefCross Ref
  15. Youngjin Kwon, Hangchen Yu, Simon Peter, Christopher J. Rossbach, and Emmett Witchel. "Coordinated and Efficient Huge Page Management with Ingens". In: 12th Symposium on Operating Systems Design and Implementation (OSDI '16). Savannah, GA, USA: USENIX Association, 2016, 705--721. isbn: 9781931971331.Google ScholarGoogle Scholar
  16. Viktor Leis, Adnan Alhomssi, Tobias Ziegler, Yannick Loeck, and Christian Dietrich. "Virtual-Memory Assisted Buffer Management". In: Proceedings of the ACM SIGMOD/PODS International Conference on Management of Data (SIGMOD'23). Seattle, WA, USA: ACM, June 2023. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Juan Navarro, Sitaram Iyer, and Alan Cox. "Practical, Transparent Operating System Support for Superpages". In: 5th Symposium on Operating Systems Design and Implementation (OSDI '02). Boston, MA: USENIX Association, Dec. 2002.Google ScholarGoogle Scholar
  18. Ismail Oukid, Daniel Booss, Adrien Lespinasse, Wolfgang Lehner, Thomas Willhalm, and Grégoire Gomes. "Memory Management Techniques for Large-Scale Persistent-Main-Memory Systems". In: Proc. VLDB Endow. 10.11 (2017), pp. 1166--1177. url: http://www.vldb.org/pvldb/vol10/p1166-oukid.pdf. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Ashish Panwar, Aravinda Prasad, and K. Gopinath. "Making Huge Pages Actually Useful". In: Proceedings of the Twenty-Third International Conference on Architectural Support for Programming Languages and Operating Systems. ASPLOS '18. Williamsburg, VA, USA: Association for Computing Machinery, 2018, 679--692. isbn: 9781450349116. url: https://doi.org/10.1145/3173162.3173203. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Omer Peleg, Adam Morrison, Benjamin Serebrin, and Dan Tsafrir. "Utilizing the IOMMU Scalably". In: 2015 USENIX Annual Technical Conference (USENIX ATC '15). Santa Clara, CA: USENIX Association, July 2015, pp. 549--562. isbn: 978-1-931971-225. url: https://www.usenix.org/conference/atc15/technical-session/presentation/peleg.Google ScholarGoogle Scholar
  21. Steven Pelley, Peter M. Chen, and Thomas F. Wenisch. "Memory Persistency". In: Proceeding of the 41st Annual International Symposium on Computer Architecture (ISCA '14). Minneapolis, Minnesota, USA: IEEE Press, 2014, 265--276. isbn: 9781479943944.Google ScholarGoogle ScholarCross RefCross Ref
  22. Richard F. Rashid and George G. Robertson. "Accent: A Communication Oriented Network Operating System Kernel". In: Proceedings of the 8th ACM Symposium on Operating Systems Principles (SOSP '81). New York, NY, USA: ACM Press, 1981, pp. 64--75. isbn: 0-89791-062-1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Richard Rashid, Avadis Tevanian, Michael Young, David Golub, Robert Baron, David Black, William Bolosky, and Jonathan Chew. "Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures". In: Proceedings of the Second International Conference on Architectual Support for Programming Languages and Operating Systems (ASPLOS '87). ASPLOS '87. Palo Alto, California, USA: IEEE Computer Society Press, 1987, 31--39. isbn: 0818608056. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Redislab. Redis. http://redis.io, visited 2019-07-21. 2019. (Visited on 07/21/2019).Google ScholarGoogle Scholar
  25. Yizhou Shan, Yutong Huang, Yilun Chen, and Yiying Zhang. "LegoOS: A Disseminated, Distributed OS for Hardware Resource Disaggregation". In: 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18). Carlsbad, CA: USENIX Association, Oct. 2018, pp. 69--87. isbn: 978-1-939133-08-3. url: https://www.usenix.org/conference/osdi18/presentation/shan.Google ScholarGoogle Scholar
  26. Jonathan S. Shapiro and Jonathan Adams. "Design Evolution of the EROS Single-Level Store". In: Proceedings of the General Track of the Annual Conference on USENIX Annual Technical Conference. ATEC '02. USA: USENIX Association, 2002, 59--72. isbn: 1880446006.Google ScholarGoogle Scholar
  27. Frank G. Soltis. Inside the AS/400. Loveland, Colorado: 29th Street Press, 1996. isbn: 1-882419-13-8.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. H. Tezuka, F. O'Carroll, A. Hori, and Y. Ishikawa. "Pin-down cache: a virtual memory management technique for zero-copy communication". In: Proceedings of the First Parallel Processing Symposium and Symposium on Parallel and Distributed Processing (IPPS '98). 1998, pp. 308--314. Google ScholarGoogle ScholarCross RefCross Ref
  29. Hugo Touvron et al. LLaMA: Open and Efficient Foundation Language Models. 2023. arXiv: 2302.13971 [cs.CL].Google ScholarGoogle Scholar
  30. Ján Veselý, Arkaprava Basu, Abhishek Bhattacharjee, Gabriel H. Loh, Mark Oskin, and Steven K. Reinhardt. "Generic System Calls for GPUs". In: 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA). 2018, pp. 843--856. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Pirmin Vogel. "Shared Virtual Memory for Heterogeneous Embedded Systems on Chip". en. PhD thesis. Zurich: ETH Zurich, 2018. isbn: 978-3-86628-623-8. Google ScholarGoogle ScholarCross RefCross Ref
  32. Lars Wrenger, Florian Rommel, Alexander Halbuer, Christian Dietrich, and Daniel Lohmann. "LLFree: Scalable and Optionally-Persistent Page-Frame Allocation". In: 2023 USENIX Annual Technical Conference (USENIX '23). Boston, MA: USENIX Association, July 2023, pp. 897--914. isbn: 978-1-939133-35-9. url: https://www.usenix.org/conference/atc23/presentation/wrenger.Google ScholarGoogle Scholar
  33. Seonghyeon Ye, Yongrae Jo, Doyoung Kim, Sungdong Kim, Hyeonbin Hwang, and Minjoon Seo. SelFee: Iterative Self-Revising LLM Empowered by Self-Feedback Generation. Blog post. 2023. url: https://kaistai.github.io/SelFee/.Google ScholarGoogle Scholar
  34. Kaiyang Zhao, Sishuai Gong, and Pedro Fonseca. "On-Demand-Fork: A Microsecond Fork for Memory-Intensive and Latency-Sensitive Applications". In: Proceedings of the Sixteenth European Conference on Computer Systems. EuroSys '21. Online Event, United Kingdom: Association for Computing Machinery, 2021, 540--555. isbn: 978-1-4503-8334-9. url: https://doi.org/10.1145/3447786.3456258. Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    DIMES '23: Proceedings of the 1st Workshop on Disruptive Memory Systems
    October 2023
    64 pages
    ISBN:9798400703003
    DOI:10.1145/3609308

    Copyright © 2023 Owner/Author(s)

    This work is licensed under a Creative Commons Attribution International 4.0 License.

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 23 October 2023

    Check for updates

    Qualifiers

    • research-article

    Acceptance Rates

    DIMES '23 Paper Acceptance Rate8of17submissions,47%Overall Acceptance Rate8of17submissions,47%

    Upcoming Conference

    SOSP '24
  • Article Metrics

    • Downloads (Last 12 months)219
    • Downloads (Last 6 weeks)23

    Other Metrics

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader