1. Design Principle and Objective - OpenMPDK/SMDK GitHub Wiki
The Compute Express Link (CXL) is an open-standard connectivity technology that includes different types of major hardware components in a system, such as volatile memory, persistent memory, and accelerator. The technology is geared to process high-performance computational workloads that demands a specific hardware resource like memory, I/O device, or computation in a more cost efficient manner.
In May of 2021, Samsung had unveiled the world-first CXL Memory expander, next, in October of 2021, further introduced SMDK, Scalable Memory Development Kit, a software toolkit to facilitate the Samsung CXL Memory Expander.
SMDK is designed as a reference SDM solution that orchestrates the main memory and the CMMs, CXL Memory Modules, to work together effectively and seamlessly in a heterogeneous memory systems. The core of the software kit includes library, plugin, kernel, hypervisor, with application and memory usecases.
There are 4 statements that SMDK team keeps in mind.
- SMDK is geared not only for powerful developers, but also for high level system operators.
- To be specific, for those who do not want to be aware of any changes underlying memory device.
- SMDK inherits and extends conventional memory software stacks.
- Inheritance is of importance in terms of compatibility, extension is also of importance in terms of appropriate novelty.
- We are applying this thought to various stacks such as the Linux kernel, heap allocator, container, kubernetes, etc.
- SMDK, as a Software-Defined Memory, supports full-stack software that ultimately aims composable datacenter infrastructure.
- SMDK orchestrates CXL and other heterogeneous devices including memory, accelerator, and storage.