IP Library › Granted Patent US 12,079,632
Granted Patent B2
US 12,079,632 · App. 18/067,016 · Granted Sep 3, 2024

Sequence partition based schedule optimization

Inventors: Jens Huthmann (Hyogo, JP); Sakyasingha Dasgupta (Tokyo, JP); Nikolay Nez (Tokyo, JP)
Assignee: EDGECORTIX INC.
G06F9/3838G06F5/01G06F7/32G06F9/3856G06F9/3861
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 12,079,632
App. No.
18/067,016
Granted
Sep 3, 2024
Kind
B2
Abstract

Sequence partition based schedule optimization is performed by generating a sequence and a schedule based on the sequence, dividing the sequence into a plurality of sequence partitions based on the schedule and the data dependency graph, each sequence partition including a portion of the plurality of instructions and a portion of the plurality of buffers, performing, for each sequence partition, a plurality of partition optimizing iterations, and merging the plurality of sequence partitions to produce a merged schedule.

Claims (88)

1. A non-transitory computer-readable medium including instructions executable by a processor to cause the processor to perform operations comprising:

assigning each instruction among a plurality of instructions of a data dependency graph to a corresponding computation unit among a plurality of computation units and each buffer among a plurality of buffers of the data dependency graph to a corresponding memory unit among a plurality of memory units;

ordering the plurality of instructions and the plurality of buffers to produce a sequence;

producing a schedule based on the sequence;

dividing the sequence into a plurality of sequence partitions based on the schedule and the data dependency graph, each sequence partition including a portion of the plurality of instructions and a portion of the plurality of buffers;

performing, for each sequence partition, a plurality of partition optimizing iterations of allotting the instructions among the portion of the plurality of instructions and the buffers among the portion of the plurality of buffers in the sequence partition to intervals of time to produce a partition schedule,

restoring the sequence partition of a previous iteration in response to determining that a partition schedule of the previous iteration is more optimal than the partition schedule of a current iteration, and

mutating the sequence partition; and

merging the plurality of sequence partitions to produce a merged schedule.

2. The computer-readable medium of claim 1 , wherein the operations further comprise

merging the plurality of sequence partitions to produce a merged sequence after performing the plurality of partition optimizing iterations;

performing a plurality of merged schedule optimizing iterations of

mutating the merged sequence,

allotting the instructions among the plurality of instructions and the buffers among the plurality of buffers in the merged sequence to intervals of time to reproduce the merged schedule, and

restoring the sequence of a previous iteration in response to determining that the merged schedule of the previous iteration is more optimal than the merged schedule of a current iteration.

3. The computer-readable medium of claim 1 , wherein the producing the schedule includes performing a plurality of schedule optimizing iterations of

allotting the instructions among the plurality of instructions and the buffers among the plurality of buffers in the sequence to intervals of time,

restoring the sequence of a previous iteration in response to determining that a schedule of the previous iteration is more optimal than the schedule of a current iteration, and

mutating the sequence.

4. The computer-readable medium of claim 1 , wherein the dividing the sequence includes:

drawing a plurality of initial boundaries in the schedule;

shifting, for each boundary, the initial boundary to intersect buffers among the plurality of buffers in the data dependency graph; and

duplicating each intersected buffer among the plurality of buffers.

5. The computer-readable medium of claim 4 , wherein the dividing the sequence further includes:

adding dummy instructions to each intersected buffer and each duplicated buffer.

6. The computer-readable medium of claim 1 , wherein the mutating includes performing at least one of:

reordering the instructions among the portion of the plurality of instructions in the sequence partition,

reassigning the instructions among the portion of the plurality of instructions in the sequence partition, or

reassigning the buffers among the portion of the plurality of buffers in the sequence partition.

7. The computer-readable medium of claim 1 , wherein the dividing the sequence includes dividing the sequence into a number of sequence partitions of no less than three.

8. The computer-readable medium of claim 1 , wherein the dividing the sequence includes dividing the sequence into a number of sequence partitions such that each sequence has no less than one-hundred instructions.

9. A method comprising:

assigning each instruction among a plurality of instructions of a data dependency graph to a corresponding computation unit among a plurality of computation units and each buffer among a plurality of buffers of the data dependency graph to a corresponding memory unit among a plurality of memory units;

ordering the plurality of instructions and the plurality of buffers to produce a sequence;

producing a schedule based on the sequence;

dividing the sequence into a plurality of sequence partitions based on the schedule and the data dependency graph, each sequence partition including a portion of the plurality of instructions and a portion of the plurality of buffers;

performing, for each sequence partition, a plurality of partition optimizing iterations of

allotting the instructions among the portion of the plurality of instructions and the buffers among the portion of the plurality of buffers in the sequence partition to intervals of time to produce a partition schedule,

restoring the sequence partition of a previous iteration in response to determining that a partition schedule of the previous iteration is more optimal than the partition schedule of a current iteration, and

mutating the sequence partition; and

merging the plurality of sequence partitions to produce a merged schedule.

10. The method of claim 9 , further comprising

merging the plurality of sequence partitions to produce a merged sequence after performing the plurality of partition optimizing iterations;

performing a plurality of merged schedule optimizing iterations of

mutating the merged sequence,

allotting the instructions among the plurality of instructions and the buffers among the plurality of buffers in the merged sequence to intervals of time to reproduce the merged schedule, and

restoring the sequence of a previous iteration in response to determining that the merged schedule of the previous iteration is more optimal than the merged schedule of a current iteration.

11. The method of claim 9 , wherein the producing the schedule includes performing a plurality of schedule optimizing iterations of

allotting the instructions among the plurality of instructions and the buffers among the plurality of buffers in the sequence to intervals of time,

restoring the sequence of a previous iteration in response to determining that a schedule of the previous iteration is more optimal than the schedule of a current iteration, and

mutating the sequence.

12. The method of claim 9 , wherein the dividing the sequence includes:

drawing a plurality of initial boundaries in the schedule;

shifting, for each boundary, the initial boundary to intersect buffers among the plurality of buffers in the data dependency graph; and

duplicating each intersected buffer among the plurality of buffers.

13. The method of claim 12 , wherein the dividing the sequence further includes:

adding dummy instructions to each intersected buffer and each duplicated buffer.

14. The method of claim 9 , wherein the mutating includes performing at least one of:

reordering the instructions among the portion of the plurality of instructions in the sequence partition,

reassigning the instructions among the portion of the plurality of instructions in the sequence partition, or

reassigning the buffers among the portion of the plurality of buffers in the sequence partition.

15. The method of claim 9 , wherein the dividing the sequence includes dividing the sequence into a number of sequence partitions of no less than three.

16. The method of claim 9 , wherein the dividing the sequence includes dividing the sequence into a number of sequence partitions such that each sequence has no less than one-hundred instructions.

17. An apparatus comprising:

a controller including circuitry configured to:

assign each instruction among a plurality of instructions of a data dependency graph to a corresponding computation unit among a plurality of computation units and each buffer among a plurality of buffers of the data dependency graph to a corresponding memory unit among a plurality of memory units;

order the plurality of instructions and the plurality of buffers to produce a sequence;

produce a schedule based on the sequence;

divide the sequence into a plurality of sequence partitions based on the schedule and the data dependency graph, each sequence partition including a portion of the plurality of instructions and a portion of the plurality of buffers;

perform, for each sequence partition, a plurality of partition optimizing iterations of

allotting the instructions among the portion of the plurality of instructions and the buffers among the portion of the plurality of buffers in the sequence partition to intervals of time to produce a partition schedule,

restoring the sequence partition of a previous iteration in response to determining that a partition schedule of the previous iteration is more optimal than the partition schedule of a current iteration, and

mutating the sequence partition;

merge the plurality of partition schedules produce a merged schedule.

18. The apparatus of claim 17 , wherein the circuitry is further configured to

merge the plurality of sequence partitions to produce a merged sequence after performing the plurality of partition optimizing iterations;

perform a plurality of merged schedule optimizing iterations of

mutating the merged sequence,

allotting the instructions among the plurality of instructions and the buffers among the plurality of buffers in the merged sequence to intervals of time to reproduce the merged schedule, and

restoring the sequence of a previous iteration in response to determining that the merged schedule of the previous iteration is more optimal than the merged schedule of a current iteration.

19. The apparatus of claim 17 , wherein the producing the schedule includes performing a plurality of schedule optimizing iterations of

allotting the instructions among the plurality of instructions and the buffers among the plurality of buffers in the sequence to intervals of time,

restoring the sequence of a previous iteration in response to determining that a schedule of the previous iteration is more optimal than the schedule of a current iteration, and

mutating the sequence.

20. The apparatus of claim 17 , wherein the dividing the sequence includes:

drawing a plurality of initial boundaries in the schedule;

shifting, for each boundary, the initial boundary to intersect buffers among the plurality of buffers in the data dependency graph; and

duplicating each intersected buffer among the plurality of buffers.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2023
From: EDGECORTIX PTE. LTD.
To: EDGECORTIX INC.
Reel/Frame 065056/0608 →
ASSIGNEE ADDRESS CHANGE Recorded Feb 28, 2023
From: EDGECORTIX PTE. LTD.
To: EDGECORTIX PTE. LTD.
Reel/Frame 062967/0881 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2022
From: HUTHMANN, JENS; DASGUPTA, SAKYASINGHA; NEZ, NIKOLAY
To: EDGECORTIX PTE. LTD.
Reel/Frame 062118/0722 →
Continuity (1)
Related Publication 20240202001A1 · Jun 20, 2024