Neural Processor Circuit for Convolution Work Unit Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems that perform convolution neural network operations rely heavily on central processing units (CPUs), leading to significant bandwidth consumption and increased power usage.

Innovation Solution

A neural processor circuit is designed, comprising multiple neural engine circuits, a data buffer, and a kernel fetcher circuit. This configuration allows for efficient convolution operations by processing work units of input data and kernel data, with the data buffer managing data transfer between the neural engine circuits and system memory, and the kernel fetcher circuit handling kernel data retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If CPU and main memory are used to execute machine learning systems, then ease of operation is improved, but power consumption and bandwidth consumption increase

Engineering Contradiction:
Improveease of operationVSAvoidpower consumption
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The patent introduces a neural processor circuit as an intermediary component between the CPU and the machine learning operations. This dedicated neural processor handles the computationally intensive convolution operations, thereby reducing the workload on the CPU and lowering overall power consumption while maintaining ease of operation through centralized processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the machine learning processing workload into separate functional components: a neural processor circuit for convolution operations, a data buffer for data management, and a kernel fetcher circuit for parameter retrieval. This segmentation allows each component to be optimized independently, reducing overall system power consumption while maintaining operational simplicity.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If CPU and main memory are used to execute machine learning systems, then ease of operation is improved, but bandwidth consumption increases

Engineering Contradiction:
Improveease of operationVSAvoidbandwidth consumption
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The data buffer acts as an intermediary between the neural processor circuit and system memory, caching frequently accessed input data and kernel parameters. This reduces the bandwidth required between these components while maintaining ease of operation through automated data management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The kernel fetcher circuit performs preliminary actions by pre-fetching and storing kernel parameters in the data buffer before they are needed for convolution operations. This reduces real-time bandwidth consumption while maintaining operational simplicity through automated data preparation.

Inventive Principle:
Principle #10Preliminary action

3Use of energy by moving object

If neural processor circuit with data buffer and kernel fetcher is used, then power consumption is reduced, but device complexity increases

Engineering Contradiction:
Improvepower consumptionVSAvoiddevice complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The data buffer serves multiple functions: it stores input data for neural engine circuits, caches kernel parameters, and manages data transfer between memory and processing units. This multi-functionality reduces the need for separate dedicated components, thereby reducing overall device complexity while maintaining low power consumption.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent merges the data storage and data management functions into a single data buffer component, and combines the kernel parameter retrieval and distribution functions into a dedicated kernel fetcher circuit. This merging reduces the number of separate components and simplifies the overall device architecture while maintaining efficient low-power operation.

Inventive Principle:
Principle #5Merging (Combining)

4Productivity

If neural processor circuit with parallel processing is used, then processing efficiency is improved, but device complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The neural processor circuit is segmented into multiple independent neural engine circuits that can process different portions of the input data simultaneously. Each neural engine circuit handles a specific work unit, enabling parallel processing and improving overall processing efficiency while maintaining manageable complexity through modular architecture.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20250165763A1Dynamically shaping and segmenting work units for processing in neural network processor
Publication Date: 2025.05.22 APPLE INC
  • US20250165763A1 patent drawing
  • US20250165763A1 patent drawing
  • US20250165763A1 patent drawing

AI summary

Embodiments relate to a neural processor circuit that includes multiple neural engine circuits, a data buffer, and a kernel fetcher circuit. At least one of the neural engine circuits receives multiple sub-channels of a portion of input data from the data buffer. Neural engine circuit further receives a kernel of the one or more kernels from the kernel fetcher circuit, wherein the kernel was decomposed into a corresponding sub-kernel for each sub-channel of the portion of the input data. Neural engine circuit performs a convolution operation on each sub-channel of the portion of the input data and the corresponding sub-kernel. Neural engine circuit accumulates corresponding outputs of each sub-channel portion of the convolution operation to generate a single channel of the output data.