# US 11,907,726 B2 · Systems and methods for virtually partitioning a machine perception and dense algorithm integrated circuit

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

- Number: US 11,907,726 B2
- Document ID: US11907726B2
- Status: Granted
- Kind: B2
- Application number: 17/967,862
- Filed: 2022-10-17
- Published: 2023-02-09
- Granted: 2024-02-20
- Earliest claimed: 2019-01-18
- Assignees: quadric.io, Inc.
- Applicants: quadric.io, Inc.
- Inventors: Nigel Drego; Aman Sikka; Mrinalini Ravichandran; Robert Daniel Firu; Veerbhan Kheterpal
- Web page: https://patentgrep.com/patent/US11907726B2

## CPC

- G06F 9/3897: {with adaptable data path}
- G06F 9/5061: {Partitioning or combining of resources}
- G06F 9/5066: {Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs (mappping at compile time, see G06F8/451)}
- G06F 9/5072: {Grid computing}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 15/80: comprising an array of processing units with common control, e.g. single instruction multiple data processors (G06F15/82 takes precedence {; for correlation function computation G06F17/15})
- G06F 15/8023: {Two dimensional arrays, e.g. mesh, torus}
- G06F 2212/152: Virtualized environment, e.g. logically partitioned system
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for virtually partitioning an integrated circuit may include identifying dimensional attributes of a target input dataset and selecting a data partitioning scheme from a plurality of distinct data partitioning schemes for the target input dataset based on the dimensional attributes of the target dataset and architectural attributes of an integrated circuit. The methods described herein may also include disintegrating the target dataset into a plurality of distinct subsets of data based on the selected data partitioning scheme and identifying a virtual processing core partitioning scheme from a plurality of distinct processing core partitioning schemes for an architecture of the integrated circuit based on the disintegration of the target input dataset. Additionally, the architecture of the integrated circuit may be virtually partitioned into a plurality of distinct partitions of processing cores and each of the plurality of distinct subsets of data may be mapped to one of the plurality of distinct partitions of processing cores.

## Claims

### Claim 1

A method for virtually partitioning an integrated circuit, the method comprising:
identifying a virtual partitioning scheme of the integrated circuit;
partitioning an input dataset into a plurality of distinct partitions of data; and
virtually partitioning a processing architecture of the integrated circuit based on (a) the identifying of the virtual partitioning scheme of the integrated circuit and (b) the partitioning of the input dataset.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the identifying of the virtual partitioning scheme of the integrated circuit is based on one or more dimensional attributes of the input dataset.

### Claim 3 (depends on 2)

The method according to claim 2, wherein the one or more dimensional attributes of the input dataset include a first dimensional attribute corresponding to a dimensional size of the input dataset.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the identifying of the virtual partitioning scheme of the integrated circuit is based on a plurality of attributes of the integrated circuit.

### Claim 5 (depends on 4)

The method according to claim 4, wherein the plurality of attributes of the integrated circuit includes an attribute corresponding to a width dimension or a length dimension of at least a subset of processing cores arranged on the integrated circuit.

### Claim 6 (depends on 1)

The method according to claim 1, wherein identifying the virtual partitioning scheme includes:
in accordance with a determination that a size of the input dataset is smaller than a first size threshold, identifying a first virtual partitioning scheme; and
in accordance with a determination that the size of the input dataset is smaller than a second size threshold, identifying a second virtual partitioning scheme, different from the first virtual partitioning scheme, without identifying the first virtual partitioning scheme.

### Claim 7 (depends on 1)

The method according to claim 1, wherein:
the processing architecture of the integrated circuit includes at least one multi-core array; and
virtually partitioning the processing architecture of the integrated circuit includes virtually partitioning the at least one multi-core array into a plurality of virtually isolated multi-core arrays.

### Claim 8 (depends on 1)

The method according to claim 1, wherein the input dataset is partitioned into the plurality of distinct partitions of data based on an application associated with the input dataset.

### Claim 9 (depends on 1)

The method according to claim 1, wherein partitioning the input dataset into the plurality of distinct partitions of data includes:
setting one or more segmentation regions along a depth of the input dataset; and
subdividing the input dataset at each of the one or more segmentation regions along the depth of the input dataset.

### Claim 10 (depends on 9)

The method according to claim 9, wherein:
setting the one or more segmentation regions along the depth of the input dataset includes setting a plurality of segmentation regions along the depth of the input dataset based on identifying a plurality of non-interactive adjacent data segments along the depth of the input dataset.

### Claim 11 (depends on 10)

The method according to claim 10, wherein the plurality of non-interactive adjacent data segments indicate portions of the input dataset that are able to be independently processed.

### Claim 12 (depends on 1)

The method according to claim 1, wherein the input dataset is automatically partitioned into the plurality of distinct partitions of data based on determining that a size of the input dataset does not satisfy a utilization threshold.

### Claim 13 (depends on 1)

The method according to claim 1, wherein:
the virtual partitioning scheme is automatically identified based on a determination that a size of the input dataset does not satisfy a utilization threshold of the integrated circuit, and
the input dataset is automatically partitioned into the plurality of distinct partitions of data based on the determination that the size of the input dataset does not satisfy the utilization threshold of the integrated circuit.

### Claim 14 (depends on 1)

The method according to claim 1, wherein the integrated circuit includes a plurality of distinct array processing cores, including a first array processing core that includes one or more data processing circuits and a register file.

### Claim 15 (depends on 14)

The method according to claim 14, wherein the integrated circuit further includes a plurality of distinct border cores, including a first border core that includes at least one register file.

### Claim 16 (depends on 1)

The method according to claim 1, wherein the integrated circuit includes a plurality of processing cores, and virtually partitioning the processing architecture of the integrated circuit includes:
virtually grouping the plurality of processing cores into a plurality of processing core groups; and
limiting communication between the plurality of processing core groups.

### Claim 17

A method for virtually partitioning an array of processing cores of an integrated circuit, the method comprising:
implementing a data disintegration of an input dataset into a plurality of distinct data subsets;
identifying a partitioning architecture of the array of processing cores based on attributes of the input dataset; and
virtually partitioning the array of processing cores based on (a) the implementing of the data disintegration of the input dataset and (b) the identifying of the partitioning architecture of the array of processing cores.

### Claim 18 (depends on 17)

The method according to claim 17, wherein:
the input dataset includes a plurality of layers, and implementing the data disintegration of the input dataset includes partitioning the plurality of layers of the input dataset.

### Claim 19

A computer-program product embodied in a non-transitory machine-readable storage medium storing computer instructions that, when executed by one or more processors, perform operations comprising:
identifying a virtual partitioning scheme of an integrated circuit;
partitioning an input dataset into a plurality of distinct partitions of data; and
virtually partitioning a processing architecture of the integrated circuit based on (a) the identifying of the virtual partitioning scheme of the integrated circuit and (b) the partitioning of the input dataset.

### Claim 20 (depends on 19)

The computer-program product of claim 19, wherein identifying the virtual partitioning scheme of the integrated circuit includes automatically selecting the virtual partitioning scheme from a plurality of distinct virtual partitioning schemes based on an assessment of the input dataset against one or more partitioning thresholds.
