Tag-Based Synchronization for ML Task Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current hardware-based machine learning systems face performance losses due to heavy-weight synchronization processes, where tasks wait for all prior tasks to complete, even if they don't depend on them, leading to idle processing tiles and reduced efficiency.
Innovation Solution
A tag-based synchronization scheme is introduced, where tasks are tagged and stored in a table, allowing only dependent tasks to wait for specific prior tasks to finish, eliminating the need to wait for all prior tasks, and optimizing processing tile utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the instruction streaming engine uses default synchronization mode to hold instructions and wait for all prior tasks to complete, then synchronization reliability is improved, but processing tile utilization deteriorates and wait time increases
Solution Approach 1:
The patent segments the synchronization process by introducing tag-based identification. Instead of treating all prior tasks uniformly, the system divides them into relevant and irrelevant tasks based on tag matching. This allows the instruction streaming engine to selectively wait only for tasks with matching tags, rather than waiting for all prior tasks, thus improving processing tile utilization while maintaining synchronization reliability for dependent tasks.
Solution Approach 2:
The patent introduces tags as an intermediary mechanism to mediate between tasks and the synchronization process. Tags serve as identifiers that link dependent tasks to their specific prior tasks. This intermediary allows the system to determine which prior tasks need to be waited for, enabling selective synchronization that improves productivity while preserving the reliability of necessary synchronization points.
2Reliability
If the instruction streaming engine waits for all prior tasks to complete before sending current task instructions, then synchronization correctness is improved, but execution speed deteriorates
Solution Approach 1:
The patent segments the set of prior tasks into two categories: tasks with matching tags that must be completed before the current task, and tasks without matching tags that can be executed independently. This segmentation allows the instruction streaming engine to skip waiting for irrelevant tasks, significantly improving execution speed while maintaining synchronization correctness for dependent tasks through tag-based identification.
Solution Approach 2:
The patent applies preliminary action by pre-assigning tags to tasks during task generation or registration. This preliminary tagging allows the instruction streaming engine to quickly identify which prior tasks are relevant to the current task without needing to analyze task dependencies in real-time. The pre-established tag relationships enable faster synchronization decisions and improve execution speed while preserving correctness.
3Reliability
If heavy-weight synchronization is used to ensure all prior tasks complete, then task dependency reliability is improved, but time consumption deteriorates
Solution Approach 1:
The patent segments the synchronization requirement into tag-matched tasks that must be waited for and tag-unmatched tasks that can proceed independently. This segmentation transforms the heavy-weight synchronization process into a lightweight selective waiting mechanism. The instruction streaming engine only incurs wait time for tasks with matching tags, dramatically reducing total wait time while maintaining task dependency reliability through the tag matching mechanism.
Solution Approach 2:
The patent uses tags as an intermediary to reduce the overhead of synchronization. Instead of implementing complex dependency analysis or waiting for all prior tasks, the tag intermediary provides a simple matching mechanism that quickly identifies which prior tasks are relevant. This intermediary approach maintains task dependency reliability while minimizing time loss by avoiding unnecessary waiting for irrelevant tasks.
Data Source
AI summary
A new approach for supporting tag-based synchronization among different tasks of a machine learning (ML) operation. When a first task tagged with a set tag indicating that one or more subsequent tasks need to be synchronized with it is received at an instruction streaming engine, the engine saves the set tag in a tag table and transmits instructions of the first task to a set of processing tiles for execution. When a second task having an instruction sync tag indicating that it needs to be synchronized with one or more prior tasks is received at the engine, the engine matches the instruction sync tag with the set tags in the tag table to identify prior tasks that the second task depends on. The engine holds instructions of the second task until these matching prior tasks have been completed and then releases the instructions to the processing tiles for execution.

