IP Library › Granted Patent US 11,907,726
Granted Patent B2
US 11,907,726 · App. 17/967,862 · Granted Feb 20, 2024

Systems and methods for virtually partitioning a machine perception and dense algorithm integrated circuit

Inventors: Nigel Drego (Burlingame, CA); Aman Sikka (Burlingame, CA); Mrinalini Ravichandran (Burlingame, CA); Robert Daniel Firu (Burlingame, CA); Veerbhan Kheterpal (Burlingame, CA)
Assignee: quadric.io, Inc.
G06F9/3897G06F9/5061G06F9/5066G06F9/5072G06F9/5077G06F15/80G06F15/8023G06F2212/152
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,907,726
App. No.
17/967,862
Granted
Feb 20, 2024
Kind
B2
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 (41)

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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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.

7. 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.

8. 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.

9. 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.

10. 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.

11. 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.

12. 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.

13. 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.

14. 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.

15. 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.

16. 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.

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.

18. 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.

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.

20. 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.

Assignments (2)
SECURITY INTEREST Recorded Apr 3, 2025
From: QUADRIC, INC.
To: DECATHLON ALPHA V, L.P.
Reel/Frame 070722/0441 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2022
From: DREGO, NIGEL; SIKKA, AMAN; RAVICHANDRAN, MRINALINI; FIRU, ROBERT DANIEL; KHETERPAL, VEERBHAN
To: QUADRIC.IO, INC.
Reel/Frame 061460/0741 →
Continuity (5)
Continuation 17214276 · Mar 26, 2021
Continuation 16864896 · May 1, 2020
Continuation 16747976 · Jan 21, 2020
Provisional Application 62794198 · Jan 18, 2019
Related Publication 20230043383A1 · Feb 9, 2023