DETAILED ACTION
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 Prabhakaran et al. (US 2019/0208009 A1).
Regarding claim 1, Prabhakaran teaches the invention substantially as claimed including one or more processors ([0067] System 600 includes processor 610), comprising:
circuitry to, in response to an application programming interface (API) call, generate a data structure indicating one or more resources of one or more processors ([0036] ARS unit 354 includes a processor or other hardware (e.g., programmable control logic, FPGA, x86 core, ARM compatible core) that can execute the service discovery agent…Execution of service discovery agent causes querying of resource list 356 for available resources that meet SLA or other performance requirements of the request. Resource list 356 can maintain a list of all available resources in compute resources 310 and 320.; [0040-41]; [0048] This information includes, but is not limited to, one or more of:… their hardware and software specifications sufficient for making routing/load-balancing decisions (e.g., compute nodes used, software stack used, and so forth), the corresponding SLA interfaces and their utilization, average service times, queue depths, and other telemetry as is meaningful for a resource type.; [0049]; [0062] Service discovery agent 440 uses interface 444 to provide the workload type and requirements 442 to service list 450 using a query or a write. Interface 444 can be a JSON interface, POSIX API, remote procedure call (RPC), or other interfaces. Service list 450 provides a resource identifier or identifiers that can perform the workload and satisfy its requirements as a result. The result can be written to a service request tracker (e.g., tracker 436 of FIG. 4B). The executable code segment, after authenticated, can be permitted to execute on ARS unit 354), wherein the data structure is to be used to generate one or more references to resources usable to perform one or more software workloads ([0058] The workload parameters can be: AI inferences (object detection), augment frames with inferred references, and generate image frame back to user with annotations [0062] Service list 450 provides a resource identifier or identifiers that can perform the workload and satisfy its requirements as a result.).
Prabhakaran does not explicitly teach generate a data structure. However, Prabhakaran as cited does teach a resource list that maintain a list of all available resources and a service list which is created/generated from the resource list. The service list is tailored to the requirements and type of the workload. As such, one of ordinary skill in the art would have understood Prabhakaran’s creation/generation of a service list as the limitation above. Accordingly, Prabhakaran reasonably teaches the limitation as claimed.
Regarding claim 2, Prabhakaran teaches wherein the API call comprises one or more parameters indicating a memory location usable to store the data structure ([0060] Tracker 436 can be stored as a table in a memory. Tracker 436 can include a service request identifier (ID), a workload request, selected resources that are provided by an ARS unit from execution of the service discovery agent associated with the service request, a result from use of the selected resource or its alternative, and a handle associated with a service discovery agent provided with the service request.).
Regarding claim 3, Prabhakaran teaches wherein the API call comprises one or more parameters indicating a list of the one or more resources to be indicated by the data structure, wherein the list includes a portion of the resources referenced to be usable by the one or more processors to perform the one or more software workloads ([0062] Service discovery agent 440 uses interface 444 to provide the workload type and requirements 442 to service list 450 using a query or a write. Interface 444 can be a JSON interface, POSIX API, remote procedure call (RPC), or other interfaces. Service list 450 provides a resource identifier or identifiers that can perform the workload and satisfy its requirements as a result. The result can be written to a service request tracker (e.g., tracker 436 of FIG. 4B). [0063] Workload type identifier can identify a type of workload that can be executed. For example, a workload type identifier can identify use of an AI inference engine, a database search, storage, database query, and so forth. Field latency can specify an amount of time to perform a type of workload. Field cost can specify a monetary cost and/or a power consumption cost. Field service application can specify a type or specific name of algorithm to be used. If a workload requirement specifies a type of algorithm to use, this field can be used to select acceptable resources. Field resource identifier can specify the resource identifier for the parameters, such that this identifier can be a candidate resource identifier for selection by the service discovery agent and, if selected, provided to a user request manager. Note that for a workload type identifier, there can be multiple rows or resources that can perform the workload and the service discovery agent can select the resource based on workload requirements and preferences.).
Regarding claim 4, Prabhakaran teaches wherein the API call comprises one or more parameters indicating a number of resources to be indicated by the data structure, wherein at least one of the number of resources is referenced to be usable by the one or more processors to perform the one or more software workloads ([0062-63]).
Regarding claim 6, Prabhakaran teaches wherein the data structure comprises a resource descriptor describing a context of the one or more processors ([0055] In a case where a computing resource identifier is provided, the load balancer can choose among available resources with the same or better performance criteria and cost criteria so that the specific identifier compute resource does not need to be used or selected and the load balancer can balance use of resources. The computing platform can include a variety of hardware and software component include: central processing units, AI inference acceleration, image processing, programmable control logic, FPGAs, graphics processing units (GPUs), general purpose GPUs, fixed function operations, accelerated look-up, and so forth.).
Regarding claim 7, Prabhakaran teaches wherein the data structure includes a resource descriptor describing a sub-context of the one or more processors ([0063] FIG. 4D depicts an example service list format. The service list can include a variety of fields including but not limited to: workload type identifier, latency, cost, algorithm used, and so forth. Workload type identifier can identify a type of workload that can be executed. For example, a workload type identifier can identify use of an AI inference engine, a database search, storage, database query, and so forth. Field latency can specify an amount of time to perform a type of workload. Field cost can specify a monetary cost and/or a power consumption cost. Field service application can specify a type or specific name of algorithm to be used. If a workload requirement specifies a type of algorithm to use, this field can be used to select acceptable resources. Field resource identifier can specify the resource identifier for the parameters, such that this identifier can be a candidate resource identifier for selection by the service discovery agent and, if selected, provided to a user request manager. Note that for a workload type identifier, there can be multiple rows or resources that can perform the workload and the service discovery agent can select the resource based on workload requirements and preferences.).
Regarding claims 8-11, 13-14, they are method claims having similar limitations as claims 1-4 and 6-7 above. Therefore, they are rejected under the same rationale above.
Claim 15 is a system type claim having similar limitations as claim 1 above. Therefore, it is rejected under the same rationale above. The additional limitations one or more processors and memory storing executable instructions that, if performed by the one or more processors are taught by Prabhakaran in at least [0069] “Memory subsystem 620 represents the main memory of system 600 and provides storage for code to be executed by processor 610"
Regarding claims 16-18 and 20, they are system claims having similar limitations as claims 2-4 and 6 above. Therefore, they are rejected under the same rationale above.
Claims 5, 12, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Prabhakaran et al. (US 2019/0208009 A1).
Regarding claim 5, Prabhakaran does not teach but Lindholm teaches wherein the one or more resources include one or more streaming multiprocessors (SMs) ([0073] As described above, the work distribution unit 225 dispatches tasks for execution on the GPCs 250 of the PPU 200. The tasks are allocated to a particular TPC 320 within a GPC 250 and, if the task is associated with a shader program, the task may be allocated to an SM 340.).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Lindholm with the teachings of Prabhakaran to allocate shader tasks to an SM similar to the image processing tasks as taught by Prabhakaran in at least [0053]. The modification would have been motivated by the desire of performing a simple substitution of an accelerator for an SM to yield predictable results.
Regarding claim 12, it is a method claim having similar limitations as claim 5 above. Therefore, they are rejected under the same rationale above.
Regarding claim 19, it is a system claim having similar limitations as claim 5 above. Therefore, they are rejected under the same rationale above.
Response to Arguments
Applicant’s arguments with respect to claims 1-20 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Conclusion
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 JORGE A CHU JOY-DAVILA whose telephone number is (571)270-0692. The examiner can normally be reached Monday-Friday, 6:00am-5:00pm.
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 J 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.
/JORGE A CHU JOY-DAVILA/Primary Examiner, Art Unit 2195