Visible to Intel only — GUID: GUID-B633E4C5-98F2-4FFC-ABCB-6028CCA230D7
Visible to Intel only — GUID: GUID-B633E4C5-98F2-4FFC-ABCB-6028CCA230D7
omatcopy
Computes an out-of-place scaled matrix transpose or copy operation using a general matrix.
Description
The omatcopy routine performs an out-of-place scaled matrix copy or transposition. The operation is defined as:
where:
op(X) is one of op(X) = X, or op(X) = XT, or op(X) = XH
alpha is a scalar
A and B are matrices
A is m x n matrix
B is m x n matrix if op is non-transpose and an n x m matrix otherwise.
omatcopy supports the following precisions:
T |
---|
float |
double |
std::complex<float> |
std::complex<double> |
omatcopy (Buffer Version)
Syntax
namespace oneapi::mkl::blas::column_major {
void omatcopy(sycl::queue &queue,
oneapi::mkl::transpose trans,
std::int64_t m,
std::int64_t n,
T alpha,
sycl::buffer<T, 1> &a,
std::int64_t lda,
sycl::buffer<T, 1> &b,
std::int64_t ldb);
}
namespace oneapi::mkl::blas::row_major {
void omatcopy(sycl::queue &queue,
oneapi::mkl::transpose trans,
std::int64_t m,
std::int64_t n,
T alpha,
sycl::buffer<T, 1> &a,
std::int64_t lda,
sycl::buffer<T, 1> &b,
std::int64_t ldb);
}
Input Parameters
- queue
-
The queue where the routine will be executed.
- trans
-
Specifies op(A), the transposition operation applied to the matrix A. See Data Types for more details.
- m
-
Number of rows for the matrix A. Must be at least zero.
- n
-
Number of columns for the matrix A. Must be at least zero.
- alpha
-
Scaling factor for the matrix transposition or copy.
- a
-
Buffer holding the input matrix A. Must have size at least lda * n for column-major and at least lda * m for row-major.
- lda
-
Leading dimension of the matrix A. If matrices are stored using column major layout, lda must be at least m. If matrices are stored using row major layout, lda must be at least n. Must be positive.
- ldb
-
Leading dimension of the matrix B. Must be positive.
trans = transpose::nontrans
trans = transpose::trans or trans = transpose::conjtrans
Column major
Must be at least m
Must be at least n
Row major
Must be at least n
Must be at least m
Output Parameters
- b
-
Output buffer, overwritten by alpha * op(A).
trans = transpose::nontrans
trans = transpose::trans or trans = transpose::conjtrans
Column major
B is m x n matrix. Size of array b must be at least ldb * n
B is n x m matrix. Size of array a must be at least ldb * m
Row major
B is m x n matrix. Size of array b must be at least ldb * m
B is n x m matrix. Size of array b must be at least ldb * n
omatcopy (USM Version)
Syntax
USM arrays:
namespace oneapi::mkl::blas::column_major {
sycl::event omatcopy(sycl::queue &queue,
oneapi::mkl::transpose trans,
std::int64_t m,
std::int64_t n,
oneapi::mkl::value_or_pointer<T> alpha,
const T *a,
std::int64_t lda,
T *b,
std::int64_t ldb,
const std::vector<sycl::event> &dependencies = {});
}
namespace oneapi::mkl::blas::row_major {
sycl::event omatcopy(sycl::queue &queue,
oneapi::mkl::transpose trans,
std::int64_t m,
std::int64_t n,
oneapi::mkl::value_or_pointer<T> alpha,
const T *a,
std::int64_t lda,
T *b,
std::int64_t ldb,
const std::vector<sycl::event> &dependencies = {});
}
Input Parameters
- queue
-
The queue where the routine will be executed.
- trans
-
Specifies op(A), the transposition operation applied to matrix A. See Data Types for more details.
- m
-
Number of rows for the matrix A. Must be at least zero.
- n
-
Number of columns for the matrix A. Must be at least zero.
- alpha
-
Scaling factor for the matrix transposition or copy. See Scalar Arguments for more information on the value_or_pointer data type.
- a
-
Pointer to input matrix A. Must have size at least lda * n for column-major and at least lda * m for row-major.
- lda
-
Leading dimension of the matrix A. If matrices are stored using column major layout, lda must be at least m. If matrices are stored using row major layout, lda must be at least n. Must be positive.
- ldb
-
Leading dimension of the matrix B. Must be positive.
trans = transpose::nontrans
trans = transpose::trans or trans = transpose::conjtrans
Column major
Must be at least m
Must be at least n
Row major
Must be at least n
Must be at least m
- dependencies
-
List of events to wait for before starting computation, if any. If omitted, defaults to no dependencies.
Output Parameters
- b
-
Pointer to output matrix B overwritten by alpha * op(A).
trans = transpose::nontrans
trans = transpose::trans or trans = transpose::conjtrans
Column major
B is m x n matrix. Size of array b must be at least ldb * n
B is n x m matrix. Size of array a must be at least ldb * m
Row major
B is m x n matrix. Size of array b must be at least ldb * m
B is n x m matrix. Size of array b must be at least ldb * n
Return Values
Output event to wait for to ensure computation is complete.