Hierarchical Memory for Parallel Arithmetic in Deep Learning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deep learning processors require specialized compilers to efficiently execute instructions, as their architectures differ from general-purpose processors, leading to suboptimal performance due to inefficient instruction execution and data transfer.

Innovation Solution

A compiler device with an interface for receiving instruction sequences, hierarchical memory for data transfer, and parallel arithmetic operators to merge instructions that can be executed in parallel, reducing resource conflicts and improving processing performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If instructions are executed sequentially in deep learning processors, then resource conflicts are avoided, but processing performance deteriorates due to inefficient instruction execution

Engineering Contradiction:
Improveprocessing performanceVSAvoidinstruction execution complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple independent instructions into a single combined instruction that can be executed in parallel by multiple arithmetic operators. This allows instructions that previously had to be executed sequentially to now run simultaneously, improving processing performance while managing complexity through unified instruction structure

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the instruction execution process into hierarchical memory levels (zeroth memories connected to first memories, first memories connected to second memories), allowing different segments of data to be accessed from different memory levels simultaneously, enabling parallel execution without resource conflicts

Inventive Principle:
Principle #1Segmentation

2Speed

If data transfer between memories is performed frequently, then data availability for parallel computation is improved, but processing time increases due to transfer overhead

Engineering Contradiction:
Improvedata availability speedVSAvoiddata transfer time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent implements preliminary data transfer from zeroth memories to first memories before parallel computation begins. This preliminary action ensures that data is already available in the first memories when parallel computation starts, eliminating the need for frequent data transfers during computation and reducing overall processing time

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a nested hierarchical memory structure where first memories are nested within the data transfer path between zeroth and second memories. This nested arrangement allows data to be pre-loaded into first memories while simultaneously allowing further data transfer to second memories, enabling overlapping operations that reduce total transfer time

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS20240370238A1Accelerator including hierarchical memory
Publication Date: 2024.11.07 PREFERRED NETWORKS INC
  • US20240370238A1 patent drawing
  • US20240370238A1 patent drawing
  • US20240370238A1 patent drawing

AI summary

An accelerator includes an interface configured to receive an instruction sequence including a plurality of instructions; a hierarchical memory configured to perform data transfer between a plurality of zeroth memories and a plurality of first memories according to a data transfer instruction specifically for data transfer between the plurality of zeroth memories and the plurality of first memories included in the instruction sequence received by the interface, the hierarchical memory including the plurality of zeroth memories, the plurality of first memories, and one or more second memories, each of the one or more second memories being connected to corresponding first memories among the plurality of first memories, and each of the plurality of first memories being connected to corresponding zeroth memories among the plurality of zeroth memories; and a plurality of arithmetic operators configured to operate in parallel by using the hierarchical memory.