DETAILED ACTION
This Office Action is response to claims filed on 11/20/2023
Claims 1-20 are pending.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
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-4, 6-11, 13-18, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Kamboj et al. Patent No. US 10,824,474 B1 (hereinafter Kamboj) in view of Fozard et al. Pub. No. US 2021/0109796 (hereinafter Fozard).
With regard to claim 1, Kamboj teaches a computer-implemented method of managing computing resources at an information handling system (Col. 2, Various embodiments of dynamically allocating resources for interdependent portions of distributed data processing programs are described herein), including:
identifying, at a first time (Col. 3, Pool(s) of computing resources 140 may include various different kinds of computing resources to perform work as part of distributed data processing program, such as distributed data processing program 120; Col. 4, For example, one or more hosts 110 implementing distributed data processing program 120 may send requests (e.g., via a network) to allocate resources 132 to perform a portion 122 of work for distributed data processing program 120 to resource manager 130; Col. 13, Program execution service 230 may handle requests to execute distributed data programs on behalf of clients that are associated with user accounts of provider network 200. As illustrated in FIG. 4, user account computing resource(s) 410 may also be made available for executing portions (or all) of a distributed data processing program on behalf of a client associated with a user account), i) neural hardware resources of the information handling system and ii) events supported at the information handling system (Col. 4, If, for instance, the portion of work is to read or obtain data from a distributed data set, a large number of computing resources may be desirable to scale the task to obtain the data quickly, whereas if the task were compute intensive (e.g., performing various statistical calculations over a smaller set of data) then a small number of compute resources (With large processing capacity, such as resources with large number of central processing units or graphical processing units). (Examiner notes: Wherein the hardware resources are coupled with the events it is capable of supporting));
providing, to a client, data indicating the identified neural hardware resources and the identified events (Col. 13, For example, when a request to execute a distributed data processing program is received, a user account associated with the client may be identified. A listing of resources that are available or in use may be provided to identify account computing resource(s) 410; Col. 14, As the program manager 536 performs the distributed data processing program, portions of work to be performed may be identified and resource allocation requests invoked);
receiving, from the client, data indicating a triggering condition (Col. 4, Dynamic allocation of resources to perform different portions may be provided by resource manager 130. For example, one or more hosts 110 implementing distributed data processing program 120 may send requests (e.g., via a network) to allocate resources 132 to perform a portion 122 of work for distributed data processing program 120 to resource manager 130; Col. 13, In at least some embodiments, program execution service 230 may implement a fleet or pool of program execution worker(s) 530 which may initiate or direct performance of a distributed data processing program identified in a request 502; Col. 14, Users can specify different portions of the application by invoking resource request to perform different operations, tasks, or stages of work) for a particular model (Col. 4, Portion resource allocation requests 132 may specify performance characteristics or requirements, which resource manager 130 may analyze, evaluate, or otherwise compare with the computing resource of pool(s) 140 to make an allocation that satisfies (or comes closest to satisfying) the requirements for the portion), the triggering condition indicating a particular event of the identified events and particular neural hardware resources of the identified neural hardware resources (Col. 4, If, for instance, the portion for work is to read or obtain data from a distributed data set, a large number of computing resources may be desirable to scale the task to obtain the data quickly, whereas if the task were compute intensive (E.g., performing various statistical calculations over a smaller set of data) then a small number of computing resources (with large processing capacity, such as resources with large numbers of central processing units or graphical processing units););
registering the triggering condition (Col. 13, Dynamic allocation may independently allocate resources for each portion of distributed data processing program 120, in some embodiments. For example, the number, type, capabilities, and/or configuration of computing resources allocated to portion 122a may be different than portion 122b, and the same or different than those allocated to portion 122c; Col. 13, When a request 502 is received at the service endpoint, a front compute node or server may parse the request, check for request validity, repack, format, or organize data in the request … and queue 512 or submit execution of the program to execution queue 520);
detecting, at a second time after the first time, an occurrence of the identified event at the information handling system (Col. 13, For example, service agent 532 may dequeue a distributed data processing program for execution 522, in some embodiments); and
in response to detecting the occurrence of the identified event (Col. 13, Service agent 532 may launch, initialize, configure or initiate execution of the distributed data processing application on program execution platform 534. For example, if a query processing program is dequeued, then the appropriate query processing platform for the program may be launched or initialized), allocating the particular neural hardware resources to the client for execution of the particular model ().
However, Kamboj does not explicitly teach that hardware resources are neural hardware resources.
Fozard teaches neural hardware resources (FIG. 1B; [0128], As shown, the processor architecture 100b includes one or more central processing units (CPUs) 115a-115n connected, via a data bus 120, to one or more specialized processing units (SPUs) 125a-125n; [0129], Non-limiting examples of SPUs 125 include Graphic Processing Units (GPUS), Neural Processing Units (NPUs), Tensor Processing units (TPUs), Neural Network Processors (NNPs), Intelligence Processing Units (IPUs) and Vision Processing Units (VPUs).)
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Fozard with the teachings of Kamboj in order to provide a method that teaches that hardware resources include neural hardware resources. The motivation for applying Fozard teaching with Kamboj teaching is to provide a method that allows for events to be serviced by a processor architecture that provides high computing power that increases computational efficiency for high volume workloads ([0129], Fozard). Kamboj and Fozard are analogous art directed towards allocation of hardware resources. Therefore, it would have been obvious for one of ordinary skill in the art to combine Fozard with Kamboj to teach the claimed invention in order to integrate neural processing resource with allocation of computing processor architecture to support high compute volume workloads.
With regard to claim 2, Kamboj teaches de-registering, after execution of the particular model, the triggering condition (Col. 3, Resource manager 130 may manage the allocation and deallocation of resources from pool(s) of computing resources 140 for distributed data processing program 120. For example, resource manager 130 may determine allocations or assignments of computing resources, collect performance metrics to determine the state of allocated resources, including determining when allocated resources have completed the work for which the resources were allocated, direct cleanup or other operations to ready the computing resources for performing work for other distributed data processing programs ( e.g., clearing, deleting, flushing, or making previous data in storage or memory unavailable to future users of the resource), and provide a common interface that a manager resource of a distributed data processing program can use to obtain resource allocations.).
With regard to claim 3, Kamboj teaches receiving, from the client, a query for the data indicating the identified neural hardware resources and the identified events (Col. 7, Generally speaking, clients 270 may encompass any type of client that may submit network-based requests to provide network 200 via network 260, including request for storage services (e.g., a request to create, read, write, obtain, or modify data in data storage services(s) 210, a request to generate an ETL job at ETL service 220, a request to execute code at program execution service 230, etc.); and
in response to receiving the query, providing, to the client, the data indicating the identified neural hardware resources and the identified events (Col. 10, As dynamic allocations of resources are performed, program execution service 230 may utilize the allocated computing resource(s), such as software containers, virtual compute instances, or servers to execute portions of the ETL program. In some embodiments, program execution service 230 may procure or otherwise configure computing resource(s) if no preconfigured computing resources from pool of computing resources satisfy the requirements … The allocated computing resource(s) may be directed to perform the portions of the ETL program).
With regard to claim 4, Kamboj teaches in response to detecting the occurrence of the identified event:
configuring the particular neural hardware resources (Col. 7, Program execution service 230 executes distributed data processing programs on behalf of clients. Code, executables, files, configurations, and other information may be submitted to program execution service 230 via a network at a network endpoint that is not assigned or directed to any particular computing resource for performing a distributed data processing program); and
allocating the particular neural hardware resources to the client (Col. 7, Program execution service 230 may determine performance characteristics or other requirements for the distributed data processing program and may identify, procure, and direct execution of the distributed data processing program at dynamically allocated resources for different portions computing resources).
With regard to claim 6, Kamboj teaches wherein the neural hardware resources of the information handling system includes … processing unit (Col. 3, Pool(s) of computing resources 140 may include various different kinds of computing resources to perform work as part of a distributed data processing program, such as distributed data processing program 120. For example, computing resources may be individual servers, nodes, processors (or processor cores), or other hardware resources that may be allocated in part (e.g., a single processor core) or in whole to perform work for distributed data processing program 120)
Kamboj teaches hardware resources associated with general processing units ([0083]). However, Kamboj does not explicitly teach neural processing unit (NPU), graphics processing unit (GPU), and gaussian and neural accelerator (GNA).
Forzard teaches neural processing unit (NPU), graphics processing unit (GPU), and gaussian and neural accelerator (GNA) ([0044], In some embodiments, the at least one specialized processor is selected from the group consisting of a graphic processing unit (GPU), a neural processing unit (NPU), a tensor processing unit (TPU), a neural network processor (NNP), an intelligence processing unit (IPU) or a vision processing unit (VPU).).
Rationale to claim 1 applied here.
With regard to claim 7, Kamboj teaches wherein receiving, from the client, data indicating, for the particular model, the particular event of the identified events and the particular neural hardware resources of the identified neural hardware resources further includes, receiving, from the client, a signed plugin or proxy indicating, for the particular model, the particular event of the identified events and the particular neural hardware resources of the identified neural hardware resources (Col. 7, Generally speaking, clients 270 may encompass any type of client that may submit network-based requests to provide network 200 via network 260, including request for storage services (e.g., a request to create, read, write, obtain, or modify data in data storage services(s) 210, a request to generate an ETL job at ETL service 220, a request to execute code at program execution service 230, etc.), For example, a given client 270 may include a suitable version of a web browser, or may include a plug-in module or other type of code module may execute as an extension to or within an execution environment provide by a web browser).
With regard to claim 8, Kamboj teaches an information handling system comprising a processor having access to memory media storing instructions (Col. 19, In the illustrated embodiment, computer system 1000 includes one or more processors 1010 coupled to a system memory 1020 via an input/output (I/O) interface)
Claim 8 is a computer system having similar limitations to claim 1. Thus, claim 8 is rejected for the same rationale as applied to claim 1.
With regard to claim 9, it is a computer system having similar limitations to claim 2. Thus, claim 9 is rejected for the same rationale as applied to claim 2.
With regard to claim 10, it is a computer system having similar limitations to claim 3. Thus, claim 10 is rejected for the same rationale as applied to claim 3.
With regard to claim 11, it is a computer system having similar limitations to claim 4. Thus, claim 10 is rejected for the same rationale as applied to claim 4.
With regard to claim 13, it is a computer system having similar limitations to claim 6. Thus, claim 10 is rejected for the same rationale as applied to claim 6.
With regard to claim 14, it is a computer system having similar limitations to claim 7. Thus, claim 10 is rejected for the same rationale as applied to claim 7.
With regard to claim 15, Kamboj teaches a non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations (Col. 20, In the illustrated embodiment, program instructions and data implementing desired functions, such as those described above are shown stored within system memory 1020 as program instructions 10205 and data storage 1035, respectively …Program instructions and data stored via a computer-readable medium may be transmitted by transmission media or signals such as electrical, electromagnetic, or digital signals, which may be conveyed via communication medium such as a network and/or a wireless link, such as may be implemented via network interface 1040)
Claim 15 is a non-transitory computer-readable medium having similar limitations to claim 1. Thus, claim 15 is rejected for the same rationale as applied to claim 1.
With regard to claim 16, it is a non-transitory computer-readable medium having similar limitations to claim 2. Thus, claim 16 is rejected for the same rationale as applied to claim 2.
With regard to claim 17, it is a non-transitory computer-readable medium having similar limitations to claim 3. Thus, claim 17 is rejected for the same rationale as applied to claim 3.
With regard to claim 18, it is a non-transitory computer-readable medium having similar limitations to claim 4. Thus, claim 18 is rejected for the same rationale as applied to claim 4.
With regard to claim 20, it is a non-transitory computer-readable medium having similar limitations to claim 6. Thus, claim 20 is rejected for the same rationale as applied to claim 6.
Claims 5, 12, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Kamboj in view of Fozard as applied to claim 1, 8, and 15 above, and further in view of Milojicic et al. Pub. No. US 2020/0050493 A1 (hereinafter Milojicic).
With regard to claim 5, Kamboj teaches wherein the events supported at the information handling system include system-level events (Col. 8, In some embodiments, a client 270 may provide access to provider network 200 to other application in a manner that is transparent to those applications. For example, client 270 may integrate with an operating system or file system to provide storage on one of data storage services(s) 210 (e.g., a block-based storage service). However, the operating system or file system may present a different storage interface to applications, such as a conventional file system hierarchy of files, directories and/or folders. In such an embodiment, applications may not need to be modified to make use of the storage system service model. Instead, the details of interfacing to the data storage service(s) 210 may be coordinated by client 270 and the operating system or file system on behalf of applications executing within the operating system environment.), application-level events (Col. 8, Clients 270 may convey network-based services requests (e.g., access requests directed to data in data storage service(s) 210, operations, tasks, or jobs, being performed as part of program execution service 230, or other service(s) 250, send queries to managed query service 240, or to interact with ETL service 220) to and receive responses from provider network 200 via network 260),
Kamboj reasonably teaches support of events by an information handling system (Col. 2-Col.3, Kamboj). However, Kamboj does not explicitly teach wherein the events supported at the information handling system include … firmware-level events
Milojicic teaches firmware-level events (Abstract, Examples relate to firmware-based provisioning of hardware resources. In some of the examples, firmware discovers and takes ownership of a hardware resource. At this stage, the firmware performs a test to verify the hardware resource. The firmware then assigns the hardware resource to an OS instance.
It would have been obvious to one of ordinary skill in the art at the time the invention was filed to apply the teachings of Milojicic with the teachings of Kamboj and Fozard in order to provide a method that teaches firmware-level events are events that are supported for executon by an information handling system. The motivation for applying Milojicic teaching with Kamboj and Fozard teaching is to provide a method that combines the prior art elements of firmware-based hardware resource allocation with the known method of hardware resource allocation of system-level and application-level events to teach support of system, firmware, and application-level resource allocation support to yield predictable results. Kamboj, Fozard, and Milojicic are analogous art directed allocation of hardware resources. Therefore, it would have been obvious for one of ordinary skill in the art to combine Milojicic with Kamboj and Fozard to teach the claimed invention in order to provide hardware resource allocation support for system-level, firmware-level, and application-level events.
With regard to claim 12, it is a computer system having similar limitations to claim 5. Thus, claim 10 is rejected for the same rationale as applied to claim 5.
With regard to claim 19, it is a non-transitory computer-readable medium having similar limitations to claim 5. Thus, claim 19 is rejected for the same rationale as applied to claim 5.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US 2023/0273826 A1
teaches
Neural Network Scheduling Method and Apparatus, Computer Device, and Readable Storage Medium
Any inquiry concerning this communication or earlier communications from the examiner should be directed to IVAN A CASTANEDA whose telephone number is (571)272-0465. The examiner can normally be reached Monday-Friday 9:30AM-5:30PM EST.
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 at (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 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.
/I.A.C./Examiner, Art Unit 2195
/Aimee Li/Supervisory Patent Examiner, Art Unit 2195