Parallel ArgMax Processing via Data Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional systems utilize a single processor to perform ArgMax operations, leading to inefficiencies and increased processing time due to the growing amount of data in machine learning applications.
Innovation Solution
The proposed solution leverages a multi-core architecture with multiple processing elements to parallel process ArgMax operations by dividing data into sub-vectors, which are then processed simultaneously across the processing elements, with a compiler generating lower-level code to optimize execution on machine learning hardware.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a single processor is used to perform ArgMax operations, then device complexity is reduced, but processing time increases and productivity decreases
Solution Approach 1:
The patent divides the data vector into multiple sub-vectors and distributes them across multiple processing elements (PEs) in a grid architecture. Each PE independently processes its assigned sub-vector to find the maximum value and its index, enabling parallel computation that significantly speeds up ArgMax operations while maintaining manageable complexity through modular design
Solution Approach 2:
The patent transitions from sequential processing (single processor) to parallel processing (multiple processors in a grid). By adding the dimension of parallelism and organizing PEs in a two-dimensional grid structure, the system achieves substantial speedup in ArgMax computation without proportionally increasing complexity
2Loss of time
If a single processor processes large datasets, then device complexity is low, but processing time increases significantly
Solution Approach 1:
The patent segments the large dataset into smaller sub-vectors that can be processed in parallel by multiple PEs. This segmentation allows the system to reduce processing time by distributing the computational workload across the grid architecture, addressing the time loss issue while managing complexity through systematic data division
Solution Approach 2:
The patent employs a compiler that generates lower-level code to optimize execution on machine learning hardware. This involves creating optimized representations of the processing tasks that can be efficiently executed on the parallel architecture, reducing the overhead of managing complexity while maximizing processing speed
Data Source
AI summary
A method includes receiving a first set of data. The method also includes receiving an instruction to determine a largest value within the first set of data. The first set of data is divided into a first plurality of data portions based on a hardware architecture of a first plurality of processing elements. The first plurality of data portions is mapped to the first plurality of processing elements. Each data portion of the first plurality of data portions is mapped exclusively to a processing element of the first plurality of processing elements. Each data portion of the first plurality of data portions is processed by its respective processing element to identify a largest value from each data portion of the first plurality of data portions, wherein the processing forms a first output data comprising the largest value from the each data portion of the first plurality of data portions.


