Accelerated Processor Message Passing via Barrier Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional computer architectures face challenges in efficiently managing message passing between groups of work items on accelerated parallel processors like GPUs, particularly in synchronizing operations and optimizing cross-node or cross-CPU/GPU data communications.
Innovation Solution
The method involves executing groups of work items on accelerated processing units, receiving and storing messages in allocated memory segments, using barriers to synchronize operations, and updating memory ends based on message sizes, allowing for efficient message passing between wavefronts on the same GPU core or across multiple GPU cores.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If message passing is implemented between groups of work items on accelerated parallel processors, then communication capability between work items is improved, but synchronization complexity and difficulty of managing data transfer increases
Solution Approach 1:
The patent introduces intermediary structures including message buffers, send queues, and receive queues that mediate communication between work item groups. These intermediaries handle the complexity of synchronization internally, allowing work items to communicate through simple enqueue/dequeue operations while the system manages the complex coordination in the background.
Solution Approach 2:
The communication system is segmented into distinct functional components: message buffers for storage, send queues for outgoing messages, receive queues for incoming messages, and barrier synchronization mechanisms. This segmentation allows each component to be optimized independently and reduces overall synchronization complexity by distributing coordination tasks across multiple specialized structures.
2Productivity
If memory is allocated to each group of work items for message storage, then message passing efficiency is improved, but memory management complexity increases
Solution Approach 1:
The memory structures allocated to work item groups serve multiple functions: they act as private storage for work items, as message buffers for receiving messages from other groups, and as send queues for outgoing messages. This multi-functionality improves efficiency by utilizing the same memory resources for multiple purposes while the system manages the complexity of coordinating these uses.
Solution Approach 2:
The patent organizes memory allocation in multiple dimensions: each work item group has privately allocated memory segments, and within each group, memory is further organized into distinct queues and buffers. This multi-dimensional organization allows efficient local access within groups while enabling coordinated communication across groups through the structured memory hierarchy.
3Reliability
If barriers are used to synchronize message receipt, then data accuracy is improved, but processing time increases
Solution Approach 1:
Barrier synchronization is implemented as a preliminary action that ensures all message buffers are properly populated and ready before work items attempt to consume messages. By establishing this synchronization point in advance, the system guarantees data accuracy without requiring repeated synchronization checks during message consumption, thereby minimizing time loss.
Solution Approach 2:
The barrier mechanism serves itself by automatically managing the synchronization state without requiring explicit intervention from each work item. Once the barrier is established, individual work items can independently consume messages from their allocated buffers knowing that synchronization has been handled, reducing the time overhead compared to continuous synchronization requirements.
Data Source
AI summary
A method of message-based communication is provided which includes executing, on one or more accelerated processing units, a plurality of groups of work items, receiving a first message from a first group of work items of the plurality of groups of work items executing on the one or more accelerated processing units and storing the first message at a first segment of memory allocated to a second group of work items of the plurality of groups of work items executing on the accelerated processing unit.


