Multi-port Memory Random Read Bandwidth via Hashing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current systems face challenges in achieving high random read bandwidth, particularly in applications like the scatter step of the gather-apply-scatter (GAS) model, where updating edge weights in graphs requires efficient access to multiple memory blocks.
Innovation Solution
A system that routes multiple read requests to different memory blocks by hashing source identifiers, allowing parallel processing and updating of edge weights using a streaming network to manage conflicts, with high bandwidth memory (HBM) storing edge weights and unified random access memory (URAM) or static random access memory (SRAM) blocks storing vertex properties.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple read requests are routed to different memory blocks using hashing, then random read bandwidth is improved, but memory access complexity increases
Solution Approach 1:
The memory system is divided into multiple memory blocks (e.g., URAM blocks or SRAM blocks), each capable of handling read requests independently. This segmentation allows parallel access to different memory blocks, thereby increasing random read bandwidth while distributing the access complexity across multiple simpler units.
Solution Approach 2:
A hashing function is introduced as an intermediary mechanism to map source identifiers to specific memory blocks. This hashing layer simplifies the routing logic by providing a deterministic and distributed method to direct read requests to appropriate memory blocks, managing the complexity of multi-block access through a simple mathematical function.
2Speed
If parallel processing of edge weights is implemented, then updating speed is improved, but conflict management complexity increases
Solution Approach 1:
The parallel processing capability is achieved by dividing the memory access workload across multiple independent memory blocks. Each block processes read requests independently in parallel, increasing updating speed while keeping individual block logic simple and avoiding complex coordination between blocks.
Solution Approach 2:
The hashing function serves as a conflict management intermediary by deterministically assigning source identifiers to specific memory blocks. This eliminates the need for complex runtime conflict resolution mechanisms, as the hashing function pre-determines the distribution of access requests across blocks, simplifying parallel conflict management.
Data Source
AI summary
A method includes receiving a value and an identifier from a first memory and hashing the identifier to produce a memory block identifier. The method also includes routing, based on the memory block identifier, a read request to a memory block of a plurality of memory blocks and updating the value received from the first memory based on a property received from the memory block in response to the read request. The memory further includes storing the updated value in the first memory.


