emucxl: an emulation framework for CXL-based disaggregated memory applications (2404.08311v1)
Abstract: The emergence of CXL (Compute Express Link) promises to transform the status of interconnects between host and devices and in turn impact the design of all software layers. With its low overhead, low latency, and memory coherency capabilities, CXL has the potential to improve the performance of existing devices while making viable new operational use cases (e.g., disaggregated memory pools, cache coherent memory across devices etc.). The focus of this work is design of applications and middleware with use of CXL for supporting disaggregated memory. A vital building block for solutions in this space is the availability of a standard CXL hardware and software platform. Currently, CXL devices are not commercially available, and researchers often rely on custom-built hardware or emulation techniques and/or use customized software interfaces and abstractions. These techniques do not provide a standard usage model and abstraction layer for CXL usage, and developers and researchers have to reinvent the CXL setup to design and test their solutions, our work aims to provide a standardized view of the CXL emulation platform and the software interfaces and abstractions for disaggregated memory. This standardization is designed and implemented as a user space library, emucxl and is available as a virtual appliance. The library provides a user space API and is coupled with a NUMA-based CXL emulation backend. Further, we demonstrate usage of the standardized API for different use cases relying on disaggregated memory and show that generalized functionality can be built using the open source emucxl library.
- Compute Express Link. 2019. Retrieved July 17, 2023 from https://www.computeexpresslink.org/.
- Compute Express Link Consortium. 2019. Retrieved July 17, 2023 from https://www.computeexpresslink.org/members.
- O. Mutlu, “Main memory scaling: Challenges and solution directions,” More than Moore Technologies for Next Generation Computer Design, pp. 127–153, 2015.
- J. Bonwick. The Slab Allocator: An Object-Caching Kernel. USENIX Summer 1994 Technical Conference (USENIX Summer 1994 Technical Conference). (1994,6)
- Samsung Unveils Industry-First Memory Module Incorporating New CXL Interconnect Standard. 2021. Retrieved July 17, 2023 from https://bit.ly/3uBo27J.
- Samsung Develops Industry’s First CXL DRAM Supporting CXL 2.0. 2023. Retrieved July 17, 2023 from https://bit.ly/3nRc7o0.
- Linux PMEM and CXL tools. Retrieved July 17, 2023 from https://pmem.io/ndctl/libcxl/libcxl.
- Coherent Accelerator Processor Interface (CAPI) Library. Retrieved July 17, 2023 from https://github.com/ibm-capi/libcxl
- Redis. Retrieved July 17, 2023 from https://redis.io/.
- RocksDB. Retrieved July 17, 2023 from https://rocksdb.org/.
- CXL 1.1 Specification. 2020. Retrieved July 17, 2023 from https://www.computeexpresslink.org/post/compute-express-link-1-1-specification-now-available-to-members.
- CXL 2.0 Specification. 2020. Retrieved July 17, 2023 from https://www.computeexpresslink.org/post/compute-express-link-2-0-specification-now-available.
- CXL 3.0 Specification. 2022. Retrieved July 17, 2023 from https://www.computeexpresslink.org/download-the-specification.
- Scalable Memory Development Kit (SMDK). 2021. Retrieved July 17, 2023 from https://github.com/OpenMPDK/SMDK.
- Steve Scargall. ”How To Emulate CXL Devices using KVM and QEMU”. 2022. Retrieved July 17, 2023 from https://stevescargall.com/blog/2022/01/20/how-to-emulate-cxl-devices-using-kvm-and-qemu/.
- R. Wang, J. Wang, S. Idreos, M. T. Özsu, and W. G. Aref, “The case for distributed shared-memory databases with RDMA-enabled memory disaggregation,” Proceedings of the VLDB Endowment, vol. 16, no. 1, pp. 15–22, 2022.
- P. Grun, “Introduction to infiniband for end users,” White paper, InfiniBand Trade Association, 2010.
- Compute Express Link Memory Devices. Retrieved July 17, 2023 from https://www.kernel.org/doc/html/latest/driver-api/cxl/memory-devices.html
- Memory Viewer for CXL. 2023. Retrieved July 17, 2023 from https://memverge.com/memoryviewer/.
- Linux memory mapping. Retrieved July 17, 2023 from https://linux-kernel-labs.github.io/refs/pull/190/merge/labs/memory_mapping.html.
- A look into the CXL device ecosystem and the evolution of CXL use cases. January-2023. Retrieved July 17, 2023 from https://www.computeexpresslink.org/resource-library.
- Astera Labs. Leo CXL Memory Connectivity Platform. Retrieved July 17, 2023 from https://www.asteralabs.com/products/cxl-memory-platform/leo-cxl-memory-connectivity-platform/.
- Raja Gond (2 papers)
- Purushottam Kulkarni (1 paper)