DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This office action is in response to the amendment filed June 12, 2025.
Claims 1-25 are pending.
The rejections under §101 are withdrawn in view of applicant’s amendments to the claims.
Response to Arguments
Applicant’s arguments, see Remarks filed June 12, 2025, with respect to the rejection(s) of claim(s) 1-25 under §§102,103 have been fully considered and are persuasive. Therefore, the rejection has been withdrawn. However, upon further consideration, a new ground(s) of rejection is made in view of the prior art including “Sandanagobalane” (US PG Pub 2019/0146766) as applied below.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1,3,4,6,8,10, 11, 13,15,17,19,21 and 23 is/are rejected under 35 U.S.C. 103(a)as being obvious in view of “Blackstein” (US PG Pub 2020/0192680) in view of “Sandanagobalane” (US PG Pub 2019/0146766).
Regarding Claim 1, Blackstein teaches:
1. (Currently Amended) At least one non-transitory computer-readable medium, comprising instructions stored thereon, that if executed by at least one processor, cause the at least one processor to: execute a compiler for a shader process to be executed by one or more graphics processing units (GPUs) to compile the shader process on a computing system based on run-time profile guided optimization (PGO), (Blackstein Fig. 1, ¶¶21-22, and Fig. 3, ¶¶35,38-39, 47-48 teaches a use of piecemeal profiles of GPU application execution to facilitating optimizing in application compilation)
wherein the compile the shader process on the computer system based on run-time PGO comprises: apply a configuration of the computing system based on a prior compilation of an instance the shader process, (Blackstein ¶48 teaches recompiling using profiling data for executing using the updated profile data)
the configuration of the computing system comprises a configuration of a processor and a memory, (Blackstein ¶¶27-28,32 teaches the processor and memory as part of the device used for PGO based recompilation and execution)
the operations comprise one or more of: a draw, render pass, or dispatch. (Blackstein ¶¶50 teaches the shader program include operations such as draw calls).
Blackstein does not teach, but Sandanagobalane teaches:
the configuration is to cause a reorder and unroll of loop operations of the shader process, and (Sandanagobalane e.g. ¶¶50-51 teaches a set of profiled guided optimizations including code motion, inlining, and loop unrolling)
In addition, it would have been obvious to one of ordinary skill in the art prior to the effective filing date to combine the teachings of Blackstein and Sandanagobalane as each is directed to optimization techniques and Sandanagobalane recognized “there is a currently a need for techniques to optimize code to be performed by a co-processor, such as a GPU or other accelerator.” (¶3).
Regarding Claim 3 , Blackstein teaches:
3. The at least one computer-readable medium of claim1, wherein the compile the shader process based on run-time PGO is based on previously generated profile data. (Blackstein e.g. ¶48 teaches using the previously generated piecemeal profiles in optimizing compilation of an application).
]
Regarding Claim 4, Blackstein teaches:
4. The at least one computer-readable medium of claim1, wherein the compile the shader process based on run-time PGO is based on a subset of draws to profile and optimize. (Blackstein e.g. ¶¶50-51 teaches PGO technieques carried out to profile and optimize code for draw instructions executing in the application on the GPU).
Regarding Claim 6, Blackstein teaches:
6. The at least one computer-readable medium of claim 1, wherein the compile the shader process based on run-time PGO selects when to perform profiling to reduce performance cost and impact of profile data collection on computer resources. (Blackstein e.g. ¶31 teaches customizing of instrumented profiling to reduce overhead costs associated with the PGO technique).
Regarding Claim 8, Blackstein teaches:
8. The at least one computer-readable medium of claim 1, wherein the compile the shader process based on run-time PGO is based on incomplete profile data. (Blackstein e.g. ¶31 teaches customizing of instrumented profiling to only take partial profiles of portions of the code of the application executed on a GPU to generate the piecemeal profiles).
Regarding Claim 10, Blackstein teaches:
10. The at least one computer-readable medium of claim 1, wherein the process comprises one or more of an application, virtual machine (VM), container, and/or microservice. (Blackstein e.g. ¶14 teaches carrying out PGO techniques to generate piecemeal profiles which may be aggregated into a profile for use in optimizing compilation of the program).
Regarding Claim 11, Blackstein teaches:
11. (Currently Amended) An apparatus comprising:at least one processor and at least one memory comprising instructions stored thereon, that if executed by the at least one processor, cause the at least one processor to:execute a compiler for a process to be executed by one or more graphics processing units (GPUs) to compile the process to execute on a computer system based on run-time profile guided optimization (PGO), (Blackstein Fig. 1, ¶¶21-22, and Fig. 3, ¶¶35,38-39, 47-48 teaches a use of piecemeal profiles of GPU application execution to facilitating optimizing in application compilation)
wherein the compile the shader process on the computer system based on run-time PGO comprises: apply a configuration of the computing system based on a prior compilation of an instance the shader process, (Blackstein ¶48 teaches recompiling using profiling data for executing using the updated profile data)
the configuration of the computing system comprises a configuration of a processor and a memory, (Blackstein ¶¶27-28,32 teaches the processor and memory as part of the device used for PGO based recompilation and execution) a driver version, and application settings,(Blackstein ¶32 describes an application profiler as part of the PGO process updating drivers and application settings )
the operations comprise one or more of: a draw, render pass, or dispatch. (Blackstein ¶¶50 teaches the shader program include operations such as draw calls).
Blackstein does not teach, but Sandanagobalane teaches:
the configuration is to cause a reorder and unroll of loop operations of the shader process, and (Sandanagobalane e.g. ¶¶50-51 teaches a set of profiled guided optimizations including code motion, inlining, and loop unrolling)
In addition, it would have been obvious to one of ordinary skill in the art prior to the effective filing date to combine the teachings of Blackstein and Sandanagobalane as each is directed to optimization techniques and Sandanagobalane recognized “there is a currently a need for techniques to optimize code to be performed by a co-processor, such as a GPU or other accelerator.” (¶3).
Claims 13, 15, and 17 are rejected on the same basis as claims 3,6,and 8 respectively above.
Claims 19, 21, and 23 are rejected on the same basis as clams 1,3 and 6 respectively above.
Claim(s) 2, 12 and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over “Blackstein” (US PG Pub 2020/0192680) in view of “Sandanagobalane” (US PG Pub 2019/0146766) as applied above and further in view of “Dagani” (US Patent 11,321,907).
Regarding Claim 2, Blackstein teaches the limitations of claim 1, but does not further teach, Dagani teaches: 2. The at least one computer-readable medium of claim 1, wherein the compile the shader process based on run-time PGO is based on profile data versioned by application, driver, and GPU version. (Dagani Col. 6, Ln 47-Col. 7, Ln 36 and Col. 11, Ln 12-35 and sets of configuration profiles for each of applications, GPUs and GPU drivers).
In addition, it would have been obvious to one of ordinary skill in the art to combine the teachings of Blackstein and Dagani as each teaches GPU compilation optimization techniques and Dagani recognized “Runtime shader compilation may have inherent tradeoffs because optimizations occur during multiple compilation passes by a compiler when there is only a limited window of time to load the application before a user becomes impatient.” (Col. 1, Ln32-33).
Claims 12 and 20 are rejected on the same basis as claim 2 above.
Claim(s) 5, 9, 14, 18, 22, and 25 is/are rejected under 35 U.S.C. 103 as being unpatentable over“Blackstein” (US PG Pub 2020/0192680) in view of “Sandanagobalane” (US PG Pub 2019/0146766) as applied above and further in view of “Gierach” (US PG Pub 2019/0206110).
Regarding Claim 5, Blackstein teaches the limitations of claim 1, but does not further teach, Gierach teaches: 5. The at least one computer-readable medium of claim 4, wherein the subset of draws to profile and optimize comprise the subset of draws to profile and optimize that are associated with N highest device resource utilization, where N is an integer and is equal to or greater than 1. (Gierach see ¶¶157-159,168, abstract teach a optimizing compilation technique which based on profiles at draw instruction may update the machine configuration among execution units in the GPU to optimize utilization of the execution units).
In addition, it would have been obvious to one of ordinary skill in the art to combine the teachings of Blackstein and Gierach as each teaches GPU compilation optimization techniques and Gierach recognized the utility of a system wherein “the subdivided shader can have each component executed optimally by applying a more efficient machine configuration applied prior to the execution of each sub-component of the shader.” (¶1).
Regarding Claim 14, Blackstein further teaches:
14. The apparatus of claim 11, wherein the compile the process based on run-time PGO is based on a subset of draws to profile and optimize (Blackstein e.g. ¶¶50-51 teaches PGO technieques carried out to profile and optimize code for draw instructions executing in the application on the GPU).
Blackstein does not further teach, Gierach teaches:
and wherein the subset of draws to profile and optimize comprise the subset of draws to profile and optimize that are associated with N highest device resource utilization, where N is an integer and is equal to or greater than 1. (Gierach see ¶¶157-159,168, abstract teach a optimizing compilation technique which based on profiles at draw instruction may update the machine configuration among execution units in the GPU to optimize utilization of the execution units).
In addition, it would have been obvious to one of ordinary skill in the art to combine the teachings of Blackstein and Gierach as each teaches GPU compilation optimization techniques and Gierach recognized the utility of a system wherein “the subdivided shader can have each component executed optimally by applying a more efficient machine configuration applied prior to the execution of each sub-component of the shader.” (¶1).
Claim 22 is rejected on the same basis as claim 15 above.
Regarding Claim 9, Blackstein teaches the limitations of claim 1, but does not further teach, Gierach teaches: 9. The at least one computer-readable medium of claim 1, wherein the compile the shader process based on run-time PGO is based on avoiding local minima. (Gierach e.g. ¶147 teaches a profiling-based optimizing compilation method which which determines how to more efficiently configuration the shader programs to execute on the execution units by determining where different EU configurations result in more efficient execution based on comparison to a minimum speed threshold).
In addition, it would have been obvious to one of ordinary skill in the art to combine the teachings of Blackstein and Gierach as each teaches GPU compilation optimization techniques and Gierach recognized the utility of a system wherein “the subdivided shader can have each component executed optimally by applying a more efficient machine configuration applied prior to the execution of each sub-component of the shader.” (¶1).
Claims 18 and 25 are rejected on the same basis as claim 9 above.
Claim(s) 7, 16 and 24 is/are rejected under 35 U.S.C. 103 as being unpatentable over “Blackstein” (US PG Pub 2020/0192680) in view of “Sandanagobalane” (US PG Pub 2019/0146766) as applied above and further in view “Esliger” (US PG Pub 2017/0024191).
Regarding Claim 7, Blackstein teaches the limitations of claim 1, but does not further teach, Esliger teaches: 7. The at least one computer-readable medium of claim 1, wherein the compile the shader process based on run-time PGO causes generation of run-time PGO on a system that executes the compiler or another system based on resource availability on the system and the another system. (Esliger ¶¶31-33 teaches determining resource availability in making resource allocation decisions among different execution resources based on the profile data).
In addition, it would have been obvious to one of ordinary skill in the art to combine the teachings of Blackstein and Gierach as each teaches GPU compilation optimization techniques and Gierach recognized “there is a need in the art for a resource scheduling and configuration solution that recognizes the future requirements of a running application(s) and schedules and configures resources in a proactive manner in order to optimize the tradeoff between power consumption and performance.” (¶4).
Claims 16 and 24 are rejected on the same basis as claim 7 above.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. The prior art cited in the attached PTO-892 form includes prior art relevant to applicant’s disclosures related to profile-guided optimizations of GPU-run applications.
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to MATTHEW J BROPHY whose telephone number is (571)270-1642. The examiner can normally be reached Monday-Friday, 9am-4:30pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Wei Zhen can be reached on 571-272-3708. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
9/18/2025
/MATTHEW J BROPHY/Primary Examiner, Art Unit 2191