Memory Module Processing Unit for Embedding Operations
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Personalized recommendation systems face computational challenges due to the large volume of data required for accurate and timely recommendations, particularly in deep learning applications where sparse lookup operations dominate run-time, leading to memory performance bottlenecks.
Innovation Solution
Incorporating a memory module processing unit on a computer memory module, such as a DIMM, to perform embedding operations near memory, eliminating external memory bottlenecks and utilizing caches to exploit temporal reuse locality, thereby improving run-time performance by offloading gather-reduce operations like SparseLengthsSum to memory-side processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If personalized recommendation systems process large volume of data to determine accurate recommendations, then recommendation accuracy is improved, but computational time and processing load increase
Solution Approach 1:
The system segments processing tasks by separating embedding lookup operations from general computation. The memory module processing unit handles specific embedding operations (gather-reduce) independently from the main processor, dividing the computational workload to improve both accuracy and reduce time loss.
Solution Approach 2:
The patent implements preliminary action by performing embedding lookups and reduce operations directly at the memory module before data is transferred to the processor. This pre-processing of embedding operations reduces the computational burden on the main system, thereby reducing computational time while maintaining recommendation accuracy.
2Measurement precision
If sparse lookup operations are performed to retrieve embedding vectors for personalized recommendations, then recommendation quality is improved, but memory performance bottlenecks worsen
Solution Approach 1:
The patent adds a new dimension to the memory hierarchy by implementing a memory module processing unit at the DIMM level. This creates an additional processing layer between main memory and the processor, enabling embedding operations to be performed closer to the data storage location, thereby improving memory throughput while maintaining recommendation quality.
Solution Approach 2:
The memory module processing unit acts as an intermediary between the main processor and memory modules. It handles embedding lookup and reduce operations locally at the memory module, reducing the burden on the main memory system and improving overall memory throughput while preserving recommendation quality.
3Adaptability or versatility
If embedding operations are performed at the processor level, then computation flexibility is maintained, but memory bottleneck effects increase
Solution Approach 1:
The system segments computation tasks by separating embedding-specific operations (gather-reduce) from general-purpose processing. The memory module processing unit handles embedding operations with specialized hardware, while the main processor maintains flexibility for other computations, thus preserving computation flexibility while improving system throughput.
Solution Approach 2:
The memory module processing unit serves as an intermediary that handles embedding operations locally, reducing memory bottleneck effects. This intermediary layer improves system throughput by processing embedding data closer to storage, while the main processor retains its computational flexibility for other tasks.
Data Source
AI summary
A device (e.g., an application-specific integrated circuit chip) includes a memory module processing unit and an interface. The memory module processing unit is configured to receive an instruction to obtain values stored in one or more memory components and process the obtained values to return a processed result. The memory module processing unit is also configured to store the obtained values in a cache based on one or more criteria. The memory module processing unit is configured to be included on a computer memory module configured to be installed in a computer system. The interface is configured to communicate with the one or more memory components included on the computer memory module.


