Skip to content
Honggyu Kim edited this page Jul 17, 2024 · 7 revisions

HMSDK Overview

The Heterogeneous Memory Software Development Kit (HMSDK) aims to enhance the efficiency of CXL® memory, enabling expanded bandwidth and capacity. HMSDK offers features like CXL® memory allocation, bandwidth-aware interleaving, and access pattern aware memory management. By providing an ease of use for CXL® memory, HMSDK enhances the efficiency of the memory system. HMSDK includes libraries and tools that are applicable at both user and kernel levels. It is available at https://github.com/skhynix/hmsdk.

Heterogeneous memory systems have emerged with the advent of memory technologies such as CXL memory, which has different performance characteristics from conventional DRAM. In such system, improperly placing data in each memory can result in significant performance degradation. HMSDK provides features that improve overall performance of the memory system by appropriately placing data according to the characteristics of various workloads. These features enhance user convenience in the placement and management of CXL® memory, helping to maximize system performance through proper data placement. This document describes the details of HMSDK features:

  • Bandwidth Expansion: Provides maximized memory bandwidth with CXL memory.
    • It is recommended for users who run memory bandwidth-intensive workloads.
  • Capacity Expansion: Provides extended memory capacity with CXL memory.
    • It is recommended for users who have systems with insufficient memory capacity.
    • It is recommended for users who run workloads that require a large memory capacity.
  • Heterogeneous Memory Allocator: Provides APIs for users to use CXL memory efficiently.
    • It is recommended for users who understand the characteristics of their workloads and want to selectively modify the memory allocation policies for that workload.