IP Library Granted Patent US 11,200,035
Granted Patent B1
US 11,200,035 · App. 15/822,996 · Granted Dec 14, 2021

Methods and apparatus for automatic communication optimizations in a compiler based on a polyhedral representation

Inventors: Muthu M. Baskaran (Old Tappan, NJ); Richard A. Lethin (New York, NY); Benoit J. Meister (New York, NY); Nicolas T. Vasilache (New York, NY)
Assignee: Reservoir Labs, Inc.
G06F8/41G06F8/453G06F8/457
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,200,035
App. No.
15/822,996
Granted
Dec 14, 2021
Kind
B1
Abstract

Methods, apparatus and computer software product for source code optimization are provided. In an exemplary embodiment, a first custom computing apparatus is used to optimize the execution of source code on a second computing apparatus. In this embodiment, the first custom computing apparatus contains a memory, a storage medium and at least one processor with at least one multi-stage execution unit. The second computing apparatus contains at least one local memory unit that allows for data reuse opportunities. The first custom computing apparatus optimizes the code for reduced communication execution on the second computing apparatus.

Claims (19)

1. A method for improving data movements during parallelized execution of a program on a multi-execution unit computing apparatus, the method comprising:

receiving in memory on a first computing apparatus, a computer program comprising a loop nest, the first computing apparatus comprising the memory and a processor;

transforming the computer program for execution on a second computing apparatus, the second computing apparatus comprising a plurality of computation units, the transformation comprising:

selecting a communication statement within the loop nest, the communication statement transferring a data element from a first data structure to a second data structure;

identifying a candidate loop within the loop nest wherein a placement function for the communication statement, that designates execution of instances of the communication statement to the plurality of computation units, is invariant across an iteration domain of a sub-loop-nest within the candidate loop;

determining that:

a plurality of memory accesses associated with the instances of the communication statement are invariant across the iteration domain of the sub-loop-nest; and

the instances of the communication statement lack data dependencies with one or more instances of another statement; and

hoisting the communication statement outside the candidate loop or conditioning the communication statement on a particular iteration of the candidate loop.

2. The method of claim 1 , wherein:

the first data structure is formed within a global memory accessible to each of the plurality of computation units; and

the second data structure is formed within a local memory of a first processing unit in the plurality of computation units.

3. The method of claim 2 , wherein the local memory of the first processing unit is not accessible to any other processing unit in the plurality of computation units.

4. The method of claim 2 , wherein the local memory of the first processing unit is accessible to at least one other processing unit but is not accessible to all processing units in the plurality of computation units.

5. The method of claim 1 , wherein:

the first data structure is formed within a local memory of a first processing unit in the plurality of computation units; and

the second data structure is formed within a global memory accessible to each of the plurality of computation units.

6. The method of claim 1 , wherein the data dependency comprises a read-after-write dependency or a write-after-read dependency.

7. The method of claim 1 , wherein the transformation comprises, prior to the selecting, identifying, determining, and hoisting steps, tiling the loop nest.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2023
From: QUALCOMM TECHNOLOGIES, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 064686/0055 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2021
From: SIGNIFICS AND ELEMENTS, LLC
To: QUALCOMM TECHNOLOGIES, INC.
Reel/Frame 058896/0638 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2021
From: RESERVOIR LABS, INC.
To: LETHIN, RICHARD
Reel/Frame 057880/0116 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 22, 2021
From: LETHIN, RICHARD
To: SIGNIFICS AND ELEMENTS, LLC
Reel/Frame 057880/0146 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2021
From: RESERVOIR LABS, INC.
To: SIGNIFICS AND ELEMENTS, LLC
Reel/Frame 057364/0569 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2019
From: BASKARAN, MUTHU MANIKANDAN; LETHIN, RICHARD A.; MEISTER, BENOIT J.; VASILACHE, NICOLAS T.
To: RESERVOIR LABS, INC.
Reel/Frame 048699/0041 →