Skip to content
Honggyu Kim edited this page Jan 23, 2024 · 7 revisions

HMSDK Overview

HMSDK (Heterogeneous Memory Software Development Kit) is designed to support heterogeneous memory, especially CXL memory which is a new promising memory system based on a CXL (Compute Express Link) open industry standard.

This document describes the details of HMSDK for HMSDK 1.1 and HMSDK 2.0.

HMSDK 1.1

HMSDK 1.1 focuses on capacity and bandwidth expansion in terms of memory allocation management as follows.

  • HMSDK Design: Describes the overall HMSDK architecture, features, and how it works.
  • User Guide: Describes how to install and use HMSDK 1.1.
  • Performance Results: Describes the performance of the CXL memory system using HMSDK 1.1 features.

Features

  • A new memory allocation policy MPOL_INTERLEAVE_WEIGHT.
  • A memory allocator for CXL memory - cemalloc (CXL expandable malloc).
  • A set of tools for HMSDK.

HMSDK 2.0

HMSDK 2.0 focuses on 2-tier memory management based on memory access profiling and migration.

  • User Guide: Describes how to install and use HMSDK 2.0.
  • Performance Results: Describes the performance of the CXL memory system using HMSDK 2.0 features.

Features

  • Runtime page demotion scheme when the memory is cold. (e.g. DRAM -> CXL)
  • Runtime page promotion scheme when the memory is hot. (e.g. CXL -> DRAM)
  • A set of tools for HMSDK.