# US 12,112,250 B2 · Lossless tiling in convolution networks—resetting overlap factor to zero at section boundaries

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,112,250 B2
- Document ID: US12112250B2
- Status: Granted
- Kind: B2
- Application number: 17/713,157
- Filed: 2022-04-04
- Published: 2022-09-29
- Granted: 2024-10-08
- Earliest claimed: 2021-03-29
- Assignees: SambaNova Systems, Inc.
- Applicants: SambaNova Systems, Inc.
- Inventors: Tejas Nagendra Babu Nama; Ruddhi Chaphekar; Ram Sivaramakrishnan; Raghu Prabhakar; Sumti Jairath; Junjue Wang; Kaizhao Liang; Adi Fuchs; Matheen Musaddiq; Arvind Krishna Sujeeth
- Web page: https://patentgrep.com/patent/US12112250B2

## CPC

- G06N 3/04: Architecture, e.g. interconnection topology
- G06N 3/063: using electronic means
- G06N 3/045: Combinations of networks
- G06N 3/0464: Convolutional networks [CNN, ConvNet]
- G06N 3/084: Backpropagation, e.g. using gradient descent
- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G06T 1/60: Memory management
- G06N 3/082: modifying the architecture, e.g. adding, deleting or silencing nodes or connections
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

A data processing system includes compile time logic to section a graph into a sequence of sections, including a first section followed by a second section. The compile time logic configured the first section to generate a first output in a first non-overlapping target configuration in response to processing an input in a first overlapping input configuration, and configures the second section to generate a second output in a second non-overlapping target configuration in response to processing the first output in a second overlapping input configuration. The compile time logic also creates a set of computer instructions to execute the first section and the second section on a target processing system.

## Claims

### Claim 1

A data processing system, comprising one or more processors coupled to a storage medium and compile time logic stored in the storage medium and executable in any of the one or more processors, the compile time logic configured to:
section a graph into a sequence of sections, the sequence of sections including a first section followed by a second section,
configure the first section to generate a first output in a first non-overlapping target configuration in response to processing an input in a first overlapping input configuration, and
configure the second section to generate a second output in a second non-overlapping target configuration in response to processing the first output in a second overlapping input configuration, wherein the second non-overlapping target configuration is different than the first non-overlapping target configuration; and
create a set of computer instructions to execute the first section and the second section on a target processing system, wherein the first output is generated by using tiles in the input as effective receptive fields, and wherein the compile time logic is further configured to reverse traverse the first section to determine the first overlapping input configuration as effective receptive fields of tiles in the input that satisfy the first non-overlapping target configuration.

### Claim 2 (depends on 1)

The data processing system of claim 1, wherein the target processing system comprises a reconfigurable dataflow processor having a Coarse-Grained Reconfigurable Architecture (CGRA) and the set of computer instructions comprise one or more configuration files for the reconfigurable dataflow processor.

### Claim 3 (depends on 1)

The data processing system of claim 1, further comprising the target processing system.

### Claim 4 (depends on 1)

The data processing system of claim 1, wherein the compile time logic is further configured to configure the first section to generate the first output in the first non-overlapping target configuration in response to processing the input in the first overlapping input configuration and a first intermediate output in a first intermediate configuration.

### Claim 5 (depends on 4)

The data processing system of claim 4, wherein the first intermediate configuration tiles the first intermediate output into a first set of intermediate overlapping tiles, wherein the first set of intermediate overlapping tiles is generated by using tiles of the first overlapping input configuration as effective receptive fields, and wherein the first output is generated by using tiles in the first set of intermediate overlapping tiles as effective receptive fields.

### Claim 6 (depends on 1)

The data processing system of claim 1, the compile time logic further configured to determine the second non-overlapping target configuration based on one or more of a size of the first output, a size of the second output, a number of layers in the second section, or processing logics implemented by respective layers in the second section.

### Claim 7 (depends on 1)

The data processing system of claim 1, the compile time logic further configured to determine both the first non-overlapping target configuration and the first overlapping input configuration independent of determining the second non-overlapping target configuration and the second overlapping input configuration.

### Claim 8

A computer-implemented method comprising:
sectioning a graph into a sequence of sections, the sequence of sections including a first section followed by a second section,
configuring the first section to generate a first output in a first non-overlapping target configuration in response to processing an input in a first overlapping input configuration, and
configuring the second section to generate a second output in a second non-overlapping target configuration in response to processing the first output in a second overlapping input configuration, wherein the first non-overlapping target configuration is different from the second non-overlapping target configuration;
creating a set of computer instructions to execute the first section and the second section on a target processing system, wherein the first output is generated by using tiles of first overlapping input configuration as effective receptive fields; and
reverse-traversing the first section to determine the first overlapping input configuration as effective receptive fields of tiles in the first set of non-overlapping tiles that satisfy the first non-overlapping target configuration.

### Claim 9 (depends on 8)

The method of claim 8, wherein the target processing system comprises a reconfigurable dataflow processor having a Coarse-Grained Reconfigurable Architecture (CGRA) and the set of computer instructions comprise one or more configuration files for the reconfigurable dataflow processor.

### Claim 10 (depends on 8)

The method of claim 8, further comprising configuring the first section to generate the first output in the first non-overlapping target configuration in response to processing the input in the first overlapping input configuration and a first intermediate output in a first intermediate configuration.

### Claim 11 (depends on 10)

The method of claim 10, wherein the first intermediate configuration tiles the first intermediate output into a first set of intermediate overlapping tiles, wherein the first set of intermediate overlapping tiles is generated by using tiles of the first overlapping input configuration as effective receptive fields, and wherein the first output is generated by using tiles in the first set of intermediate overlapping tiles as effective receptive fields.

### Claim 12 (depends on 8)

The method of claim 8, further comprising determining the second non-overlapping target configuration based on one or more of a size of the first output, a size of the second output, a number of layers in the second section, or processing logics implemented by respective layers in the second section.

### Claim 13 (depends on 8)

The method of claim 8, further comprising determining both the first non-overlapping target configuration and the first overlapping input configuration independent of determining the second non-overlapping target configuration and the second overlapping input configuration.

### Claim 14

A non-transitory computer readable storage medium storing computer program instructions that, when executed on a processor, implement a method comprising:
sectioning a graph into a sequence of sections, the sequence of sections including a first section followed by a second section,
configuring the first section to generate a first output in a first non-overlapping target configuration in response to processing an input in a first overlapping input configuration, and
configuring the second section to generate a second output in a second non-overlapping target configuration in response to processing the first output in a second overlapping input configuration, wherein the first non-overlapping target configuration is different from the second non-overlapping target configuration; and
creating a set of computer instructions to execute the first section and the second section on a target processing system, wherein the first output is generated by using tiles of first overlapping input configuration as effective receptive fields; and
reverse-traversing the first section to determine the first overlapping input configuration as effective receptive fields of tiles in the first set of non-overlapping tiles that satisfy the first non-overlapping target configuration.

### Claim 15 (depends on 14)

The non-transitory computer readable storage medium of claim 14, wherein the target processing system comprises a reconfigurable dataflow processor having a Coarse-Grained Reconfigurable Architecture (CGRA) and the set of computer instructions comprise one or more configuration files for the reconfigurable dataflow processor.

### Claim 16 (depends on 14)

The non-transitory computer readable storage medium of claim 14, the method further comprising configuring the first section to generate the first output in the first non-overlapping target configuration in response to processing the input in the first overlapping input configuration and a first intermediate output in a first intermediate configuration.

### Claim 17 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein the first intermediate configuration tiles the first intermediate output into a first set of intermediate overlapping tiles, wherein the first set of intermediate overlapping tiles is generated by using tiles of the first overlapping input configuration as effective receptive fields, and wherein the first output is generated by using tiles in the first set of intermediate overlapping tiles as effective receptive fields.

### Claim 18 (depends on 14)

The non-transitory computer readable storage medium of claim 14, the method further comprising determining the second non-overlapping target configuration based on one or more of a size of the first output, a size of the second output, a number of layers in the second section, or processing logics implemented by respective layers in the second section.

### Claim 19 (depends on 14)

The non-transitory computer readable storage medium of claim 14, the method further comprising determining both the first non-overlapping target configuration and the first overlapping input configuration independent of determining the second non-overlapping target configuration and the second overlapping input configuration.
