Prosecution Insights
Last updated: April 19, 2026
Application No. 16/795,380

APPLICATION PROGRAMMING INTERFACE TO ACCELERATE MATRIX OPERATIONS

Final Rejection §103
Filed
Feb 19, 2020
Examiner
SNYDER, STEVEN G
Art Unit
2184
Tech Center
2100 — Computer Architecture & Software
Assignee
Nvidia Corporation
OA Round
7 (Final)
80%
Grant Probability
Favorable
8-9
OA Rounds
2y 9m
To Grant
72%
With Interview

Examiner Intelligence

Grants 80% — above average
80%
Career Allow Rate
686 granted / 855 resolved
+25.2% vs TC avg
Minimal -8% lift
Without
With
+-8.2%
Interview Lift
resolved cases with interview
Typical timeline
2y 9m
Avg Prosecution
24 currently pending
Career history
879
Total Applications
across all art units

Statute-Specific Performance

§101
6.6%
-33.4% vs TC avg
§103
56.2%
+16.2% vs TC avg
§102
12.1%
-27.9% vs TC avg
§112
15.2%
-24.8% vs TC avg
Black line = Tech Center average estimate • Based on career data from 855 resolved cases

Office Action

§103
DETAILED ACTION This is in response to communication filed on 12/12/2025. Status of Claims Claims 1 – 33 are pending, of which claims 1, 7, 14, 21, and 27 are in independent form. Information Disclosure Statement The information disclosure statements (IDS) submitted on 12/3/2025 and 9/2/2025 are in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statements are being considered by the examiner. Claim Objections In light of applicant’s amendments to the claims, the examiner withdraws the previous objections to the claims. Claim Interpretation Applicant amended with the Request for Continued Examination of 8/28/2025 to add the limitation selecting one or more GEMM implementations “based, at least in part, on evaluating performance of the one or more GEMM implementations that match one or more user-specified parameters received by the one or more APIs.” Applicant states on page 9 of the RCE that ‘support for all amended claims can be found in the specification.’ The examiner’s review of Applicant’s specification does not find any teaching of ‘evaluating performance.’ The examiner finds (in many paragraphs throughout Applicant’s specification) teachings of "a comparison of performance of algorithms of said one or more algorithms, a determination of one or more high efficiency and/or high performing algorithms suitable to perform said desired matrix operation." Applicant's 'evaluating performance' therefore appears to be not based on executing/performing the operation, but rather the evaluating appears to be done before execution/performing of the operation. That, combined with the vague and broad phrasing of 'evaluating performance,' leads to a broadest reasonable interpretation where Ekanadham's cost evaluation is consideration to be equivalent to 'evaluating performance.' (see Ekanadham at [0053] “The planning module determines and selects an optimal operator implementation F to perform this operation, as based on evaluating time costs of various possible alternative functions from cost models 608, including time costs for format conversions ( e.g., casts).” Also, see Ekanadham at [0064] “in order to evaluate the applicability of an optimized implementation of a GPI graph analytics operator to a GPI graph analytics operator call, as well as its performance, each implementation of a GPI function also has metadata attached to it”). In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. 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 – 5, 7 – 9, 11, 12, 14, 15, 17, 18, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Ekanadham et al., U.S. Patent Application 2016/0188385 (hereinafter referred to as Ekanadham) in view of Zhou, U.S. Patent Application 2017/0344514 (hereinafter referred to as Zhou). Referring to claim 1, Ekanadham discloses “A non-transitory machine-readable medium having stored thereon” ([0264] computer system-executable instructions being executed by a computer system, Fig. 14 processor 1416) “one or more application programming interfaces (APIs)” ([0039] a GPI is a graph API and [0045] API for graph functions), which if performed by one or more processors, cause the one or more processors to at least” ([0264] computer system-executable instructions being executed by a computer system, Fig. 14 processor 1416): “select one or more optimizing” “matrix-to-matrix multiply” “implementations from among a plurality of” “implementations to be performed based, at least in part, on evaluating performance of the one or more” matrix multiply “implementations that match one or more user-specified parameters received by the one or more APIs” ([0053] “The planning module determines and selects an optimal operator implementation F to perform this operation, as based on evaluating time costs of various possible alternative functions from cost models 608, including time costs for format conversions ( e.g., casts).” [0055] GPI_mxm multiplies two matrices, [0059] several implementations of GPI_mxm. [0064] In order to evaluate the applicability of an optimized implementation of a GPI graph analytics operator to a GPI graph analytics operator call, as well as its performance, each implementation of a GPI function also has metadata attached to it. [0068] obtaining available system resources via Resource API. [0075] various implementations of GPI_mxm. [0080] selecting the implementation with the minimum cost. [0047] 3. The Library API 603, for obtaining: [0048] a. Available optimized implementations of Graph API functions for the available functional capabilities, resource levels, and representation/attributes of the arguments; [0049] b. Type-casting functions to change the representation of the arguments of Graph API functions to match with optimized implementations; [0050] c. Analyze functions to determine the attribute values of the arguments of Graph API, when needed and not available from the metadata associated with the arguments. [0054] Metadata Associated with Arguments Passed as Actual Parameters in a GPI Function Call. [0043] “the supplied actual parameters (function arguments)” and [0092] – [0097] selecting the preferred implementation for the metadata attributes of its arguments. Fig. 3 attributes of graphs and vectors are user supplied and system discovered), “wherein the one or more user-specified parameters comprise one or more characteristics of data contained within one or more matrix operands and a layout of the one or more matrix operands in memory” ([0016] and Fig. 5 metadata associated with matrix arguments passed to the GPI including rows, columns, sparse, dense, CSR, CSC, etc. As above, [0039] a GPI is a graph API and [0045] API for graph functions. [0042] – [0043] further discussion of the metadata as parameters of a GPI function call. [0054] Metadata Associated with Arguments Passed as Actual Parameters in a GPI Function Call. [0043] “the supplied actual parameters (function arguments)” and [0092] – [0097] selecting the preferred implementation for the metadata attributes of its arguments. Fig. 3 attributes of graphs and vectors are user supplied and system discovered). Ekanadham does not appear to explicitly disclose “select one or more optimizing general matrix-to-matrix multiply (GEMM) implementations from among a plurality of GEMM implementations to be performed.” However, Zhou discloses “select one or more optimizing general matrix-to-matrix multiply (GEMM) implementations from among a plurality of GEMM implementations to be performed” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]) Therefore, it would have been obvious to combine Zhou with Ekanadham to obtain the invention as specified in the instant claim. As per claim 2, Ekanadham discloses “the one or more user-specified parameters encode a set of constraints on how to perform a matrix operation, the set of constraints used to identify the one or more optimizing” “implementations” ([0065] - [0070] parameters include system settings, resources required, and permissible parameter ranges. [0064] In order to evaluate the applicability of an optimized implementation of a GPI graph analytics operator to a GPI graph analytics operator call, as well as its performance, each implementation of a GPI function also has metadata attached to it. [0068] obtaining available system resources via Resource API. [0075] various implementations of GPI_mxm. [0080] selecting the implementation with the minimum cost. [0054] Metadata Associated with Arguments Passed as Actual Parameters in a GPI Function Call. [0043] “the supplied actual parameters (function arguments)” and [0092] – [0097] selecting the preferred implementation for the metadata attributes of its arguments. Fig. 3 attributes of graphs and vectors are user supplied and system discovered). Ekanadham does not appear to explicitly disclose “the one or more optimizing GEMM implementations.” However, Zhou discloses “the one or more optimizing GEMM implementations” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]) Therefore, it would have been obvious to combine Zhou with Ekanadham to obtain the invention as specified in the instant claim. As per claim 3, Ekanadham discloses “the one or more APIs to select the one or more optimizing” “implementations, if performed by the one or more processors, cause the one or more processors to at least: determine a matrix multiply operation descriptor based at least in part on the one or more user-specified parameters; determine one or more matrix layout descriptors based at least in part on the one or more user-specified parameters; and identify the one or more optimizing” “implementations based at least in part on the matrix multiply operation descriptor and the one or more matrix layout descriptors” (Fig. 6 and [0047] - [0048] library API 603 obtaining available optimized implementations of graph API functions for the available functional capabilities, resource levels, and representation/attributes of the arguments. [0053] The planning module determines and selects an optimal operator implementation F to perform this operation, as based on evaluating time costs of various possible alternative functions. [0070] permissible range for operands, matrix with fewer than 64 million nodes and [0072] The metadata associated with the objects includes the size and representation of the objects. [0054] Metadata Associated with Arguments Passed as Actual Parameters in a GPI Function Call. [0043] “the supplied actual parameters (function arguments)” and [0092] – [0097] selecting the preferred implementation for the metadata attributes of its arguments. Fig. 3 attributes of graphs and vectors are user supplied and system discovered). Ekanadham does not appear to explicitly disclose “the one or more optimizing GEMM implementations.” However, Zhou discloses “the one or more optimizing GEMM implementations” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]) Therefore, it would have been obvious to combine Zhou with Ekanadham to obtain the invention as specified in the instant claim. As per claim 4, Ekanadham discloses “the matrix multiply operation descriptor encodes one or more attributes of a matrix multiply operation, the one or more attributes including: a compute type; a scale type; a pointer mode” ([0118] pointer to the routine); “a fill mode” ([0070] permissible range for operands, matrix with fewer than 64 million nodes and [0072] The metadata associated with the objects includes the size and representation of the objects); an epilogue function; or a bias vector pointer.” As per claim 5, Ekanadham discloses “the one or more matrix layout descriptors each encode one or more attributes of a matrix for a matrix multiply operation, the one or more attributes including: a data precision type; a memory order of data of the matrix” ([0072] The metadata associated with the objects includes the size and representation of the objects [0226] - [0227] edge lists sorted in row order or column order); “a batch count; a strided batch offset; or a plane offset.” Referring to claim 7, claim 1 recites the corresponding limitations as that of claim 7. Therefore, the rejection of claim 1 applies to claim 7. Also, Ekanadham discloses “A system, comprising: one or more processors in response to one or more application programming interface (API) calls to” select one or more implementations and “one or more memories to store the one or more user-specified parameters” (Fig. 14 system 1412 with processing unit 1416 and memory 1428). As above, Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]) Therefore, it would have been obvious to combine Zhou with Ekanadham to obtain the invention as specified in the instant claim. As per claim 8, Ekanadham discloses “the one or more user-specified parameters comprises one or more search preferences parameters that specify constraints for determining the one or more optimizing” “implementations are suitable for performing a matrix operation and other” “implementations are not, the one or more search preferences parameters allowing a user of the one or more API calls to specify: a search mode; a maximum allowed workspace memory; a math mode; a reduction scheme; a Gaussian mode; buffer alignment information for one or more operands; a maximum wave count; a pointer mode; or an epilogue function” ([0066] – [0068] mandate system settings/limits for parameters such as page size, cache size, available memory. [0207] - [0209] system characteristics and graph characteristics. [0054] Metadata Associated with Arguments Passed as Actual Parameters in a GPI Function Call. [0043] “the supplied actual parameters (function arguments)” and [0092] – [0097] selecting the preferred implementation for the metadata attributes of its arguments. Fig. 3 attributes of graphs and vectors are user supplied and system discovered). Ekanadham does not appear to explicitly disclose “the one or more optimizing GEMM implementations are suitable” and “other GEMM implementations are not.” However, Zhou discloses “the one or more optimizing GEMM implementations are suitable” and “other GEMM implementations are not” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]). Therefore, it would have been obvious to combine Zhou with Ekanadham to obtain the invention as specified in the instant claim. As per claim 9, Ekanadham discloses “the one or more search preferences parameters specify whether cores of a streaming multiprocessor are to be used for performing the matrix operation” ([0039] SMT levels of cores). As per claim 11, Ekanadham discloses “the one or more” “implementations are encoded as data objects in which the data objects are modified through the one or more API calls to modify how to a matrix operation is to be performed” ([0049] b. Type-casting functions to change the representation of the arguments of Graph API functions to match with optimized implementations). Ekanadham does not appear to explicitly disclose “the one or more GEMM implementations.” However, Zhou discloses “the one or more GEMM implementations” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]). Therefore, it would have been obvious to combine Zhou with Ekanadham to obtain the invention as specified in the instant claim. As per claim 12, Ekanadham discloses “the one or more processors comprise one or more graphics processing units” ([0028], [0046], [0090]). Referring to claim 14, claim 1 recites the corresponding limitations as that of claim 14. Therefore, the rejection of claim 1 applies to claim 14. Note, claim 15 recites the corresponding limitations of claim 3. Therefore, the rejection of claim 3 applies to claim 15. As per claim 17, Ekanadham discloses “the one or more APIs comprises an API to get potential algorithms that can be utilized to perform a specified matrix multiplication operation” ([0055] the function GPI_m×m multiplies two matrices A and B to create the matrix C. [0072] – [0080] selecting the best implementation of GPI_mxm). As per claim 18, Ekanadham discloses “the one or more APIs comprises an API to retrieve a value of an attribute of a matrix multiplication algorithm” ([0065] – [0070] system settings, system resources required, permissible argument/parameter ranges). As per claim 20, Ekanadham discloses “the one or more APIs comprises an API to determine possible matrix multiplication algorithms for a matrix multiplication operation based on: an operation description, input matrices, and one or more search preferences” (Fig. 6 and [0047] - [0048] library API 603 obtaining available optimized implementations of graph API functions for the available functional capabilities, resource levels, and representation/attributes of the arguments. [0053] The planning module determines and selects an optimal operator implementation F to perform this operation, as based on evaluating time costs of various possible alternative functions. [0070] permissible range for operands, matrix with fewer than 64 million nodes and [0072] The metadata associated with the objects includes the size and representation of the objects. [0066] – [0068] mandate system settings/limits for parameters such as page size, cache size, available memory. [0207] - [0209] system characteristics and graph characteristics). Claims 6 and 13 are rejected under 35 U.S.C. 103 as being unpatentable over Ekanadham in view of Zhou, further in view of “Sorting a Vector in C++” by Ben Gorman (hereinafter referred to as Gorman). As per claim 6, Ekanadham discloses “selecting the one or more optimizing” “implementations” “in order of estimated compute time” ([0040] lowest time cost is selected and [0053] The planning module determines and selects an optimal operator implementation F to perform this operation, as based on evaluating time costs of various possible alternative functions). Ekanadham does not appear to explicitly disclose “the one or more optimizing GEMM implementations.” However, Zhou discloses “the one or more optimizing GEMM implementations” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]). Neither Ekanadham nor Zhou appears to explicitly disclose “selecting the one or more optimizing GEMM implementations is provided as part of a result vector in order of estimated compute time.” However, Gorman discloses utilizing a vector for “one of the most common data manipulation tasks – sorting” (First sentence). It would have been obvious to one of ordinary skill in the art at the time of Applicant’s filing to utilize a vector to store the time costs of various possible alternative functions of Ekanadham. Further, in Ekanadham, only the lowest time cost is selected. However, it would have been obvious to one of ordinary skill in the art at the time of Applicant's filing to provide further implementations in order of estimated compute time. This would provide for execution of a next best implementation, should there be any issues with running the best implementation. This provides a level of redundancy to the system. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, and Gorman before him or her, to modify the teachings of Ekanadham and Zhou to include the teachings of Gorman so that selecting the one or more optimizing GEMM implementations is provided as part of a result vector in order of estimated compute time. The motivation for doing so would have been to provide a means for storing Ekanadham’s time costs of various possible alternative functions in a common structure (a vector), which utilizes standard interaction algorithms, including sorting, to allow a user to efficiently interact with the data in the vector. Therefore, it would have been obvious to combine Gorman with Ekanadham and Zhou to obtain the invention as specified in the instant claim. Note, claim 13 recites the corresponding limitations of claim 6. Therefore, the rejection of claim 6 applies to claim 13. Claim 10 is rejected under 35 U.S.C. 103 as being unpatentable over Ekanadham in view of Zhou, further in view of Gelashvili, WIPO Publication WO 2020046859 A1 (hereinafter referred to as Gelashvili), and further in view of Prakash et al., U.S. Patent Application 2021/0110506 (hereinafter referred to as Prakash). As per claim 10, Ekanadham discloses “the one or more user-specified parameters comprise” “attributes that specify how to perform a matrix operation” ([0218] schedules parallel sub-computations in an application, efficiently based on the metadata gathered as capable of gaining the knowledge of both system characteristics and graph characteristics, as described above, either by taking as parameters at configuration time or by gathering them dynamically, by querying the system and by observing properties through monitoring and maintaining history. [0054] Metadata Associated with Arguments Passed as Actual Parameters in a GPI Function Call. [0043] “the supplied actual parameters (function arguments)” and [0092] – [0097] selecting the preferred implementation for the metadata attributes of its arguments. Fig. 3 attributes of graphs and vectors are user supplied and system discovered). Neither Ekanadham nor Zhou appear to explicitly disclose the “attributes comprising: tile dimensions for input matrices to the matrix operation; k-dimension splitting of the input matrices for parallel computation; a reduction scheme for accumulating results from the k-dimensions; or swizzling support.” However, Gelashvili discloses the “attributes comprising: tile dimensions for input matrices to the matrix operation; k-dimension splitting of the input matrices for parallel computation; a reduction scheme for accumulating results from the k-dimensions; or swizzling support” ([0028] for matrix multiply operations, parameters control divisions of data used and the tasks provided to each core, tiles of size TxT. [0078] divide a task into smaller tasks based on parameters chosen or computed). Ekanadham, Zhou, and Gelashvili are analogous art because they are from the same field of endeavor, which is matrix multiplication. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, and Gelashvili before him or her, to modify the teachings of Ekanadham and Zhou to include the teachings of Gelashvili so that the attributes comprise tile dimensions, k-dimension splitting of input matrices, a reduction scheme, or swizzling support. The motivation for doing so would have been to provide a means for manipulating the data in order to effectively process the data using multiple cores (as taught by Gelashvili at [0059]). Neither Ekanadham nor Zhou nor Gelashvili appears to explicitly disclose “one or more user-configurable attributes that specify how to perform a matrix operation.” However, Prakash discloses “one or more user-configurable attributes that specify how to perform a matrix operation” ([0041] end user can configure settings associated with execution of code. [0056] end user can use an API, matrix multiplication. [0095] user can specify configuration settings using an API request). Ekanadham, Zhou, Gelashvili, and Prakash are analogous art because they are from the same field of endeavor, which is matrix multiplication. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, Gelashvili, and Prakash before him or her, to modify the teachings of Ekanadham, Zhou, and Gelashvili to include the teachings of Prakash so that the attributes for performing matrix operations are user-configurable. The motivation for doing so would have been to provide a user with control of which implementation is utilized. Therefore, it would have been obvious to combine Prakash with Ekanadham, Zhou, and Gelashvili to obtain the invention as specified in the instant claim. Claims 16 and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Ekanadham in view of Zhou, further in view of Prakash. As per claim 16, Ekanadham discloses “the one or more user-specified parameters” “to limit a search space of the plurality of” “implementations” ([0218] schedules parallel sub-computations in an application, efficiently based on the metadata gathered as capable of gaining the knowledge of both system characteristics and graph characteristics, as described above, either by taking as parameters at configuration time or by gathering them dynamically, by querying the system and by observing properties through monitoring and maintaining history. [0054] Metadata Associated with Arguments Passed as Actual Parameters in a GPI Function Call. [0043] “the supplied actual parameters (function arguments)” and [0092] – [0097] selecting the preferred implementation for the metadata attributes of its arguments. Fig. 3 attributes of graphs and vectors are user supplied and system discovered). Ekanadham does not appear to explicitly disclose “the plurality of GEMM implementations.” However, Zhou discloses “the plurality of GEMM implementations” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]). Neither Ekanadham nor Zhou appear to explicitly disclose “the one or more user-specified parameters are provided by a user of the one or more APIs to limit a search space of the plurality of GEMM implementations.” However, Prakash discloses “the one or more user-specified parameters are provided by a user of the one or more APIs” ([0041] end user can configure settings associated with execution of code. [0056] end user can use an API, matrix multiplication. [0095] user can specify configuration settings using an API request). Ekanadham, Zhou, and Prakash are analogous art because they are from the same field of endeavor, which is matrix multiplication and APIs. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, and Prakash before him or her, to modify the teachings of Ekanadham and Zhou to include the teachings of Prakash so that the attributes for performing matrix operations are user-configurable. The motivation for doing so would have been to provide a user with control of which implementation is utilized. Therefore, it would have been obvious to combine Prakash with Ekanadham and Zhou to obtain the invention as specified in the instant claim. As per claim 19, Ekanadham discloses “a value of an attribute of a matrix multiplication algorithm” ([0047] – [0048] available optimized implementations of Graph API functions for the available functional capabilities, resource levels, and representation/attributes of the arguments). Neither Ekanadham nor Zhou appear to explicitly disclose “the one or more APls comprises an API to configure a value of an attribute of a matrix multiplication algorithm.” However, Prakash discloses “the one or more APls comprises an API to configure a value of an attribute of a matrix multiplication algorithm” ([0041] end user can configure settings associated with execution of code. [0056] end user can use an API, matrix multiplication. [0095] user can specify configuration settings using an API request). Ekanadham, Zhou, and Prakash are analogous art because they are from the same field of endeavor, which is matrix multiplication and APIs. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, and Prakash before him or her, to modify the teachings of Ekanadham and Zhou to include the teachings of Prakash so that the attributes for performing matrix operations are user-configurable. The motivation for doing so would have been to provide a user with control of which implementation is utilized. Therefore, it would have been obvious to combine Prakash with Ekanadham and Zhou to obtain the invention as specified in the instant claim. Claims 21 and 23 – 26 are rejected under 35 U.S.C. 103 as being unpatentable over Ekanadham in view of Zhou, further in view of Jain, U.S. Patent Application 2019/0362197 (hereinafter referred to as Jain). Referring to claim 21, claim 7 recites the corresponding limitations as that of claim 21. Therefore, the rejection of claim 7 applies to claim 21. Neither Ekanadham nor Zhou appears to explicitly disclose “one or more processors comprising circuitry to: help train one or more neural networks” by the selection of one or more GEMM implementations as described in claim 7. However, Jain discloses “one or more processors comprising circuitry to: help train one or more neural networks” ([0008] training phase, tuning of filters, training of models). Ekanadham, Zhou, and Jain are analogous art because they are from the same field of endeavor, which is matrices and APIs. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, and Jain before him or her, to modify the teachings of Ekanadham and Zhou to include the teachings of Jain so that the system includes one or more circuits to help train one or more neural networks. The motivation for doing so would have been to minimize errors (as stated by Jain in [0011]). Therefore, it would have been obvious to combine Jain with Ekanadham and Zhou to obtain the invention as specified in the instant claim. As per claim 23, Ekanadham discloses “the one or more user-specified parameters encode a set of constraints on how to perform a matrix operation, the set of constraints used to identify the one or more optimizing” “implementations” ([0065] - [0070] parameters include system settings, resources required, and permissible parameter ranges. [0054] Metadata Associated with Arguments Passed as Actual Parameters in a GPI Function Call. [0043] “the supplied actual parameters (function arguments)” and [0092] – [0097] selecting the preferred implementation for the metadata attributes of its arguments. Fig. 3 attributes of graphs and vectors are user supplied and system discovered). Ekanadham does not appear to explicitly disclose “the one or more optimizing GEMM implementations.” However, Zhou discloses “the one or more optimizing GEMM implementations” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]). As above, Ekanadham, Zhou, and Jain are analogous art because they are from the same field of endeavor, which is matrices and APIs. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, and Jain before him or her, to modify the teachings of Ekanadham and Zhou to include the teachings of Jain so that the system includes one or more circuits to help train one or more neural networks. The motivation for doing so would have been to minimize errors (as stated by Jain in [0011]). Therefore, it would have been obvious to combine Jain with Ekanadham and Zhou to obtain the invention as specified in the instant claim. As per claim 24, Ekanadham discloses “the circuitry is to select the one or more optimizing” “implementations by at least: determining a matrix multiply operation descriptor based at least in part on the one or more user-specified parameters; determining one or more matrix layout descriptors based at least in part on the one or more user-specified parameters; and identifying the one or more optimizing” “implementations based at least in part on the matrix multiply operation descriptor and the one or more matrix layout descriptors” (Fig. 6 and [0047] - [0048] library API 603 obtaining available optimized implementations of graph API functions for the available functional capabilities, resource levels, and representation/attributes of the arguments. [0053] The planning module determines and selects an optimal operator implementation F to perform this operation, as based on evaluating time costs of various possible alternative functions. [0070] permissible range for operands, matrix with fewer than 64 million nodes and [0072] The metadata associated with the objects includes the size and representation of the objects. [0080] implementations of GPI_mxm. [0054] Metadata Associated with Arguments Passed as Actual Parameters in a GPI Function Call. [0043] “the supplied actual parameters (function arguments)” and [0092] – [0097] selecting the preferred implementation for the metadata attributes of its arguments. Fig. 3 attributes of graphs and vectors are user supplied and system discovered). Ekanadham does not appear to explicitly disclose “the one or more optimizing GEMM implementations.” However, Zhou discloses “the one or more optimizing GEMM implementations” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]). As above, Ekanadham, Zhou, and Jain are analogous art because they are from the same field of endeavor, which is matrices and APIs. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, and Jain before him or her, to modify the teachings of Ekanadham and Zhou to include the teachings of Jain so that the system includes one or more circuits to help train one or more neural networks. The motivation for doing so would have been to minimize errors (as stated by Jain in [0011]). Therefore, it would have been obvious to combine Jain with Ekanadham and Zhou to obtain the invention as specified in the instant claim. As per claim 25, Ekanadham discloses “the matrix multiply operation descriptor encodes one or more attributes of a matrix multiply operation, the one or more attributes including: a first type of transform to perform on a first matrix; a second type of transform to perform on a second matrix; or a third type of transform to perform on a third matrix” ([0053] type-casting). As per claim 26, Ekanadham discloses “the one or more matrix layout descriptors each encode one or more attributes of a matrix for a matrix multiply operation, the one or more attributes including: a number of rows; a number of columns; or a leading dimension” ([0072] The metadata associated with the objects includes the size and representation of the objects. [0226] - [0227] edge lists sorted in row order or column order). Claim 22 is rejected under 35 U.S.C. 103 as being unpatentable over Ekanadham in view of Zhou, further in view of Jain, and further in view of Gorman. As per claim 22, Ekanadham discloses “the one or more optimizing” “implementations is” “organized based on estimated compute time” ([0040] lowest time cost is selected and [0053] The planning module determines and selects an optimal operator implementation F to perform this operation, as based on evaluating time costs of various possible alternative functions). Ekanadham does not appear to explicitly disclose “the one or more optimizing GEMM implementations.” However, Zhou discloses “the one or more optimizing GEMM implementations” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]). Neither Ekanadham nor Zhou nor Jain appears to explicitly disclose “the one or more optimizing GEMM implementations is an ordered array organized based on estimated compute time.” However, Gorman discloses utilizing a vector for “one of the most common data manipulation tasks – sorting” (First sentence). It would have been obvious to one of ordinary skill in the art at the time of Applicant’s filing to utilize a vector to store the time costs of various possible alternative functions of Ekanadham. Further, in Ekanadham, only the lowest time cost is selected. However, it would have been obvious to one of ordinary skill in the art at the time of Applicant's filing to provide further implementations in order of estimated compute time. This would provide for execution of a next best implementation, should there be any issues with running the best implementation. This provides a level of redundancy to the system. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, Jain, and Gorman before him or her, to modify the teachings of Ekanadham, Zhou, and Jain to include the teachings of Gorman so that the select one or more optimizing GEMM implementations are provided as part of a result vector in order of estimated compute time. The motivation for doing so would have been to provide a means for storing Ekanadham’s time costs of various possible alternative functions in a common structure (a vector), which utilizes standard interaction algorithms, including sorting, to allow a user to efficiently interact with the data in the vector. Claims 27, 28, 30, and 31 are rejected under 35 U.S.C. 103 as being unpatentable over Ekanadham in view of Zhou, further in view of Yuan et al., WIPO Publication WO 2019/027924 (hereinafter referred to as Yuan). Referring to claim 27, claim 7 recites the corresponding limitations as that of claim 27. Therefore, the rejection of claim 7 applies to claim 27. Neither Ekanadham nor Zhou appears to explicitly disclose “One or more processors, comprising: circuitry to inference using one or more neural networks trained by” the selecting of GEMM implementations, as in claim 7. However, Yuan discloses “One or more processors, comprising: circuitry to inference using one or more neural networks trained” ([0081] “inference engine may offer an application programming interface (API) that can be used by an operating system and/or other applications to invoke inference engine, e.g., to apply trained model to application data to generate an inference”). Ekanadham, Zhou, and Yuan are analogous art because they are from the same field of endeavor, which is matrix multiplication and APIs. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, and Yuan before him or her, to modify the teachings of Ekanadham and Zhou to include the teachings of Yuan so that they system includes one or more circuits to inference using one or more neural networks trained. The motivation for doing so would have been to apply the trained model by inference engine to produce knowledge representations (e.g., numeric representations) from input data, e.g., application data. In some implementations, knowledge representations generated by machine-learning application may be provided to a different device that conducts further processing, e.g., over a network. In such implementations, providing the knowledge representations rather than the images may provide a substantial technical benefit, e.g., enable faster data transmission with reduced cost (as stated by Yuan in [0082]). Therefore, it would have been obvious to combine Yuan with Ekanadham and Zhou to obtain the invention as specified in the instant claim. As per claim 28, Ekanadham discloses “the one or more user-specified parameters comprises one or more search preferences parameters that specify constraints for determining the one or more optimizing” “implementations are suitable for performing a matrix operation and other” “implementations are not” ([0066] – [0068] mandate system settings/limits for parameters such as page size, cache size, available memory. [0207] - [0209] system characteristics and graph characteristics. [0054] Metadata Associated with Arguments Passed as Actual Parameters in a GPI Function Call. [0043] “the supplied actual parameters (function arguments)” and [0092] – [0097] selecting the preferred implementation for the metadata attributes of its arguments. Fig. 3 attributes of graphs and vectors are user supplied and system discovered). Ekanadham does not appear to explicitly disclose “the one or more optimizing GEMM implementations are suitable” and “other GEMM implementations are not.” However, Zhou discloses “the one or more optimizing GEMM implementations are suitable” and “other GEMM implementations are not” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]). As above, Ekanadham, Zhou, and Yuan are analogous art because they are from the same field of endeavor, which is matrix multiplication and APIs. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, and Yuan before him or her, to modify the teachings of Ekanadham and Zhou to include the teachings of Yuan so that they system includes one or more circuits to inference using one or more neural networks trained. The motivation for doing so would have been to apply the trained model by inference engine to produce knowledge representations (e.g., numeric representations) from input data, e.g., application data. In some implementations, knowledge representations generated by machine-learning application may be provided to a different device that conducts further processing, e.g., over a network. In such implementations, providing the knowledge representations rather than the images may provide a substantial technical benefit, e.g., enable faster data transmission with reduced cost (as stated by Yuan in [0082]). Therefore, it would have been obvious to combine Yuan with Ekanadham and Zhou to obtain the invention as specified in the instant claim. As per claim 30, Ekanadham discloses “the one or more user-specified parameters include parameters that specify a search space for identifying the one or more optimizing” “implementations” ([0066] – [0068] mandate system settings/limits for parameters such as page size, cache size, available memory. [0207] - [0209] system characteristics and graph characteristics. [0054] Metadata Associated with Arguments Passed as Actual Parameters in a GPI Function Call. [0043] “the supplied actual parameters (function arguments)” and [0092] – [0097] selecting the preferred implementation for the metadata attributes of its arguments. Fig. 3 attributes of graphs and vectors are user supplied and system discovered). Ekanadham does not appear to explicitly disclose “the one or more optimizing GEMM implementations.” However, Zhou discloses “the one or more optimizing GEMM implementations” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]). As above, Ekanadham, Zhou, and Yuan are analogous art because they are from the same field of endeavor, which is matrix multiplication and APIs. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, and Yuan before him or her, to modify the teachings of Ekanadham and Zhou to include the teachings of Yuan so that they system includes one or more circuits to inference using one or more neural networks trained. The motivation for doing so would have been to apply the trained model by inference engine to produce knowledge representations (e.g., numeric representations) from input data, e.g., application data. In some implementations, knowledge representations generated by machine-learning application may be provided to a different device that conducts further processing, e.g., over a network. In such implementations, providing the knowledge representations rather than the images may provide a substantial technical benefit, e.g., enable faster data transmission with reduced cost (as stated by Yuan in [0082]). Therefore, it would have been obvious to combine Yuan with Ekanadham and Zhou to obtain the invention as specified in the instant claim. As per claim 31, Ekanadham discloses “the one or more optimizing” “implementations” “within the search space” ([0040] lowest time cost is selected and [0053] The planning module determines and selects an optimal operator implementation F to perform this operation, as based on evaluating time costs of various possible alternative functions). Ekanadham does not appear to explicitly disclose “the one or more optimizing GEMM implementations.” However, Zhou discloses “the one or more optimizing GEMM implementations” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham does not appear to explicitly disclose “the one or more optimizing GEMM implementations include all GEMM implementations of the plurality of GEMM implementations within the search space.” As above, in Ekanadham, only the lowest time cost is selected. However, it would have been obvious to one of ordinary skill in the art at the time of Applicant's filing to provide further implementations in order. This would provide for execution of a next best implementation, should there be any issues with running the best implementation. This provides a level of redundancy to the system. Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]). As above, Ekanadham, Zhou, and Yuan are analogous art because they are from the same field of endeavor, which is matrix multiplication and APIs. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, and Yuan before him or her, to modify the teachings of Ekanadham and Zhou to include the teachings of Yuan so that they system includes one or more circuits to inference using one or more neural networks trained. The motivation for doing so would have been to apply the trained model by inference engine to produce knowledge representations (e.g., numeric representations) from input data, e.g., application data. In some implementations, knowledge representations generated by machine-learning application may be provided to a different device that conducts further processing, e.g., over a network. In such implementations, providing the knowledge representations rather than the images may provide a substantial technical benefit, e.g., enable faster data transmission with reduced cost (as stated by Yuan in [0082]). Therefore, it would have been obvious to combine Yuan with Ekanadham and Zhou to obtain the invention as specified in the instant claim. Claim 29 is rejected under 35 U.S.C. 103 as being unpatentable over Ekanadham in view of Zhou, further in view of Yuan, as applied to claims above, further in view of Zhao et al., U.S. Patent Application 2020/0133735 (hereinafter referred to as Zhao). As per claim 29, Ekanadham discloses “the one or more search preferences parameters specify” system settings, resources required, and permissible parameter ranges ([0065] - [0070]). Neither Ekanadham nor Zhou nor Yuan appears to explicitly disclose “the one or more search preferences parameters specify whether tensor core operations are supported.” However, Zhao discloses performance parameters including whether tensor core operations are supported” ([0045] whether the GPU enables Tensor Core). Ekanadham, Zhou, Yuan, and Zhao are analogous art because they are from the same field of endeavor, which is matrix operations and APIs. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, Yuan, and Zhao before him or her, to modify the teachings of Ekanadham, Zhou, and Yuan to include the teachings of Zhao so that search preferences specify whether tensor core operations are supported. The motivation for doing so would have been to obtain a higher performance if Tensor Core is enabled (as stated by Zhao in [0033]). Therefore, it would have been obvious to combine Zhao with Ekanadham, Zhou, and Yuan to obtain the invention as specified in the instant claim. Claims 32 and 33 are rejected under 35 U.S.C. 103 as being unpatentable over Ekanadham in view of Zhou, further in view of Yuan, as applied to claims above, further in view of Prakash. As per claim 32, Ekanadham discloses “the one or more optimizing” “implementations include one or more attributes” ([0218] schedules parallel sub-computations in an application, efficiently based on the metadata gathered as capable of gaining the knowledge of both system characteristics and graph characteristics, as described above, either by taking as parameters at configuration time or by gathering them dynamically, by querying the system and by observing properties through monitoring and maintaining history). Ekanadham does not appear to explicitly disclose “the one or more optimizing GEMM implementations.” However, Zhou discloses “the one or more optimizing GEMM implementations” ([0002] Mathematically, GEMM performs the computation C=αAB+βC where matrices A, B, C are M×K, K×N, M×N respectively, and α, β are scalars. [0045] The starting point of this disclosure is the observation that a single GEMM kernel implementation on the GPU, no matter how optimized, may not perform well for all possible matrix sizes in terms of M, N, and K. Thus, a more practical strategy is to have a collection of GEMM techniques from which the best one can be selected given the sizes of the matrices). Ekanadham and Zhou are analogous art because they are from the same field of endeavor, which is matrix multiplication techniques. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham and Zhou before him or her, to modify the teachings of Ekanadham to include the teachings of Zhou so that the selecting of a best matrix multiplication implementation is selecting a best general matrix-to-matrix multiply (GEMM) implementation. The motivation for doing so would have been to utilize a commonly used operation (as stated by Zhou at [0002]). Neither Ekanadham nor Zhou nor Yuan does not appear to explicitly disclose “the one or more optimizing GEMM implementations include one or more attributes that are configurable by a user of the one or more APIs.” However, Prakash discloses “one or more attributes that are configurable by a user of the one or more APIs” ([0041] end user can configure settings associated with execution of code. [0056] end user can use an API, matrix multiplication. [0095] user can specify configuration settings using an API request). Ekanadham, Zhou, Yuan, and Prakash are analogous art because they are from the same field of endeavor, which is matrix multiplication and APIs. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, Yuan, and Prakash before him or her, to modify the teachings of Ekanadham, Zhou, and Yuan to include the teachings of Prakash so that the attributes for performing matrix operations are user-configurable. The motivation for doing so would have been to provide a user with control of which implementation is utilized. Therefore, it would have been obvious to combine Prakash with Ekanadham, Zhou, and Yuan to obtain the invention as specified in the instant claim. As per claim 33, as above, Prakash discloses “the one or more attributes are configurable by the user via a handle” ([0041] end user can configure settings associated with execution of code. [0056] end user can use an API, matrix multiplication. [0095] user can specify configuration settings using an API request). Ekanadham, Zhou, Yuan, and Prakash are analogous art because they are from the same field of endeavor, which is matrix multiplication and APIs. Before the effective filing date of the claimed invention, it would have been obvious to one of ordinary skill in the art, having the teachings of Ekanadham, Zhou, Yuan, and Prakash before him or her, to modify the teachings of Ekanadham, Zhou, and Yuan to include the teachings of Prakash so that the attributes for performing matrix operations are user-configurable. The motivation for doing so would have been to provide a user with control of which implementation is utilized. Therefore, it would have been obvious to combine Prakash with Ekanadham, Zhou, and Yuan to obtain the invention as specified in the instant claim. Response to Arguments Applicant argues, on page 11 section A., that The proposed combination of Ekanadham and Zhou does not teach or suggest, "[a] plurality of GEMM implementations to be performed based, at least in part, on evaluating performance of the one or more GEMM implementations that match one or more user-specified parameters received by the one or more APIs, wherein the one or more user-specified parameters comprise one or more characteristics of data contained within one or more matrix operands and a layout of the one or more matrix operands in memory,' as recited by amended claim 1. That is, the proposed combination of "graph APIs" of Ekanadham with "GEMM implementations" of Zhou does not teach or suggest "evaluating performance of the one or more GEMM implementations that match one or more user-specified parameters received by the one or more APIs, wherein the one or more user-specified parameters comprise one or more characteristics of data contained within one or more matrix operands and a layout of the one or more matrix operands in memory," as claimed. The examiner disagrees. As above, Ekanadham teaches user supplied arguments passed as parameters in a GPI call. A GPI is an API in Ekanadham ([0016] and Fig. 5 metadata associated with matrix arguments passed to the GPI including rows, columns, sparse, dense, CSR, CSC, etc. [0054] Metadata Associated with Arguments Passed as Actual Parameters in a GPI Function Call. [0043] “the supplied actual parameters (function arguments)” and [0092] – [0097] selecting the preferred implementation for the metadata attributes of its arguments. Fig. 3 attributes of graphs and vectors are user supplied and system discovered. Claim 10 “the run-time system and graph API provides a platform to input and implement a graph analytic application program from a user by way of a graph processing interface (GPI)”). Also, as above, while Ekanadham teaches choosing one of multiple matrix multiplication implementations of GPI_mxm, Zhou teaches selecting a GEMM technique from a collection of GEMM techniques. As such, the examiner maintains that it would have been obvious to one of ordinary skill in the art at the time of Applicant’s filing to combine Zhou with Ekanadham so that the API with user supplied arguments is used to select a GEMM implementation. The remaining arguments are duplicates of the above argument and/or are arguments for allowability based solely on dependency. As such, all arguments have been considered and found to be not persuasive. Conclusion THIS ACTION IS MADE FINAL. 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. Contact Information Any inquiry concerning this communication or earlier communications from the examiner should be directed to STEVEN G SNYDER whose telephone number is (571)270-1971. The examiner can normally be reached on M-F 8:00am-4:30pm (flexible). 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, Henry Tsai can be reached on 571-272-4176. 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. /STEVEN G SNYDER/Primary Examiner, Art Unit 2184
Read full office action

Prosecution Timeline

Feb 19, 2020
Application Filed
May 27, 2022
Non-Final Rejection — §103
Dec 02, 2022
Response Filed
Jan 31, 2023
Final Rejection — §103
Jun 22, 2023
Examiner Interview Summary
Jun 22, 2023
Applicant Interview (Telephonic)
Aug 07, 2023
Notice of Allowance
Feb 07, 2024
Response after Non-Final Action
Feb 13, 2024
Response after Non-Final Action
Apr 25, 2024
Non-Final Rejection — §103
Jun 04, 2024
Applicant Interview (Telephonic)
Jun 04, 2024
Examiner Interview Summary
Aug 01, 2024
Response Filed
Oct 02, 2024
Non-Final Rejection — §103
Jan 06, 2025
Examiner Interview Summary
Jan 06, 2025
Applicant Interview (Telephonic)
Apr 07, 2025
Response Filed
May 22, 2025
Final Rejection — §103
Jul 03, 2025
Applicant Interview (Telephonic)
Jul 03, 2025
Examiner Interview Summary
Aug 28, 2025
Request for Continued Examination
Sep 08, 2025
Response after Non-Final Action
Sep 16, 2025
Non-Final Rejection — §103
Nov 26, 2025
Applicant Interview (Telephonic)
Nov 26, 2025
Examiner Interview Summary
Dec 03, 2025
Response Filed
Mar 04, 2026
Final Rejection — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12596665
BUS-BASED TRANSACTION PROCESSING METHOD AND SYSTEM, STORAGE MEDIUM, AND DEVICE
2y 5m to grant Granted Apr 07, 2026
Patent 12591432
METHOD FOR EXECUTION OF BUS CONTROLLER, COMPUTER DEVICE AND STORAGE MEDIUM
2y 5m to grant Granted Mar 31, 2026
Patent 12591429
MEMORY INTERFACE
2y 5m to grant Granted Mar 31, 2026
Patent 12591451
INTER-APPLICATION COMMUNICATION METHOD AND APPARATUS, STORAGE MEDIUM, AND PROGRAM PRODUCT
2y 5m to grant Granted Mar 31, 2026
Patent 12585726
APPLICATION PROGRAMMING INTERFACE TO ACCELERATE MATRIX OPERATIONS
2y 5m to grant Granted Mar 24, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

8-9
Expected OA Rounds
80%
Grant Probability
72%
With Interview (-8.2%)
2y 9m
Median Time to Grant
High
PTA Risk
Based on 855 resolved cases by this examiner. Grant probability derived from career allow rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month