Multiprocessor Programming Toolkit for Design Reuse
US-2024394048-A1 · Nov 28, 2024 · US
US9612809B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9612809-B2 |
| Application number | US-201414292347-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 30, 2014 |
| Priority date | May 30, 2014 |
| Publication date | Apr 4, 2017 |
| Grant date | Apr 4, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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.
Optimisation · CPC title
Reducing the execution time required by the program code · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.