Embedding Row Prefetching for Sparse Recommendation Model Lookups
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multilayer networks experience increased latency due to sparse lookup operations in embedding tables, especially when dealing with very sparse encoded input vectors, leading to inefficient data access in applications like recommendation systems.
Innovation Solution
Implement a prefetch engine that maintains a cache of frequently accessed data items, allowing for early retrieval of these items from a prefetch storage instead of the main tables, reducing the need for sparse lookup operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If sparse lookup operations are performed on embedding tables, then data access is simplified, but latency increases significantly
Solution Approach 1:
The system performs preliminary actions by pre-computing and storing frequently accessed embedding rows in a cache structure before they are actually needed during inference. The prefetch engine proactively retrieves embedding rows based on predicted access patterns, so that when a lookup operation occurs, the data is already available in the cache, eliminating the latency penalty of sparse table lookups while maintaining simple data access operations.
2Measurement precision
If embedding tables are made larger to include more features, then prediction accuracy improves, but lookup operation latency increases
Solution Approach 1:
The system applies local quality by creating a differentiated storage structure where frequently accessed embedding rows are stored in a fast-access cache while less frequently accessed rows remain in the main embedding table. The prefetch engine identifies and prioritizes locally important (frequently accessed) embedding rows, storing them in a separate high-speed storage structure. This allows the system to maintain large embedding tables for comprehensive feature coverage while providing fast access to the most critical features through the cache layer.
3Quantity of substance
If more embedding rows are stored in tables, then data completeness is improved, but data retrieval efficiency decreases
Solution Approach 1:
The system segments the embedding table into two distinct parts: a cache structure for frequently accessed embedding rows and a main table for less frequently accessed rows. The prefetch engine uses access patterns to identify which embedding rows should be cached, effectively segmenting the data based on access frequency rather than storing everything uniformly. This segmentation allows the system to maintain complete embedding data while dramatically improving retrieval efficiency for the most commonly accessed features.
Data Source
AI summary
A system and method for efficiently accessing sparse data for a workload are described. In various implementations, a computing system includes an integrated circuit and a memory for storing tasks of a workload that includes sparse accesses of data items stored in one or more tables. The integrated circuit receives a user query, and generates a result based on multiple data items targeted by the user query. To reduce the latency of processing the workload even with sparse lookup operations performed on the one or more tables, a prefetch engine of the integrated circuit stores a subset of data items in prefetch data storage. The prefetch engine also determines which data items to store in the prefetch data storage based on one or more of a frequency of reuse, a distance or latency of access of a corresponding table of the one more tables, or other.


