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 final office action is responsive to the amendments filed on 12/23/2025.
Claims 1-32 are pending.
Response to Amendment
Applicant has amended independent claims 1, 9, 17, 25 and dependent claims 2-4, 11-12, 15, 18, 20, 23, 29 to include new/old limitations in a form not previously presented necessitating new search and considerations.
Claim Objections
Claim 16 objected to because of the following informalities:
-- API is of a driver -- should be -- API is .
Appropriate correction is required.
Specification
The disclosure is objected to because of the following informalities:
-- graphics processor memory 124 -- should be -- graphics processor memory 122-- in [0054]
Appropriate correction is required.
Double Patenting
The nonstatutory double patenting rejection is based on a judicially created doctrine grounded in public policy (a policy reflected in the statute) so as to prevent the unjustified or improper timewise extension of the “right to exclude” granted by a patent and to prevent possible harassment by multiple assignees. A nonstatutory double patenting rejection is appropriate where the conflicting claims are not identical, but at least one examined application claim is not patentably distinct from the reference claim(s) because the examined application claim is either anticipated by, or would have been obvious over, the reference claim(s). See, e.g., In re Berg, 140 F.3d 1428, 46 USPQ2d 1226 (Fed. Cir. 1998); In re Goodman, 11 F.3d 1046, 29 USPQ2d 2010 (Fed. Cir. 1993); In re Longi, 759 F.2d 887, 225 USPQ 645 (Fed. Cir. 1985); In re Van Ornum, 686 F.2d 937, 214 USPQ 761 (CCPA 1982); In re Vogel, 422 F.2d 438, 164 USPQ 619 (CCPA 1970); In re Thorington, 418 F.2d 528, 163 USPQ 644 (CCPA 1969).
A timely filed terminal disclaimer in compliance with 37 CFR 1.321(c) or 1.321(d) may be used to overcome an actual or provisional rejection based on nonstatutory double patenting provided the reference application or patent either is shown to be commonly owned with the examined application, or claims an invention made as a result of activities undertaken within the scope of a joint research agreement. See MPEP § 717.02 for applications subject to examination under the first inventor to file provisions of the AIA as explained in MPEP § 2159. See MPEP §§ 706.02(l)(1) - 706.02(l)(3) for applications not subject to examination under the first inventor to file provisions of the AIA . A terminal disclaimer must be signed in compliance with 37 CFR 1.321(b).
The USPTO Internet website contains terminal disclaimer forms which may be used. Please visit www.uspto.gov/patent/patents-forms. The filing date of the application in which the form is filed determines what form (e.g., PTO/SB/25, PTO/SB/26, PTO/AIA /25, or PTO/AIA /26) should be used. A web-based eTerminal Disclaimer may be filled out completely online using web-screens. An eTerminal Disclaimer that meets all requirements is auto-processed and approved immediately upon submission. For more information about eTerminal Disclaimers, refer to
www.uspto.gov/patents/process/file/efs/guidance/eTD-info-I.jsp.
Claims 1-3 are provisionally rejected on the ground of nonstatutory obviousness-type double patenting as being unpatentable over claims 2-4 of US co-pending Application No. 17/700,485 (hereafter ‘485). Following table shows the mapping between the claims of the instant invention and claims of co-pending application ‘486 to illustrate double patenting (difference between the claims have been highlighted.)
Instant Invention
Co-pending Application 17/700486 (‘486)
2. The processor of claim 1, wherein the one or more portions are one or more functions to be performed by a graphics processing unit (GPU) and wherein the API is further to cause the one or more functions to be loaded into memory of the GPU.
1. A processor comprising: one or more circuits to perform an application programming interface (API) to cause one or more portions of one or more program libraries to be selectively loaded.
3. The processor of claim 1, wherein the API is further to cause the one or more portions of the one or more programs to be loaded.
2. The processor of claim 1, wherein the one or more portions are one or more functions of the one or more program libraries.
4. The processor of claim 1, wherein the one or more portions are one or more functions of the one or more programs.
3. The processor of claim 1, wherein the API is to cause the one or more portions of the one or more program libraries to be selectively loaded into memory of a graphics processing unit (GPU).
As illustrated in above table, Claims 1-3 of instant application are rejected on over claim 2-4 of co-pending application ‘486.
Claims 1-3 of the instant application are directed to “selective loading” and program libraries; while claims 2-4 of the co-pending application ‘486 are directed to “portion of programs”. It would have been obvious to one skilled in the art before the effective filing date of the claimed invention that selective loading of the instant invention is similar to the idea of “loading one or more portion” of the co-pending application ‘486 and “loading program libraries” of the instant invention is similar to the idea of “loading one or more programs” of the co-pending application ‘486. In addition, claims 2 of the co-pending application is further directed to performing one or more functions by the GPU, while claim 3 of the instant invention teaches loading functions into the memory of GPU.
Although the claims at issue are not identical, they are not patentably distinct from each other because claims 1-3 is obvious in view of the limitations of claims 2-4 of the co-pending application.
This is a provisional nonstatutory double patenting rejection because the patentably indistinct claims have not in fact been patented.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 9-32 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e., a law of nature, a natural phenomenon, or an abstract idea) without significantly more or integrating into practical application.
Based upon at least the decision by the United States Supreme Court in Alice Corp. v. CLS Bank Int'l, 134 S. Ct. 2347, 2354 (2014), post-Alice precedential court decisions, and 2019 Revised Patent Subject Matter Eligibility Guidance, claims 9-32 are determined to be directed to an abstract idea. Examples of abstract ideas include at least Mathematical concepts, Mental process and Certain Methods of organizing human activity. Independent claim 1 is directed to “selectively loading one or more accelerator functions of one or more program libraries from CPU memory to accelerator memory using API” at a high level of generality according to broadest reasonable interpretation of the claim.
Step 1
As described in MPEP § 2106, subsection III, Step 1 of the eligibility analysis asks: Is the claim to a process, machine, manufacture or composition of matter?
claim 17 recites a system comprising one or more processors, which falls within the “machine / manufacture” category of 35 U.S.C. § 101. Claim 9 recites a method, which falls within the “process” category of 35 U.S.C. § 101. Claim 25 recites non-transitory computer-readable medium, which falls within the machine / manufacture category of statutory subject matter. Thus, the analysis determines whether the claims recite a judicial exception and fail to integrate the exception into practical application. See Memorandum, 84 Fed. Re. 54-55. If both elements are satisfied, the claims are directed to a judicial exception under the first step of the Alice/Mayo test, See id.
Step 2A Prong One
As described in MPEP § 2106, subsection III, Step 2A of the Office’s eligibility analysis is the first part of the Alice/Mayo test, i.e., the Supreme Court’s "framework for distinguishing patents that claim laws of nature, natural phenomena, and abstract ideas from those that claim patent-eligible applications of those concepts." Alice Corp. Pty. Ltd. v. CLS Bank Int'l, 573 U.S. 208, 217-18, 110 USPQ2d 1976, 1981 (2014) (citing Mayo, 566 U.S. at 77-78, 101 USPQ2d at 1967-68).
Step 2A is a two-prong inquiry, in which examiners determine in Prong One whether a claim recites a judicial exception, and if so, then determine in Prong Two if the recited judicial exception is integrated into a practical application of that exception.
Claim Elements
i.
method comprising:
Generic computing
ii.
receiving an application programming interface (API) call
information gathering / generic computing
iii.
call indicating one or more graphics processing unit (GPU) functions of the one or more program libraries
describing the call
iv.
responding to the API call by at least causing the one or more GPU functions to be partially loaded from central processing unit (CPU) memory to a graphics processing unit (GPU) memory based, at least in part, on the indication.
mental process abstract idea
The elements of claim 9 described by limitations [iv] describes “concepts performed in the human mind” or “observation, evaluation, judgement, opinion.” Memorandum, 84 Fed. Reg, 52. Claim 9 limitations [iv] recite the abstract concept of [m]ental processes.” Id. For example, claim 9 limitation [iv] recites “causing the one or more GPU functions to be partially loaded based, at least in part, on the indication”, which is directed to selecting one or more functions to be loaded based on the received indication. The act of causing partially loading function based on the received indication is a combination of observation, evaluation, judgement and opinion, and may be performed by human mind. The courts consider a mental process (thinking) that "can be performed in the human mind, or by a human using a pen and paper" to be an abstract idea. CyberSource Corp. v. Retail Decisions, Inc., 654 F.3d 1366, 1372, 99 USPQ2d 1690, 1695 (Fed. Cir. 2011).
Thus, claim 9 recites a judicial exception. For these same reasons, claims 17 and 25 recites judicial exception.
Step 2A, Prong Two
As described in MPEP § 2106, subsection III, Step 2A of the Office’s eligibility analysis is the first part of the Alice/Mayo test, i.e., the Supreme Court’s "framework for distinguishing patents that claim laws of nature, natural phenomena, and abstract ideas from those that claim patent-eligible applications of those concepts." Alice Corp. Pty. Ltd. v. CLS Bank Int'l, 573 U.S. 208, 217-18, 110 USPQ2d 1976, 1981 (2014) (citing Mayo, 566 U.S. at 77-78, 101 USPQ2d at 1967-68).
Step 2A is a two-prong inquiry, in which examiners determine in Prong One whether a claim recites a judicial exception, and if so, then determine in Prong Two if the recited judicial exception is integrated into a practical application of that exception.
Because claims 9, 17 and 25 recite a judicial exception, analysis determines if the claims recites additional elements that integrate the judicial exception into practical application. In addition to the limitations of claim 9 discussed above that recite the abstract concepts, claim 9 also recites additional limitations [i]-[iv]. Claim 9 in step [i] recites “method” which is directed generic computing. Claim 9 in step [ii] recites “receiving an application programming interface (API) call” , which can be considered as information gathering and/or generic API call. Both information gathering as well as API call do not integrate the abstract idea into practical application because these are neither inventive nor provide improvement to the technology or technical field. Claim 9 in step [iii] recites “call indicating one or more graphics processing unit (GPU) functions of the one or more program libraries”, which is further describing the call comprising an indication, and do not impose further limitation to make the identified mental process abstract idea patent eligible. Claim 9, besides the identified mental process abstract idea, in step [iv] recites additional claim elements of “responding to the API call by at least loading from central processing unit (CPU) memory to a graphics processing unit (GPU) memory”, which is directed to information transfer from CPU to GPU, according to the broadest reasonable interpretation of these claim elements. Transfer of information is neither inventive nor provide improvement to technology and/or technical field. The Specification doesn’t provide additional details that would distinguish the additional limitations recited in claim 9 elements [i]-[iv] from a generic implementation of the abstract idea. Thus, the claim elements recited in limitations [i]-[iv] , under broadest reasonable interpretation, do not integrate the judicial exception into a practical application. Besides the identified abstract idea, claim 9 step [iv] also recites “one or more GPU functions of one or more program libraries to be loaded from CPU memory to GPU memory, which is known in the art (Background [0002]) and therefore neither inventive nor provide improvements to the technology and /or technical field. Thus, claim 1 recites a judicial exception without integrating into practical application. For these same reasons and based on similar analysis as above, claims 17 and 25 also recites judicial exception without integrating into practical application.
Step 2B
As described in MPEP § 2106, subsection III, Step 2B of the Office’s eligibility analysis is the second part of the Alice/Mayo test, i.e., the Supreme Court’s "framework for distinguishing patents that claim laws of nature, natural phenomena, and abstract ideas from those that claim patent-eligible applications of those concepts." Alice Corp. Pty. Ltd. v. CLS Bank Int'l, 573 U.S. 208, 217, 110 USPQ2d 1976, 1981 (2014) (citing Mayo, 566 U.S. 66, 101 USPQ2d 1961 (2012)).
Step 2B asks: Does the claim recite additional elements that amount to significantly more than the judicial exception.
Because claims 9, 17 and 25 are directed to judicial exception, analysis must determine, according to Alice, whether these claims recite an element, or combination of elements that is enough to ensure that the claim is directed to significantly more than a judicial exception.
The Memorandum, Section III (B) (footnote 36) states:
In accordance with existing guidance, an Examiner’s conclusion that an additional element (or combination of elements) is well understood, routine, conventional activity must be supported with a factual determination. For more information concerning evaluation of well-understood, routine, convention activity, see MPEP 2106.05(d), as modified by the USPTO Berkheimer Memorandum.
The Berkheimer Memorandum, Section III(A)(1) states:
A Specification demonstrates the well-understood, routine, conventional nature of additional elements when it describes the additional elements as well-understood or routine or conventional (or an equivalent term), as a commercially available product, on in a manner that indicates that the additional elements are sufficiently well-known that the specification does not need to describe the particulars of such additional elements to satisfy 35 §U.S.C. 112(a). A finding that an element is well-understood, routine, or conventional cannot be based only on the fact that the specification is silent with respect to describing such element.
Regarding the receiving application programming interface call, responding to the API call, as recited in claim 9, one of ordinary skills in the art would recognize that the conventional or generalized function terms by which the API calls / response are described reasonably indicate that specification discloses conventional component, and describes the component in a manner that indicates that these elements are sufficient well-known that the Specification does not need to describe the particulars of such additional elements to satisfy 35 U.S.C. §112(a). Further, the Specification does not provide additional details that would distinguish the recited components from generic implementation in the combination. As discussed above in step 2A prong two, these additional claim elements are generic computing components and therefore are not directed to anything beyond conventional nature of these elements or otherwise more than well-understood, routine, conventional activity in the field of computing.
Claim 9 in step [i] recites “method” which is directed generic computing, and do not amount to significantly more. Claim 9 in step [ii] recites “receiving an application programming interface (API) call” , which can be considered as information gathering i.e. insignificant extra solution activity and/or generic API call i.e. well-understood, routine and conventional (See Background [0001]). Both information gathering as well as API call do not amount significantly more than the abstract idea. Claim 9 in step [iii] recites “call indicating one or more graphics processing unit (GPU) functions of the one or more program libraries”, which is further describing the call comprising an indication, and do not amount to significantly more because API call comprising information is well understood, routine and conventional (See Background [0001]). Claim 9, besides the identified mental process abstract idea, in step [iv] recites additional claim elements of “responding to the API call by at least loading from central processing unit (CPU) memory to a graphics processing unit (GPU) memory”, which is directed to information transfer from CPU to GPU, according to the broadest reasonable interpretation of these claim elements. Transfer of information is well-understood, routine, and conventional (See Background [0002] , cited prior art in PTO-892). Therefore, these limitations either alone or in combination simply append well-understood, routine, conventional activities / components previously known to the industry, specified at a high level of generality, to the judicial exception. There is no indication that the recited claim elements override the conventional use of known features or involve an unconventional arrangement or combination of elements such that the particular combination of generic technology results in anything beyond well-understood, routine, and conventional common computing components. Thus, claim 9 is directed to abstract idea of selective loading without integrating into practical application or amount to significantly more than a patent ineligible concept.
Based on similar analysis as above and similar rationales, claims 17 and 25 are directed to abstract idea of selective loading without integrating into practical application or amount to significantly more than a patent ineligible concept.
Dependent claim 10 is directed to generate a data structure to indicate a state of each of plurality of portions of program libraries, which is similar to the idea of organizing / formatting /storing information and is performed commonly in the field of computing.
Dependent claim 11 recites “API is to further cause one or more GPU functions to be executed prior to executing the one or more GPU functions to be partially loaded”, which is directed to performing one or more actions before performing one or more other set of functions, and is a combination of one or more of observation, evaluation, judgement and opinion that can be performed by human mind alone or with or without the help of pen and paper.
Dependent claim 12 recites “ API is a prerequisite to another API to be executed”, which is a combination of one or more of observation, evaluation, judgement and opinion that can be performed by human mind alone or with or without the help of pen and paper.
Dependent claims 13 defines the input to the API and resembles the idea of information gathering / collection, and is considered insignificant extra solution activities.
Dependent claim 14 recites wherein the API is further to cause contents of the one or more program libraries to be stored in one or more data structures, which is directed to storing information. Storing information is neither inventive nor amount to significantly more because storing information is well-understood, routine and conventional.
Dependent claim 15 recites “one or more GUI functions are stored as an executable and linkable (ELF file)”, which is directed format of storage and is neither inventive nor amount to significantly more because the limitations are directed to specific format of storing information.
Dependent claim 16 recites “wherein the API is of a driver of a graphics processing unit (GPU)”, which is describing the API and neither inventive nor amount to significantly more.
Based on similar analysis as above, dependent claims 18-24 and 26-32 recite claim elements that are either abstract idea or additional claim elements, that individually or in combination, are either generic computing methods/ components or insignificant pre/post solution activity and neither integrate into practical application nor amount to significantly more.
Therefore, the claim(s) 9-32 are rejected under 35 U.S.C. 101 as being directed to judicial exception without integrating into practical application or significantly more.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-32 rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
The following claim language is not clearly understood:
Claim 1 recites “prevent full loading….partially loading”. Partially loading indicates not full loading. It is unclear “prevention” is additionally caused by the same API call or different API call (i.e. API call is for partially loading or preventing the full loading or both). It is also unclear what is preventing the full loading.
Claim 1 recites “partially loading only one or more accelerator functions”. It is unclear partially loading is referring to loading one or more functions from plurality of functions or loading partial data associated with the one or more functions.
Independent claims 9, 17 and 25 recites similar elements and have similar deficiency. Remaining dependent claims 2-8, 10-16, 18-24 and 26-32 are also rejected due to their dependency on the rejected independent claims.
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.
Claims 1-32 is/are rejected under 35 U.S.C. 103 as being unpatentable over McCrary et al. (US 2011/0050713 A1, hereafter McCrary) in view of Munshi et al. (US 2017/0075730 A1, hereafter Munshi), and further in view of Yellin et al (US 2021/0329088 A1, hereafter Yellin).
McCrary and Yellin were cited in the last office action.
As per claim 1, McCrary teaches the invention substantially as claimed including one of more processors comprising (fig. 1 CPU 101 system 10):
one or more circuits, in response to a call to an application programming interface (API) ([0027] Graphics driver 103 provides an application programming interface API for the CPU 101 and application executing on CPU 101 to access GPU 104 [0039] application executing on the CPU through the use of graphics driver 103 initiates the notification to the GPU 104), to prevent full loading of one or more program libraries from central processing unit (CPU) memory to accelerator memory by partially loading only one or more accelerator functions of the one or more program libraries to accelerator memory ([0009] select, subset of buffers from the one or more buffers in memory for execution of work items from the first subset on the GPU based on a workload profile of the GPU [0034] fig. 2 ring buffers communicated from CPU 101 to GPU 104, system memory 102, set of ring buffers 200 subset may be selected based on criteria, subset having commands ready to be executed on GPU 104; CPU 101 can directly write into a register within GPU 104 [0028] GPU 104 provides graphics acceleration functionality) until the one or more accelerator functions are to be used by a program application ([0035] GPU 104 periodically monitors the ring buffer, determine if any ring buffers have command buffers that are ready to be processed by GPU 104, upon detection, command buffers that are ready to be processed by GPU 104, can receive the command buffers for execution).
McCrary doesn’t specifically teach call to API to prevent full loading of the program libraries; function of the program libraries.
Munshi, however, teaches call to API to prevent full loading of the program libraries; function of the program libraries ([0006] calling API, host processor, compute units, CPU, GPU, program object, corresponding to a source code, executable codes for compute units, generated from the program object, loaded among compute units [0030] fig. 1 compute application libraries 105 [0033] load, executable, in response to library API, compute runtime [0073] executable, designated target physical device, according to the types CPU, GPU, versions; fig. 2 compute unit CPU, GPUs).
It would be obvious to one of ordinary skills in the art before the effective filing date of the invention was made to combine the teachings of McCrary with the teachings of Munshi of executable codes corresponding to the targeted device are loaded to respective compute runtime such as a GPU to improve efficiency and allow call to API for loading of the program libraries; function of the program libraries to the method of McCray as in the instant invention.
The combination would have been obvious to one of ordinary skills in the art because substituting the program loaded by the API as taught by McCrary by the executable stored in the library and retrieved and loaded into different compute runtimes by the library API as taught by Munshi to yield expected result with improved efficiency.
McCrary and in combination do not specifically teach prevent full loading (although such teachings are implicitly obvious).
Yellin, however, teaches call to API to prevent full loading of one or more program libraries ([0054] load the application, via, API, in first loading scheme, differs from second loading scheme, first loading scheme, excludes, operations that are performed by the second loading scheme [0053] API for configuration of preloading of the user application, preload the user application using the API).
It would have been obvious to one of ordinary skills in the art before the effective filing date of the invention was made to combine the teachings of McCrary and Munshi with the teachings of Yellin of first loading scheme excluding operations of second loading scheme to improve efficiency and prevent full loading or excluding operation from different scheme to the method of McCrary and Munshi as in the instant invention. The combination would have been obvious because applying the teaching of first loading scheme excluding operations of second loading scheme as taught by Yellin with the selective loading using API taught by McCrary to yield predictable results of preventing full loading and improved time/space efficiency.
As per claim 2, McCrary teaches wherein the accelerator memory is Graphical Processing Unit (GPU) memory ([0028] GPU provides graphics acceleration functionality; fig. 1 GPU 104 GPU memory 120).
As per claim 3, McCrary teaches wherein the API is to further cause one or more other accelerator functions to be executed prior to the one or more accelerator function to be partially load ([0020] GPU to prioritize and schedule the commands specified by the CPU; GPU can prioritize and schedule the commands, based on resource availability in dynamic manner [0032] [0040] during execution of application, game application, graphics related commands, executed i.e. other functions are already executing, dynamically at run-time, determined, certain commands, to be offloaded by CPU 1-1 to be processed on GPU 104).
As per claim 4, McCrary teaches wherein executing the API causes the one or more accelerator function to be loaded as a result of another API being executed ([0027] application programming interface API for the CPU 101 [0034] fig. 2 ring buffers communicated from CPU 101 to GPU 104, system memory 102, set of ring buffers 200 subset may be selected based on criteria, subset having commands ready to be executed on GPU 104; CPU 101 can update one or more memory locations, such as locations in ring buffer work registers 112, which is read by GPU).
Yellin teaches remaining claim elements of function to be loaded as a result of another API being performed ([0053] preloading of the user application [0054] load the application, via, API, in first loading scheme [0057] loading code, user application, RAM [0054] processor, configured, complete, one or more of the excluded operations in response to activation of the user application [0210] content tracker API 82 i.e. second API, prefetcher API 68 MCD tracker, MCD coordinator, content tracker API, choose which item should be prefetched and when they should be prefetched).
As per claim 5, McCrary teaches an input to the API comprises an identifier of a location where the one or more program libraries are stored ([0027] application programming interface API for the CPU 101; [0009] select, subset of buffers from the one or more buffers in memory for execution of work items from the first subset on the GPU based on a workload profile of the GPU [0034] fig. 2 subset may be selected based on criteria, subset having commands ready to be executed on GPU 104 e.g. GPU accesses a subset include ring buffer 0, 1, 2 and 5, update one or more memory locations 112).
As per claim 6, McCrary teaches wherein the API ([0027] Graphics driver 103 provides an application programming interface API for the CPU 101 and application executing on CPU 101 to access GPU 104) is further to obtain information from one or more files comprising the one or more program libraries to cause data associated with the one or more accelerator functions to be stored in the accelerator memory ([0009] select, subset of buffers from the one or more buffers in memory for execution of work items from the first subset on the GPU based on a workload profile of the GPU [0034] fig. 2 ring buffers communicated from CPU 101 to GPU 104, system memory 102, set of ring buffers 200 subset having commands ready to be executed on GPU 104)
Yellin teaches remaining claim elements of wherein the API is further to obtain information from one or more files comprising the one or more program libraries ([0040] content, receiving, long file download [0099] content, configuration file, script [0273] differential update patch, app’s content).
As per claim 7, Yellin teaches wherein the API is further to generate a data structure to indicate a state of each of a plurality of portions of the one or more program libraries ([0053] API, configuration of preloading of user application via the API, preload the user application using the API input [0758] keeps track of the preload status i.e. which preload steps carried out [0759] tracking the app content and user interface status [0805] keep track of the status of the preload [0895] status of the loaded app [0210] content tracker API).
As per claim 8, McCrary teaches loading of at least a portion of the one or more accelerator functions ([0009] select, subset of buffers from the one or more buffers in memory for execution of work items from the first subset on the GPU based on a workload profile of the GPU [0034] fig. 2 ring buffers communicated from CPU 101 to GPU 104, system memory 102, set of ring buffers 200 subset may be selected based on criteria, subset having commands ready to be executed on GPU 104; CPU 101 can directly write into a register within GPU 104 [0028] GPU 104 provides graphics acceleration functionality ).
Yellin teaches remaining claim elements of wherein the API is to prevent ([0054] load the application, via, API, in first loading scheme, differs from second loading scheme, first loading scheme, excludes, operations that are performed by the second loading scheme) until another API is called ([0054] processor, configured, complete, one or more of the excluded operations in response to activation of the user application [0210] content tracker API 82, prefetcher API 68 MCD tracker, MCD coordinator, content tracker API, choose which item should be prefetched and when they should be prefetched).
As per claim 9, McCrary teaches the invention substantially as claimed including a method, comprising:
receiving an application programming interface (API) call indicating one or more graphics processing unit (GPU) functions of one or more program libraries ([0027] graphics driver 103 provides an interface and/or application programming interface API for the CPU 101 to access GPU 104 [0028] GPU 104 provides graphics acceleration functionality and other compute functionality [0006] instruction to process such as information, scheduled to operate on the GPU by CPU; CPU, prioritize, items of work/ commands [0008] ); and
responding to the API call by at least causing the one or more GPU functions to be partially loaded from central processing unit (CPU) memory to a graphics processing unit (CPU) memory based, at least in part on the indication ([0009] select, subset of buffers from the one or more buffers in memory for execution of work items from the first subset on the GPU based on a workload profile of the GPU [0034] fig. 2 ring buffers communicated from CPU 101 to GPU 104, system memory 102, set of ring buffers 200 subset may be selected based on criteria, subset having commands ready to be executed on GPU 104; CPU 101 can directly write into a register within GPU 104 [0028] GPU 104 provides graphics acceleration functionality).
McCrary doesn’t specifically teach receiving an application programming interface (API) call indicating functions of program libraries; responding to the API call by at least causing functions to be loaded based, at least in part on the indication.
Yellin, however, teaches receiving an application programming interface (API) call indicating functions of program libraries ([0143] prefetch function, download content , API 68, provide the prefetch function and other necessary input, content items, function callbacks; inform the prefetcher through the API to use some default method for fetching contents [0148] API, used to supply the fetch list [0154] API, prefetch content, function call back [0159] API, fetch, content, cache [0256] Fetch List API);
responding to the API call by at least causing functions to be loaded based, at least in part on the indication ([0143] prefetch, desired content indicated in the fetch list [0159] response might be either the desired content, or indication, content is not in the cache [0163] OS, respond, to the intercepted cache, providing data from cache).
It would have been obvious to one of ordinary skills in the art before the effective filing date of the invention was made to combine the teachings of McCrary with the teachings of Yellin of API providing the function/input using function callbacks; prefetch the desired content indicated in the fetch list, and response might be desired content to improve efficiency and allow receiving an application programming interface (API) call indicating functions of program libraries; responding to the API call by at least causing functions to be loaded based, at least in part on the indication to the method of McCrary as in the instant invention. The combination would have been obvious because applying the teaching of API using callbacks to request functions indicated by the fetch list and in response receiving the content in the fetch list as taught by Yellin to the method of selective loading using API taught by McCrary to yield predictable results improved efficiency.
McCrary and Yellin, in combination, do not specifically teach functions of program libraries.
Munshi, however, teaches functions of program libraries ([0074] executable, API library).
Claim 10 recites a method for elements similar to claim 7. Therefore, it is rejected for the same rationale.
Claim 11 recites a method for elements similar to claim 3. Therefore, it is rejected for the same rationale.
Claim 12 recites a method for elements similar to claim 4. Therefore, it is rejected for the same rationale.
Claim 13 recites a method for elements similar to claim 5. Therefore, it is rejected for the same rationale.
As per claim 14, Yellin teaches wherein the API is further to cause contents of the one or more program libraries to be stored in one or more data structures ([0141] list, content items, prefetches and stores these items in content cache).
As per claim 15, McCrary teaches wherein the one or more GPU functions are stored as an executable and linkable (ELF) file ([0008] subset of buffers from one or more buffers in memory for execution of work items [0019] work items e.g. commands or command buffers i.e. executable and linkable; Munshi [0074]).
As per claim 16, McCrary teaches wherein the API is of a driver of a graphics processing unit ([0027] Graphics driver 103 provides an interface and/or application programming interface API).
Claim 17 recites a system for elements similar to some of the elements of claim 1. Therefore, it is rejected for the same rationale.
As per claim 18, McCrary teaches wherein the one or more accelerator functions are one or more GPU functions ([0008] work items, GPU, workload profile of the GPU).
Claim 19 recites a system for elements similar to claim 7. Therefore, it is rejected for the same rationale.
Claim 20 recites a system for elements similar to claim 4. Therefore, it is rejected for the same rationale.
Claim 21 recites a system for elements similar to claim 5. Therefore, it is rejected for the same rationale.
Claim 22 recites a system for elements similar to claim 4. Therefore, it is rejected for the same rationale.
Claim 23 recites a system for elements similar to claim 3. Therefore, it is rejected for the same rationale.
Claim 24 recites a system for elements similar to claim 16. Therefore, it is rejected for the same rationale.
Claim 25 recites elements similar to claim 9. Therefore, it is rejected for the same rationale.
Claim 26 recites elements similar to claim 2. Therefore, it is rejected for the same rationale.
Claim 27 recites elements similar to claim 7. Therefore, it is rejected for the same rationale.
As per claim 28, McCrary teaches wherein the one or more program libraries comprise a module comprising the one or more accelerator functions ([0008] work items, workload profile of the GPU [0028] GPU, acceleration functionality).
Claim 29 recites the elements similar to the claim 3. Therefore, it is rejected for the same rationale.
Claim 30 recites the elements similar to the claim 16. Therefore, it is rejected for the same rationale.
Claim 31 recites the elements similar to the claim 5. Therefore, it is rejected for the same rationale.
Claim 32 recites the elements similar to the claim 4. Therefore, it is rejected for the same rationale.
Examiners Note
Applicant is further reminded of that the cited paragraphs and in the references as applied to the claims above for the convenience of the applicant(s) and although the specified citations are representative of the teachings of the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses, to fully consider all of the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner.
Response to Arguments
The previous claim objections have been withdrawn.
The previous double patenting rejections have been maintained until the time of allowance.
Some of the previous 35 U.S.C. 101 abstract idea objections have been withdrawn. However, some of the 101 objections have been maintained. Applicant arguments to overcome 101 for claim 1 doesn’t fully apply to the other independent claims e.g. claim 9 and 17 because these claims lack some of the elements recited in claim 1.
Applicant's arguments filed on 07/24/2025 have been fully considered but they are moot in view of new grounds of rejections.
Conclusion
Authorization for Internet Communication
Applicant is encouraged to submit an authorization to communicate with the Examiner via the internet by making the following statement (MPEP 502.03)
“Recognizing that internet communications are not secure, I hereby authorize the USPTO to communicate with the undersigned and practitioners in accordance with 37 CFR 1.33 and 37 CFR 1.34 concerning any subject matter of this application by video conferencing, instant messaging, or electronic mail. I understand that a copy of these communications will be made of record in the application file.”
Please note that the above statement can only by submitted via Central Fax (not Examiner’s Fax), Regular postal mail, or EFS Web using PTO/SB/439.
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 ABU ZAR GHAFFARI whose telephone number is (571)270-3799. The examiner can normally be reached on Monday-Thursday 9:00 - 17:00 Hrs.
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, Aimee Li can be reached on 571-272-4169. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/ABU ZAR GHAFFARI/Primary Examiner, Art Unit 2195