Multiphased profile guided optimization

US9612809B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9612809-B2
Application numberUS-201414292347-A
CountryUS
Kind codeB2
Filing dateMay 30, 2014
Priority dateMay 30, 2014
Publication dateApr 4, 2017
Grant dateApr 4, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Multiphased profile guided optimization optimizes executable code based on data collected during multiple training runs of a training executable. In multiphased profile guided optimization, multiple sets of profiling data are collected where each set of profiling data is associated with a program phase and a particular training run. Program phases include but are not limited to different program features, startup, steady state and shutdown. The program features can run concurrently. Priority of the phases can be specified.

First claim

Opening claim text (preview).

What is claimed: 1. A system comprising: at least one processor: a memory connected to the at least one processor; and at least one program module comprising a multiphased profile guided compiler that receives multiple sets of profiling data of a program, the program including a plurality of program phases, a set of profiling data generated from a select program phase of a separate execution of the program, and generates an optimized executable based on the multiple sets of profiling data, the optimized executable optimized for a program phase of the plurality of program phases. 2. The system of claim 1 , wherein a program phase of the plurality of program phases comprises start up. 3. The system of claim 1 , wherein a program phase of the plurality of program phases comprises steady state. 4. The system of claim 1 , wherein a program phase of the plurality of program phases comprises shutdown. 5. The system of claim 1 , wherein a program phase of the plurality of program phases comprises a program feature. 6. The system of claim 5 , wherein the optimized executable is optimized in accordance with received optimization priorities. 7. The system of claim 1 , further comprising at least one program module that receives input that identifies a priority order for optimization of the program phases. 8. A method comprising: receiving program source code for a program by a compiler of a software development computer, the program comprising a plurality of program phases; receiving a plurality of sets of training data, each set of training data of the plurality of sets of training data associated with a program phase of the plurality of program phases; receiving a plurality of sets of profiling data, a set of profiling data generated during a select program phase of a separate execution of the program; receiving input specifying a priority for optimization of the plurality of program phases; and optimizing executable code for the program phases of the plurality of program phases in accordance with the priority. 9. The method of claim 8 , further comprising: providing a plurality of training data sets to an execution engine, the execution engine producing separate profile data for each program phase of the plurality of program phases. 10. The method of claim 8 , wherein a program phase is one of start up, shutdown and steady state. 11. The method of claim 8 , wherein a program phase of the plurality of program phases comprises a feature of the program. 12. The method of claim 8 , wherein a plurality of features can execute concurrently. 13. The method of claim 8 , further comprising: executing a training executable in phases. 14. A device, comprising: at least one processor and a memory; the at least one processor configured to: receive program source code for a program by a compiler of a software development computer, the program comprising a plurality of program phases, a program phase associated with a separate execution of the program; receive a plurality of sets of training data, a set of training data of the plurality of sets of training data generated for a separate execution of a select program phase of the plurality of program phases; receive input specifying a priority for optimization of the plurality of program phases; and optimize executable code for the program phases of the plurality of program phases in accordance with the priority. 15. The device of claim 14 , wherein the at least one processor is further configured to: execute a training executable in phases. 16. The device of claim 15 , wherein the at least one processor is further configured to: collect profile data associated with each program phase separately. 17. The device of claim 14 , wherein the at least one processor is further configured to: optimize execution of startup by providing startup profile data to a multiphased profile guided compiler. 18. The device of claim 14 , wherein the at least one processor is further configured to: optimize execution of steady state by providing steady state profile data to a multiphased profile guided compiler. 19. The device of claim 14 , wherein the at least one processor is further configured to: optimize execution of shutdown by providing shutdown profile data to a multiphased profile guided compiler. 20. The device of claim 19 , wherein the at least one processor is further configured to: optimize execution of a feature by providing the feature profile data to a multiphased profile guided compiler.

Assignees

Inventors

Classifications

  • G06F8/443Primary

    Optimisation · CPC title

  • G06F8/4441Primary

    Reducing the execution time required by the program code · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9612809B2 cover?
Multiphased profile guided optimization optimizes executable code based on data collected during multiple training runs of a training executable. In multiphased profile guided optimization, multiple sets of profiling data are collected where each set of profiling data is associated with a program phase and a particular training run. Program phases include but are not limited to different progra…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F8/443. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 04 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).