IP Library Granted Patent US 11,561,925
Granted Patent B2
US 11,561,925 · App. 17/476,749 · Granted Jan 24, 2023

Tensor partitioning and partition access order

Inventors: Raghu Prabhakar (San Jose, CA); Nathan Francis Sheeley (Austin, TX); Matheen Musaddiq (Austin, TX); Scott Layson Burson (Sunnyvale, CA); Sitanshu Gupta (San Jose, CA); Sumti Jairath (Santa Clara, CA); Pramod Nataraja (San Jose, CA); Ajit Punj (San Jose, CA)
Assignee: SambaNova Systems, Inc.
G06F15/7892G06F15/7817G06F15/7839G06F15/8061G06F17/16G06F2015/763
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,561,925
App. No.
17/476,749
Granted
Jan 24, 2023
Kind
B2
Abstract

A method of processing partitions of a tensor in a target order includes receiving, by a reorder unit and from two or more producer units, a plurality of partitions of a tensor in a first order that is different from the target order, storing the plurality of partitions in the reorder unit, and providing, from the reorder unit, the plurality of partitions in the target order to one or more consumer units. In an example, the one or more consumer units process the plurality of partitions in the target order.

Claims (60)

1. A method of providing partitions of a tensor in a target order to one or more consumer units of an array of configurable units, the tensor comprising (i) a first plurality of partitions and (ii) a second plurality of partitions, wherein the target order is a concatenation of (i) a first target order for the first plurality of partitions and (ii) a second target order for the second plurality of partitions, the method comprising:

receiving, by a reorder unit of the array of configurable units and from two or more producer units of the array of configurable units, the first plurality of partitions of the tensor in a first order that is different from the first target order;

providing, from the reorder unit, the first plurality of partitions in the first target order to the one or more consumer units;

subsequent to and in response to providing the first plurality of partitions in the first target order from the reorder unit to the one or more consumer units, receiving, by the reorder unit and from the two or more producer units, the second plurality of partitions of the tensor in a second order that is different from the second target order; and

providing, from the reorder unit, the second plurality of partitions in the second target order to the one or more consumer units;

wherein the one or more consumer units, the reorder unit, and the two or more producer units are configurable units of the array of configurable units.

2. The method of claim 1 , further comprising:

subsequent to and in response to providing the first plurality of partitions in the first target order from the reorder unit to the one or more consumer units, issuing, by the reorder unit, a reset signal,

wherein receiving the second plurality of partitions of the tensor in the second order comprises:

subsequent to and in response to the two or more producer units receiving the reset signal, receiving, by the reorder unit and from the two or more producer units, the second plurality of partitions of the tensor in the second order.

3. The method of claim 2 , further comprising:

refraining, by the two or more producer units, from transmitting any partition of the second plurality of partitions of the tensor to the reorder unit prior to the issuance of the reset signal.

4. The method of claim 2 , further comprising:

refraining, by the two or more producer units, from transmitting any partition of the first plurality of partitions of the tensor to the reorder unit subsequent to the issuance of the reset signal.

5. The method of claim 1 , further comprising:

assigning, to each partition of the first plurality of partitions, a corresponding sequence identification (ID) of a first plurality of sequence IDs; and

assigning, to each partition of the second plurality of partitions, a corresponding sequence ID of a second plurality of sequence IDs,

wherein the first plurality of sequence IDs are arranged in a first sequence that identifies the first target order of the corresponding first plurality of partitions, and the second plurality of sequence IDs are arranged in a second sequence that identifies the second target order of the corresponding second plurality of partitions.

6. The method of claim 5 , further comprising:

processing, by a first producer unit of the array of configurable units, the first plurality of sequence IDs in the first sequence, wherein processing, by the first producer unit, the first plurality of sequence IDs in the first sequence comprises:

for each sequence ID in the first plurality of sequence IDs, (i) determining if the corresponding partition of the first plurality of partitions is stored in the first producer unit, (ii) if the corresponding partition is stored in the first producer unit, outputting the corresponding partition to the reorder unit and processing the next sequence ID in the first plurality of sequence IDs, and (ii) if the corresponding partition is not stored in the first producer unit, processing the next sequence ID in the first plurality of sequence IDs, without outputting any partition.

7. The method of claim 6 , further comprising:

subsequent to and in response to providing the first plurality of partitions in the first target order from the reorder unit to the one or more consumer units, issuing, by the reorder unit, a reset signal; and

subsequent to processing the first plurality of sequence IDs in the first sequence and subsequent to receiving a reset signal from the reorder unit, processing, by the first producer unit, the second plurality of sequence IDs in the second sequence.

8. The method of claim 1 , wherein the reorder unit does not have sufficient storage space to store, at a given time, all the partitions of the tensor.

9. A non-transitory computer readable storage medium impressed with computer program instructions, the instructions, when executed on a processor, implement a method of providing partitions of a tensor in a target order to one or more consumer units of an array of configurable units, the tensor comprising a plurality of partitions that includes (i) a first plurality of partitions of the tensor and (ii) a second plurality of partitions of the tensor, the method comprising:

storing, by a first producer unit of the array of configurable units, a first subset of the plurality of partitions, and storing, by a second producer unit of the array of configurable units, a second subset of the plurality of partitions;

first transmitting (i) by the first producer unit, those partitions of the first subset, which are included in the first plurality of partitions, to a reorder unit of the array of configurable units and (ii) by the second producer unit, those partitions of the second subset, which are included in the first plurality of partitions, to the reorder unit;

issuing, by the reorder unit and subsequent to the first transmitting, a reset signal;

subsequent to the issuance of the reset signal, second transmitting (i) by the first producer unit, those partitions of the first subset, which are included in the second plurality of partitions, to the reorder unit, and (ii) by the second producer unit, those partitions of the second subset, which are included in the second plurality of partitions, to the reorder unit:

wherein the one or more consumer units, the reorder unit, and the first and second producer units are configurable units of the array of configurable units.

10. The non-transitory computer readable storage medium of claim 9 , further comprising:

receiving, by the reorder unit and prior to the issuance of the reset signal, the first plurality of partitions that includes (i) those partitions of the first subset, which are included in the first plurality of partitions and which are received from the first producer unit, and (ii) those partitions of the second subset, which are included in the first plurality of partitions and which are received form the second producer unit; and

providing, by the reorder unit and prior to the issuance of the reset signal, the first plurality of partitions to the one or more consumer units.

11. The non-transitory computer readable storage medium of claim 9 , wherein:

the target order is a concatenation of (i) a first target order for the first plurality of partitions and (ii) a second target order for the second plurality of partitions;

receiving, by the reorder unit, the first plurality of partitions comprises receiving, by the reorder unit, the first plurality of partitions in an order that is different from the first target order; and

providing, by the reorder unit, the first plurality of partitions to the one or more consumer units comprises providing, by the reorder unit, the first plurality of partitions to the one or more consumer units in the first target order.

12. The non-transitory computer readable storage medium of claim 9 , further comprising:

receiving, by the reorder unit and subsequent to the issuance of the reset signal, the second plurality of partitions that includes (i) those partitions of the first subset, which are included in the second plurality of partitions and which are received from the first producer unit, and (ii) those partitions of the second subset, which are included in the second plurality of partitions and which are received form the second producer unit; and

providing, by the reorder unit and subsequent to the issuance of the reset signal, the second plurality of partitions to the one or more consumer units.

13. The non-transitory computer readable storage medium of claim 12 , wherein:

the target order is a concatenation of (i) a first target order for the first plurality of partitions and (ii) a second target order for the second plurality of partitions;

receiving, by the reorder unit, the second plurality of partitions comprises receiving, by the reorder unit, the second plurality of partitions in an order that is different from the second target order; and

providing, by the reorder unit, the second plurality of partitions to the one or more consumer units comprises providing, by the reorder unit, the second plurality of partitions to the one or more consumer units in the second target order.

14. The non-transitory computer readable storage medium of claim 12 , wherein the reorder unit does not have sufficient storage space to store, at a given time, all the partitions of the tensor.

15. An integrated circuit, comprising:

an array of configurable units, configurable units in the array of configurable units including a plurality of producer configurable units, a reorder configurable unit, and one or more consumer configurable units; and

a data bus connected to the array of configurable units which communicates data at a data bus clock rate,

wherein the plurality of producer configurable units is configured to store a first plurality and a second plurality of partitions of a tensor, such that first one or more partitions of the tensor are stored in a first producer configurable unit and second one or more partitions of the tensor are stored in a second producer configurable unit,

wherein the one or more consumer configurable units are to require transmission of (i) the first plurality of partitions to the one or more consumer configurable units in a first target order for processing, and (ii) the second plurality of partitions to the one or more consumer configurable units in a second target order for processing,

wherein the plurality of producer configurable units is configured to deliver the first plurality of partitions to the reorder configurable unit in an order that is different from the first target order, wherein the reorder configurable unit is configured to deliver the first plurality of partitions in the first target order to the one or more consumer configurable units,

wherein the reorder configurable unit is configured to issue a read ready signal, in response to transmission of the first plurality of partitions to the one or more consumer configurable units,

wherein the plurality of producer configurable units is configured to, in response to the read ready signal, deliver the second plurality of partitions to the reorder configurable unit in another order that is different from the second target order, and

wherein the reorder configurable unit is configured to deliver the second plurality of partitions in the second target order to the one or more consumer configurable units.

16. The integrated circuit of claim 15 , wherein the one or more consumer configurable units are configured to process the first and second plurality of partitions in the target order that is a concatenation of the first target order and the second target order.

17. The integrated circuit of claim 15 , further comprising a control bus connected to the configurable units which communicates control signals at a control bus clock rate.

18. The integrated circuit of claim 15 , wherein a size of a larger of the first or second plurality of partitions matches a buffer depth of the reorder configurable units.

19. The integrated circuit of claim 15 , wherein the first target order is embedded as a sequence identification (ID) associated with individual partitions of the first plurality of partitions, and wherein the second target order is embedded as a sequence ID associated with individual partitions of the second plurality of partitions.

20. The integrated circuit of claim 19 , wherein a sequence ID of a partition is stored in a corresponding metadata associated with the tensor.

Assignments (2)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 18, 2025
From: SAMBANOVA SYSTEMS, INC.
To: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 070892/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2021
From: PRABHAKAR, RAGHU; SHEELEY, NATHAN FRANCIS; MUSADDIQ, MATHEEN; BURSON, SCOTT LAYSON; GUPTA, SITANSHU; JAIRATH, SUMTI; NATARAJA, PRAMOD; PUNJ, AJIT
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 057505/0087 →
Continuity (2)
Continuation 17216647 · Mar 29, 2021
Related Publication 20220309029A1 · Sep 29, 2022