# US 2019/0317880 A1 · Methods and apparatus to improve runtime performance of software executing on a heterogeneous system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0317880 A1
- Document ID: US20190317880A1
- Status: Published application
- Kind: A1
- Application number: 16/455,486
- Filed: 2019-06-27
- Published: 2019-10-17
- Earliest claimed: 2019-06-27
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Adam Herr; Sridhar Sharma; Mikael Bourges-Sevenier; Derek Gerstmann; Justin Gottschlich
- Web page: https://patentgrep.com/patent/US20190317880A1

## CPC

- G06F 8/443: {Optimisation}
- G06F 11/3612: {by runtime analysis (performance monitoring G06F11/3466)}
- G06F 11/3409: {for performance assessment}
- G06F 11/3447: {Performance evaluation by modeling}
- G06F 11/3608: {using formal methods, e.g. model checking, abstract interpretation (theorem proving G06N5/013)}
- G06N 3/045: Combinations of networks
- G06N 3/09: Supervised learning
- G06N 3/0985: Hyperparameter optimisation; Meta-learning; Learning-to-learn
- G06N 20/00: Machine learning
- G06F 11/3428: {Benchmarking}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Methods, apparatus, systems and articles of manufacture are disclosed improve runtime performance of software executing on a heterogeneous system. An example apparatus includes a feedback interface to collect a performance characteristic of the heterogeneous system associated with a compiled version of a block of code at a first runtime, the compiled version executed according to a function designating successful execution of the compiled version on the heterogeneous system, the heterogeneous system including a first processing element and a second processing element different than the first processing element; a performance analyzer to determine a performance delta based on the performance characteristic and the function; and a machine learning modeler to, prior to a second runtime, adjust a cost model of the first processing element based on the performance delta, the adjusted cost model to cause a reduction in the performance delta to improve runtime performance of the heterogeneous system.

## Claims

### Claim 1

An apparatus to improve runtime performance of software executing on a heterogeneous system, the apparatus comprising:
a feedback interface to collect a performance characteristic of the heterogeneous system associated with a compiled version of a block of code at a first runtime, the compiled version executed according to a function designating successful execution of the compiled version on the heterogeneous system, the heterogeneous system including a first processing element and a second processing element different than the first processing element;
a performance analyzer to determine a performance delta based on the performance characteristic and the function; and
a machine learning modeler to, prior to a second runtime, adjust a cost model of the first processing element based on the performance delta, the adjusted cost model to cause a reduction in the performance delta to improve runtime performance of the heterogeneous system.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the cost model is a first cost model generated based on a first neural network, the machine learning modeler to, prior to the second runtime, adjust a second cost model of the second processing element based on the performance delta, the second cost model generated based on a second neural network.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the compiled version is a first compiled version, the apparatus further including a compiler to, prior to the second runtime, compile the block of code into a second compiled version of the block of code, the second compiled version to be executed on the heterogenous system.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the feedback interface is to collect the performance characteristic from a runtime scheduler as a fat binary.

### Claim 5 (depends on 4)

The apparatus of claim 4, wherein the performance characteristic is stored in a data-section of the fat binary.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the performance characteristic includes metadata and metric information associated with the execution of the compiled version of the block of code.

### Claim 7 (depends on 1)

The apparatus of claim 1, wherein the performance analyzer is to determine the performance delta as a difference between performance achieved at the first runtime and performance as defined by the function designating successful execution of the compiled version on the heterogeneous system.

### Claim 8

A non-transitory computer readable storage medium comprising instructions which, when executed, cause at least one processor to at least:
collect a performance characteristic of a heterogeneous system associated with a compiled version of a block of code at a first runtime, the compiled version executed according to a function designating successful execution of the compiled version on the heterogeneous system, the heterogeneous system including a first processing element and a second processing element different than the first processing element;
determine a performance delta based on the performance characteristic and the function; and
prior to a second runtime, adjust a cost model of the first processing element based on the performance delta, the adjusted cost model to cause a reduction in the performance delta to improve runtime performance of the heterogeneous system.

### Claim 9 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the cost model is a first cost model generated based on a first neural network, and wherein the instructions, when executed, cause the at least one processor to, prior to the second runtime, adjust a second cost model of the second processing element based on the performance delta, the second cost model generated based on a second neural network.

### Claim 10 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the compiled version is a first compiled version, and wherein the instructions, when executed, cause the at least one processor to, prior to the second runtime, compile the block of code into a second compiled version of the block of code, the second compiled version to be executed on the heterogenous system.

### Claim 11 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the instructions, when executed, cause the at least one processor to collect the performance characteristic from a runtime scheduler as a fat binary.

### Claim 12 (depends on 11)

The non-transitory computer readable storage medium of claim 11, wherein the performance characteristic is stored in a data-section of the fat binary.

### Claim 13 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the performance characteristic includes metadata and metric information associated with the execution of the compiled version of the block of code.

### Claim 14 (depends on 8)

The non-transitory computer readable storage medium of claim 8, wherein the instructions, when executed, cause the at least one processor to determine the performance delta as a difference between performance achieved at the first runtime and performance as defined by the function designating successful execution of the compiled version on the heterogeneous system.

### Claim 15

An apparatus to improve runtime performance of software executing on a heterogeneous system, the apparatus comprising:
means for collecting, the means for collecting to collect a performance characteristic of a heterogeneous system associated with a compiled version of a block of code at a first runtime, the compiled version executed according to a function designating successful execution of the compiled version on the heterogeneous system, the heterogeneous system including a first processing element and a second processing element different than the first processing element;
means for analyzing, the means for analyzing to determine a performance delta based on the performance characteristic and the function; and
means for generating models, the means for generating models to, prior to a second runtime, adjust a cost model of the first processing element based on the performance delta, the adjusted cost model to cause a reduction in the performance delta to improve runtime performance of the heterogeneous system.

### Claim 16 (depends on 15)

The apparatus of claim 15, wherein the cost model is a first cost model generated based on a first neural network, and wherein the means for generating models is to, prior to the second runtime, adjust a second cost model of the second processing element based on the performance delta, the second cost model generated based on a second neural network.

### Claim 17 (depends on 15)

The apparatus of claim 15, wherein the compiled version is a first compiled version, further including means for compiling, the means for compiling to, prior to the second runtime, compile the block of code into a second compiled version of the block of code, the second compiled version to be executed on the heterogenous system.

### Claim 18 (depends on 15)

The apparatus of claim 15, wherein the means for collecting are to collect the performance characteristic from a runtime scheduler as a fat binary.

### Claim 19 (depends on 18)

The apparatus of claim 18, wherein the performance characteristic is stored in a data-section of the fat binary.

### Claim 20 (depends on 15)

The apparatus of claim 15, wherein the performance characteristic includes metadata and metric information associated with the execution of the compiled version of the block of code.

### Claim 21 (depends on 15)

The apparatus of claim 15, wherein the means for analyzing are to determine the performance delta as a difference between performance achieved at the first runtime and performance as defined by the function designating successful execution of the compiled version on the heterogeneous system.

### Claim 22

A method to improve runtime performance of software executing on a heterogeneous system, the method comprising:
collecting a performance characteristic of the heterogeneous system associated with a compiled version of a block of code at a first runtime, the compiled version executed according to a function designating successful execution of the compiled version on the heterogeneous system, the heterogeneous system including a first processing element and a second processing element different than the first processing element;
determining a performance delta based on the performance characteristic and the function; and
prior to a second runtime, adjusting a cost model of the first processing element based on the performance delta, the adjusted cost model to cause a reduction in the performance delta to improve runtime performance of the heterogeneous system.

### Claim 23 (depends on 22)

The method of claim 22, wherein the cost model is a first cost model generated based on a first neural network, the method further including adjusting, prior to the second runtime, a second cost model of the second processing element based on the performance delta, the second cost model generated based on a second neural network.

### Claim 24 (depends on 22)

The method of claim 22, wherein the compiled version is a first compiled version, the method further including compiling, prior to the second runtime, the block of code into a second compiled version of the block of code, the second compiled version to be executed on the heterogenous system.

### Claim 25 (depends on 22)

The method of claim 22, wherein the performance characteristic is collected from a runtime scheduler as a fat binary.
