Slab Memory Management for Machine Learning Training

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current machine learning training systems face inefficiencies due to separated computing and storage units, leading to performance and energy inefficiencies, particularly with limited GPU DRAM size and poor memory management schemes that increase overhead in machine learning operations.

Innovation Solution

A method and system for slab-based memory management that allocates memory segments efficiently by identifying the least recently used segments and migrating them to secondary memory, allowing for optimized calculations and storage in machine learning operations, specifically utilizing a user-level process to manage memory allocations and migrations within a GPU and secondary storage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If heterogeneous memory management schemes with page granularity are used for GPUs, then memory can be managed with standard operating system mechanisms, but memory management overhead increases and performance deteriorates in machine learning training operations

Engineering Contradiction:
Improvememory managementVSAvoidmachine learning training performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments memory management by creating separate management mechanisms for different data types in machine learning workloads. It implements type-specific memory pools (e.g., activation pools, weight pools) that are managed independently from general page-based memory management, allowing optimized handling of ML-specific memory access patterns while maintaining compatibility with standard OS mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the granularity parameter of memory management from page-level (standard OS approach) to object-level or block-level management tailored for machine learning data structures. This allows memory to be allocated and freed in larger, more efficient units that match ML workload requirements, reducing the frequency of memory management operations and improving performance.

Inventive Principle:
Principle #35Parameter changes

2Use of energy by stationary object

If GPU DRAM size is reduced due to power and energy constraints in SSDs, then in-storage machine learning training becomes feasible, but memory capacity for training operations is limited

Engineering Contradiction:
ImproveSSD power consumptionVSAvoidGPU DRAM capacity
Core Design Contradiction:
Use of energy by stationary objectVSQuantity of substance

Solution Approach 1:

The patent implements a nested memory hierarchy where small, fast GPU DRAM is nested within the SSD, which itself is nested within the larger system memory hierarchy. This allows the limited GPU DRAM to be used for frequently accessed data while less frequently accessed data resides in the SSD's storage memory, creating a tiered structure that maximizes the utility of limited fast memory while providing access to larger capacity through slower storage layers.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The patent extends the memory space available to the GPU by adding a spatial dimension through the SSD storage memory. Instead of being constrained to a single memory layer, the system creates a multi-layer memory architecture where data can be moved between GPU DRAM, SSD storage, and system memory, effectively increasing the addressable memory space without increasing the size of the fast GPU DRAM.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS11461869B2Slab based memory management for machine learning training
Publication Date: 2022.10.04 SAMSUNG ELECTRONICS CO LTD
  • US11461869B2 patent drawing
  • US11461869B2 patent drawing
  • US11461869B2 patent drawing

AI summary

A system and method for machine learning, with a processing circuit executing an operating system, the processing circuit being connected to a first memory and to a second memory. In some embodiments, the method includes: requesting, by a user level process, from the operating system, a first memory allocation from the first memory, the first memory allocation including a plurality of first segments, a first segment of the plurality of first segments having a size sufficient to store a data object of a first kind; determining, by the user level process, that a result of a first calculation will be a data object of the first kind; and in response to determining that the result of the first calculation will be a data object of the first kind: determining, by the user level process, that none of the first segments are unused.