Application programming interface to accelerate matrix operations
AssigneeNVIDIA Corporation
InventorsPiotr Majcher, Mostafa Hagog, Philippe Vandermersch
Life of this patent
Estimating the term…
Abstract
Apparatuses, systems, and techniques to determine a matrix multiplication algorithm for a matrix multiplication operation. In at least one embodiment, a matrix multiplication operation is analyzed to determine an appropriate matrix multiplication algorithm to perform the matrix multiplication algorithm.
Claims35
A non-transitory machine-readable medium having stored thereon an application programming interface (API), which if performed by one or more processors, causes the one or more processors to at least:
- select a general matrix-to-matrix multiply (GEMM) implementation to be performed from among a plurality of GEMM implementations based, at least in part, on a parameter received by the API, wherein the API uses additional parameters to indicate:
- a number of rows of a matrix;
- a number of columns of the matrix;
- a leading dimension of the matrix;
- a transform operation to be performed;
- and
- an output location, wherein the output location identifies a buffer in which to store a matrix product result of the GEMM implementation to be performed.
A computer-implemented method comprising:
- selecting, in response to an application programming interface (API) call, a general matrix-to-matrix multiply (GEMM) implementation to be performed from among a plurality of GEMM implementations based, at least in part, on one or more additional parameters received by the API call, wherein the API call uses additional parameters, the one or more additional parameters to indicate:
- a number of rows of a matrix;
- a number of columns of the matrix;
- a leading dimension of the matrix;
- a transform operation to be performed;
- and
- an output location, wherein the output location is to indicate one or more buffers to store a matrix product result of performing the GEMM implementation.
A system comprising:
- memory;
- one or more processors;
- and
- wherein the memory comprises an application programming interface (API), and in the response to an API call, select a general matrix-to-matrix multiply (GEMM) implementation to be performed by the one or more processors from among a plurality of GEMM implementations based, at least in part, on a parameter received by the API call, wherein the API call uses additional parameters to indicate:
- a number of rows of a matrix;
- a number of columns of the matrix;
- a leading dimension of the matrix;
- a transform operation to be performed;
- and
- an output location, wherein the output location identifies a buffer in which to store a matrix product result of the GEMM implementation to be performed.
One or more processors, comprising:
- circuitry to, in response to an application programming interface (API) call, select a general matrix-to-matrix multiply (GEMM) implementation to be performed from among a plurality of GEMM implementations based, at least in part, on a parameter received by the API call, wherein the API call uses additional parameters to indicate:
- a number of rows of a matrix;
- a number of columns of the matrix;
- a leading dimension of the matrix;
- a transform operation to be performed;
- and
- an output location, wherein the output location identifies a buffer in which to store a matrix product result of the GEMM implementation to be performed.
Dependencies are inferred from the claim text.