Dynamic Cache Allocation for Concurrent Deep Learning Training

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing caching technologies for deep learning training face inefficiencies due to excessive cache hits and unbalanced cache utilization in concurrent tasks, leading to I/O bottlenecks and reduced accuracy in model training.

Innovation Solution

A dynamic cache allocation and management strategy that preheats tasks, sorts them based on epoch completion times, and allocates cache resources dynamically, ensuring uniform sample distribution across batches and allowing tasks to lend or borrow cache resources as needed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a cache is used for deep learning training, then the I/O bottleneck is relieved, but the cache utilization becomes unbalanced with excessive hits for some batches

Engineering Contradiction:
Improvetraining speedVSAvoidcache utilization efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements dynamic cache allocation that adjusts cache size for each task based on real-time metrics including data set size, data augmentation time overhead, and model training time overhead. This dynamic adjustment prevents static allocation inefficiencies where some tasks waste cache resources while others suffer from insufficient cache, thereby resolving the unbalanced cache utilization problem while maintaining high training speed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the cache allocation parameters dynamically by calculating expected sample numbers for each task and adjusting cache sizes accordingly. This parameter adjustment ensures that each task receives appropriate cache resources based on its specific needs, preventing excessive hits for some batches while ensuring sufficient cache for others, thus improving both training speed and cache utilization efficiency.

Inventive Principle:
Principle #35Parameter changes

2Ease of manufacture

If a static cache allocation scheme is used for concurrent tasks, then the implementation is simple, but the cache utilization rate needs to be improved

Engineering Contradiction:
Improveimplementation simplicityVSAvoidcache utilization rate
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent transitions from static to dynamic cache allocation by implementing a system that continuously monitors and adjusts cache sizes based on task performance metrics. This dynamic approach significantly improves cache utilization rate while maintaining reasonable implementation complexity through automated metric collection and calculation algorithms.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system incorporates feedback mechanisms by collecting metrics such as data set size, augmentation time overhead, and training time overhead, then using this feedback to calculate expected sample numbers and adjust cache allocation dynamically. This feedback loop ensures high cache utilization while keeping the implementation manageable through systematic metric-based adjustments.

Inventive Principle:
Principle #23Feedback

3Ease of manufacture

If cache resources are pre-allocated according to data set size, then the allocation is straightforward, but the time overhead of data augmentation and model training is not considered

Engineering Contradiction:
Improveallocation simplicityVSAvoidoverall training efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent extends cache allocation beyond simple data set size considerations by incorporating additional parameters including data augmentation time overhead and model training time overhead. This multi-parameter approach calculates expected sample numbers that reflect overall training efficiency requirements, ensuring that cache allocation considers the complete training pipeline rather than just data set characteristics.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system dynamically adjusts cache allocation based on comprehensive metrics that include not only data set size but also the time overheads of data augmentation and model training. This dynamic multi-factor consideration ensures that cache resources are allocated to maximize overall training efficiency while maintaining implementation feasibility through systematic metric integration.

Inventive Principle:
Principle #15Dynamics

4Productivity

If multiple tasks share a global cache, then the cache utilization can be improved, but the samples of different tasks may interfere with each other

Engineering Contradiction:
Improveglobal cache utilizationVSAvoidtask independence
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the global cache into task-specific cache regions while maintaining a unified management system. Each task is allocated a dedicated cache space sized according to its expected sample needs, preventing interference between tasks while still allowing the system to achieve high overall cache utilization through coordinated management and dynamic adjustment of segment sizes.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20230394307A1Data caching method and apparatus for multiple concurrent deep learning training tasks
Publication Date: 2023.12.07 ZHEJIANG LAB
  • US20230394307A1 patent drawing
  • US20230394307A1 patent drawing
  • US20230394307A1 patent drawing

AI summary

Disclosed are a data caching method and apparatus for multiple concurrent deep learning training tasks. The method includes: step 1, executing preheating training for each task, collecting feature parameters of training batch samples, and sorting all the tasks according to the collected feature parameters; step 2, calculating the sample number of each training batch hit in a cache of each task under system pre-allocation, and the expected sample number of each training batch hit in the cache of each task; step 3, concurrently executing deep learning training by using a cache dynamic allocation and management strategy; and step 4, when each task enters a last training epoch, adding no new sample data to the caches of these tasks, gradually releasing the occupied cache, and making the released cache to be used by other tasks that are not finished.