Parallel ArgMax Processing via Data Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
ImproveArgMax processing speedVSAvoidprocessor architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Loss of time

If a single processor processes large datasets, then device complexity is low, but processing time increases significantly

Engineering Contradiction:
ImproveArgMax operation delayVSAvoidmulti-core architecture complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11995448B1Method and apparatus for performing machine learning operations in parallel on machine learning hardware
Publication Date: 2024.05.28 MARVELL ASIA PTE LTD
  • US11995448B1 patent drawing
  • US11995448B1 patent drawing
  • US11995448B1 patent drawing

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.