Cascading Atomic Operations in Multi-Threaded Memory Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As the number of threads and atomic operations increases, performance suffers due to the distance of the shared cache from the dies or cores executing the threads, making it inefficient for multiple threads to execute atomic operations with the same scope in a shared memory.
Innovation Solution
The method involves cascading the execution of atomic operations by having each thread subset perform the operations in its local memory, with intermediate results being aggregated in a shared memory accessible to all threads, thereby reducing the load on the shared cache.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple threads execute atomic operations in shared cache, then all threads can access the same memory scope, but performance degrades due to the distance of shared cache from the cores
Solution Approach 1:
The patent segments the threads into multiple thread subsets, where each subset executes atomic operations in its own local memory (L1 or L2 cache) rather than all threads sharing the same remote cache. This segmentation allows each subset to operate independently in closer memory, improving performance while maintaining the atomic operation semantics through subsequent aggregation of results in the shared cache.
2Productivity
If threads use local memory for atomic operations, then execution speed improves due to proximity to cores, but coordination and result aggregation become more complex
Solution Approach 1:
The patent introduces an intermediary mechanism where each thread subset writes its atomic operation results to a designated location in the shared cache (L3 cache), which then serves as a aggregation point. This intermediary approach simplifies coordination by providing a standardized interface for result collection, avoiding the need for complex inter-thread synchronization while maintaining the performance benefits of local memory execution.
Data Source
AI summary
Cascading execution of atomic operations, including: receiving a request for each thread of a plurality of threads to perform an atomic operation, wherein the plurality of threads comprises a plurality of thread subsets each corresponding to a local memory, wherein the local memory for a thread subset is accessible by the thread subset and inaccessible to a remainder of threads in the plurality of threads; generating a plurality of intermediate results by performing, by each thread subset, the atomic operation in the local memory corresponding to the thread subset; and generating a result for the request by aggregating the plurality of intermediate results in a shared memory accessible to all threads in the plurality of threads.


