Framework for user-directed profile-driven optimizations

US9760351B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9760351-B2
Application numberUS-201313855557-A
CountryUS
Kind codeB2
Filing dateApr 2, 2013
Priority dateApr 2, 2013
Publication dateSep 12, 2017
Grant dateSep 12, 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.

A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the application's preferred parameter value for the profile parameter.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for using profiling to obtain application-specific, preferred parameter values for an application, the method comprising: receiving identification of an application-specific parameter for which to obtain an application-specific value; receiving augmented code for profiling the application-specific parameter; profiling the parameter and collecting profile data by: generating an instrumentation binary from an instrumentation build, the instrumentation binary containing at least one user-defined callback routine registered by the user in a profile initialization function; executing a training run with one or more representative workloads using the instrumentation binary, the execution invoking the at least one user-defined callback routine to record at least one application-specific preferred parameter value for the application in the collected profile data; analyzing the collected profile data using the at least one user-defined callback routine; and generating a feedback-directed optimization (FDO) build using the collected profile data, the FDO build utilizing the at least one application-specific preferred parameter value recorded in the collected profile data for the profiled application-specific parameter. 2. The method of claim 1 wherein profiling is user-directed per-class global value profiling. 3. The method of claim 1 wherein profiling is user-directed per-site value profiling. 4. The method of claim 1 wherein profiling is user-directed per-site object value profiling. 5. The method of claim 1 wherein generating the FDO build, further comprises: transforming, based on the profile data, an application-specific parameter value to a preferred value using a set of standard value profile transformations. 6. A method for user-directed per-class global value profiling, the method comprising: receiving a user-defined profile instrumentation initialization routine, the profile instrumentation initialization routine initializing a counter to profile a parameter and registering a user-defined analysis call back routine, containing custom processing for profile data; generating an instrumentation binary from an instrumentation build, the instrumentation binary containing at least one user-defined analysis callback routine registered by the user in a profile initialization function; executing a training run with one or more representative workloads using the instrumentation binary, wherein the execution of the training run includes: running a profile update function in a code location where the counter's value should be updated; and executing a profile handler method, registered in the user-defined analysis callback routine, to process counter data and record a preferred parameter value for the profiled parameter; and generating a feedback-directed optimization (FDO) build using profile data collected during execution of the training run. 7. The method of claim 1 further comprising defining a profile counter for the application-specific parameter to be profiled. 8. The method of claim 7 further comprising allocating one entry in the static counter array for the counter. 9. The method of claim 8 wherein allocation is done by calling a compiler extension for counter allocation. 10. The method of claim 1 further comprising allowing for profile counter address tracking by providing a special purpose declaration attribute for the profile counter. 11. The method of claim 1 further comprising allowing for profile initialization by providing a special purpose declaration attribute to designate a profile initialization function. 12. The method of claim 6 further comprising registering a user-defined analysis call back routine by using a GCC interface. 13. The method of claim 6 further comprising recording the preferred parameter value by using a GCC interface.

Assignees

Inventors

Classifications

  • G06F8/4434Primary

    Reducing the memory space required by the program code · CPC title

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

  • G06F8/443Primary

    Optimisation · 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 US9760351B2 cover?
A method for using profiling to obtain application-specific, preferred parameter values for an application is disclosed. First, a parameter for which to obtain an application-specific value is identified. Code is then augmented for application-specific profiling of the parameter. The parameter is profiled and profile data is collected. The profile data is then analyzed to determine the applicat…
Who is the assignee on this patent?
Google Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/4434. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 12 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).