getrf (USM Version)#
Computes the LU factorization of a general m-by-n matrix. This routine
belongs to the oneapi::mkl::lapack namespace.
Description#
The routine computes the LU factorization of a general
m-by-n matrix A as
where P is a permutation matrix, L is lower triangular with
unit diagonal elements (lower trapezoidal if m > n) and U is
upper triangular (upper trapezoidal if m < n). The routine uses
partial pivoting, with row interchanges.
API#
Syntax#
namespace oneapi::mkl::lapack {
sycl::event getrf(sycl::queue &queue,
int64_t m,
int64_t n,
T *a,
int64_t lda,
int64_t *ipiv,
T *scratchpad,
int64_t scratchpad_size,
const std::vector<sycl::event> &events = {})
}
getrf (USM version) supports the following precisions and
devices:
T |
Devices supported |
|---|---|
|
CPU, GPU* |
|
CPU, GPU* |
|
CPU, GPU* |
|
CPU, GPU* |
*Hybrid support; some computations are performed on the CPU.
Input Parameters#
- queue
Device queue where calculations will be performed.
- m
The number of rows in the matrix
A(0 ≤ m).- n
The number of columns in the matrix
A(0 ≤ n).- a
Pointer to the array holding input matrix
A. The array must be of size at leastlda * max(1, n).- lda
The leading dimension of
a(lda≥max(1, m)).- scratchpad
Pointer to scratchpad memory to be used by the routine for storing intermediate results.
- scratchpad_size
Size of scratchpad memory as a number of floating point elements of type
T. Size must not be less than the value returned by the getrf_scratchpad_size function.- events
List of events to wait for before starting computation. Defaults to empty list.
Output Parameters#
- a
Overwritten by
LandU. The unit diagonal elements ofLare not stored.- ipiv
Array, size at least
max(1,min(m,n)).Contains the pivot indices; for
1 ≤ i ≤ min(m,n), rowiwas interchanged with rowipiv(i).
Exceptions#
Exception |
Description |
|---|---|
|
This exception is thrown when problems occur during calculations. You can obtain the info code of the problem using the info() method of the exception object: If If If |
Return Values#
Output event to wait on to ensure computation is complete.