IP Library › Granted Patent US 10,592,213
Granted Patent B2
US 10,592,213 · App. 15/787,494 · Granted Mar 17, 2020

Preprocessing tensor operations for optimal compilation

Inventors: Jeremy Bruestle (Seattle, WA); Choong Ng (Seattle, WA)
Assignee: Intel Corporation
G06F8/30G06F8/40G06F8/41G06F8/42G06F8/423G06F8/436G06F8/443G06F8/445G06F8/447G06F8/4441G06F8/45G06F9/45533G06F17/12G06F17/16G06N3/0454G06N3/063G06N20/00
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 10,592,213
App. No.
15/787,494
Granted
Mar 17, 2020
Kind
B2
Abstract

Techniques to preprocess tensor operations prior to code generation to optimize compilation are disclosed. A computer readable representation of a linear algebra or tensor operation is received. A code transformation software component performs transformations include output reduction and fraction removal. The result is a set of linear equations of a single variable with integer coefficients. Such a set lends itself to more efficient code generation during compilation by a code generation software component. Use cases disclosed include targeting a machine learning hardware accelerator, receiving code in the form of an intermediate language generated by a cross-compiler with multiple front ends supporting multiple programming languages, and cloud deployment and execution scenarios.

Claims (29)

1. A method to generate computer readable instructions, the method comprising:

transforming, by executing an instruction with at least one processor of a computing device, using an output reduction transformation, a computer language representation of a mathematical operation to create a first transformed representation of the mathematical operation, the first transformed representation including a set of one or more polynomials that are linear in a single variable and semantically equivalent to the computer language representation;

transforming, by executing an instruction with the at least one processor of a computing device, using a fraction removal transformation, the first transformed representation of the mathematical operation to create a second transformed representation of the mathematical operation, the second transformed representation including a set of one or more polynomials that have one or more integer coefficients and are semantically equivalent to the first transformed representation; and

generating the computer readable instructions for parallel processing, the computer readable instructions generated based on the second transformed representation.

2. The method of claim 1 , wherein the computer language representation includes any one of:

matrix multiplication;

convolution;

max pooling; or

a derivative of a convolution.

3. The method of claim 1 , wherein the generation of the computer readable instructions from the second transformed representation of the mathematical operation takes less time computationally than generating computer readable instructions based on the computer language representation of the mathematical operation.

4. The method of claim 1 , wherein the computer language representation is of a machine learning linear algebra operation.

5. The method of claim 1 , wherein the first and second transformations of the computer language representation includes performing bound generation.

6. The method of claim 1 , wherein the computer readable instructions are executable on a computing device.

7. The method of claim 6 , wherein the generating of the computer readable instructions includes at least one of:

thread assignment;

memory layout; or

cache optimization.

8. A system to perform preprocessing of computer readable representations of mathematical operations, the system comprising:

a processor;

a memory including instructions that, when executed, cause the processor to at least:

perform an output reduction transformation to transform a computer readable representation of a machine learning mathematical operation into a first transformed representation including a set of one or more polynomials that are linear in a single variable, the first transformed representation semantically equivalent to the computer language representation;

perform a fraction removal transformation to transform the first transformed representation of a machine learning mathematical operation into a second transformed representation including a set of one or more polynomials that have one or more integer coefficients and semantically equivalent to the first transformed representation; and

generate computer readable instructions for parallel processing, the computer readable instructions generated based on the second transformed representation.

9. The system of claim 8 , wherein the processor is to generate the computer readable instructions in view of a target machine learning operation hardware accelerator that more optimally targets parallel processing.

10. The system of claim 8 , wherein the processor and memory are virtual and are provided via a hypervisor.

11. Computer storage media comprising instructions that, when executed, cause at least one processor to at least:

perform an output reduction transformation to transform source code including a linear algebra operation into a first transformed representation including a set of one or more polynomials that are linear in a single variable, the first transformed representation semantically equivalent to the source code;

perform a fraction removal transformation to transform the first transformed representation including a set of one or more polynomials that are linear in a single variable into a second transformed representation including a set of one or more polynomials that have one or more integer coefficients, the second transformed representation semantically equivalent to the first transformed representation; and

generate computer readable instructions for parallel processing, the computer readable instructions generated based on the second transformed representation.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2018
From: 1026 LABS, INC.
To: INTEL CORPORATION
Reel/Frame 047025/0236 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2017
From: BRUESTLE, JEREMY; NG, CHOONG
To: 1026 LABS, INC
Reel/Frame 043897/0751 →
Continuity (2)
Provisional Application 62409975 · Oct 19, 2016
Related Publication 20180107456A1 · Apr 19, 2018