omatcopy#

一般行列を使用して、アウトオブプレースでスケールされた行列の転置またはコピー操作を計算します。

説明#

omatcopy ルーチンは、アウトオブプレースでスケールされた行列のコピーまたは転置を実行します。操作はのように定義されています。

\[B \leftarrow alpha*op(A)\]

説明:

  • op(X) は、op(X) = X、op(X) = XT、または op(X) = XH のいずれかです

  • alpha はスカラーです

  • A および B は行列です

  • Am x n の行列です

  • op が転置でない場合は Bm x n 行列、それ以外の場合は n x m 行列になります。

omatcopy は次の精度をサポートします。

T

float

double

std::complex<float>

std::complex<double>

omatcopy (バッファーバージョン)#

構文#

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);
}

入力パラメーター#

queue

ルーチンが実行されるキュー。

trans

行列 A に適用される転置演算 op(A) を指定します。詳細については、データタイプを参照してください。

m

行列 A の行数。最小値は 0 です。

n

行列 A の列数。最小値は 0 です。

alpha

行列の転置またはコピーのスケーリング係数。

a

入力行列 A を保持するバッファー。列優先の場合は lda * n 以上、行優先の場合は lda * m 以上のサイズが必要です。

lda

行列 A の先頭次元。行列が列優先レイアウトで保存される場合、ldam 以上である必要があります。行列が行優先レイアウトで保存される場合、ldan 以上である必要があります。正である必要があります。

ldb

行列 B の先頭次元。正である必要があります。

trans = transpose::nontrans

trans = transpose::trans または trans = transpose::conjtrans

列優先

m 以上である必要があります

n 以上である必要があります

行優先

n 以上である必要があります

m 以上である必要があります

出力パラメーター#

b

出力バッファーは alpha * op(A) で、上書きされます。

trans = transpose::nontrans

trans = transpose::trans または trans = transpose::conjtrans

列優先

Bm x n の行列です。配列 b のサイズは ldb * n 以上でなければなりません

Bn x m の行列です。配列 a のサイズは ldb * m 以上でなければなりません

行優先

Bm x n の行列です。配列 b のサイズは ldb * m 以上でなければなりません

Bn x m の行列です。配列 b のサイズは ldb * n 以上でなければなりません

omatcopy (USM バージョン)#

構文#

USM 配列:

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 = {}); 
}

入力パラメーター#

queue

ルーチンが実行されるキュー。

trans

行列 A に適用される転置演算 op(A) を指定します。詳細はデータタイプを参照してください。

m

行列 A の行数。最小値は 0 です。

n

行列 A の列数。最小値は 0 です。

alpha

行列の転置またはコピーのスケーリング係数。value_or_pointer データタイプの詳細については、スカラー引数を参照してください。

a

入力行列 A へのポインター。列優先の場合は lda * n 以上、行優先の場合は lda * m 以上のサイズが必要です。

lda

行列 A の先頭次元。行列が列優先レイアウトで保存される場合、ldam 以上である必要があります。行列が行優先レイアウトで保存される場合、ldan 以上である必要があります。正である必要があります。

ldb

行列 B の先頭次元。正である必要があります。

trans = transpose::nontrans

trans = transpose::trans または trans = transpose::conjtrans

列優先

m 以上である必要があります

n 以上である必要があります

行優先

n 以上である必要があります

m 以上である必要があります

dependencies

計算を開始する前に待機するイベントのリスト (存在する場合)。省略した場合、依存関係はデフォルトでなくなります。

出力パラメーター#

b

alpha * op(B) で上書きされた出力行列 A へのポインター。

trans = transpose::nontrans

trans = transpose::trans または trans = transpose::conjtrans

列優先

Bm x n の行列です。配列 b のサイズは ldb * n 以上でなければなりません

Bn x m の行列です。配列 a のサイズは ldb * m 以上でなければなりません

行優先

Bm x n の行列です。配列 b のサイズは ldb * m 以上でなければなりません

Bn x m の行列です。配列 b のサイズは ldb * n 以上でなければなりません

戻り値#

計算が完了したことを確認するために待機する出力イベント。