gemv#

一般行列を使用して行列 - ベクトル積を計算します。

説明#

gemv ルーチンは、スカラー - 行列 - ベクトル積を計算し、その結果を一般行列に加算します。操作はのように定義されています。

\[y \leftarrow alpha*op(A)*x + beta*y\]

説明:

  • op(A) は、op(A) = A、op(A) = AT、または op(A) = AH のいずれかです

  • alphabeta はスカラーです

  • Am x n の行列です

  • xy はベクトルです

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

T

float

double

std::complex<float>

std::complex<double>

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

構文#

namespace oneapi::mkl::blas::column_major { 
    void gemv(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> &x, 
              std::int64_t incx, 
              T beta, 
              sycl::buffer<T,1> &y, 
              std::int64_t incy) 
}
namespace oneapi::mkl::blas::row_major { 
    void gemv(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> &x, 
              std::int64_t incx, 
              T beta, 
              sycl::buffer<T,1> &y, 
              std::int64_t incy) 
}

入力パラメーター#

queue

ルーチンを実行するキュー。

trans

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

m

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

n

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

alpha

行列 - ベクトル積のスケーリング係数。

a

入力行列 A を保持するバッファー。バッファーのサイズは、列優先レイアウトの場合は lda * n 以上、行優先レイアウトの場合は lda * m 以上である必要があります。行列ストレージを参照してください。

lda

行列 A の先頭次元。列優先レイアウトの場合は正の値で m 以上、行優先レイアウトの場合は n 以上である必要があります。

x

入力ベクトル x を保持するバッファー。ベクトルx の長さ len は、A が転置されていない場合は n であり、A が転置されている場合は m です。バッファーのサイズは (1 + (len - 1)*abs(incx) 以上である必要があります。行列ストレージを参照してください。

incx

ベクトル x のストライド。ゼロであってはなりません。

beta

ベクトル y のスケーリング係数。beta = 0 の場合、gemv を呼び出す前にベクトル y を初期化する必要はありません。

y

入力/出力ベクトル y を保持するバッファー。ベクトルy の長さ len は、A が転置されていない場合は m であり、A が転置されている場合は n です。バッファーのサイズは (1 + (len - 1)*abs(incy) 以上である必要があります。行列ストレージを参照してください。

incy

ベクトル y のストライド。ゼロであってはなりません。

出力パラメーター#

y

更新されたベクトル y を保持するバッファー。

#

gemv の使用例は、oneMKL インストール・ディレクトリーの以下の場所にあります。

share/doc/mkl/examples/sycl/blas/source/gemv.cpp

gemv (USM バージョン)#

構文#

namespace oneapi::mkl::blas::column_major { 
    sycl::event gemv(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, 
                     const T *x, 
                     std::int64_t incx, 
                     oneapi::mkl::value_or_pointer<T> beta, 
                     T *y, 
                     std::int64_t incy, 
                     const std::vector<sycl::event> &dependencies = {}) 
}
namespace oneapi::mkl::blas::row_major { 
    sycl::event gemv(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, 
                     const T *x, 
                     std::int64_t incx, 
                     oneapi::mkl::value_or_pointer<T> beta, 
                     T *y, 
                     std::int64_t incy, 
                     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 の先頭次元。列優先レイアウトの場合は正の値で m 以上、行優先レイアウトの場合は n 以上である必要があります。

x

入力ベクトル x へのポインター。ベクトルx の長さ len は、A が転置されていない場合は n であり、A が転置されている場合は m です。ベクトル x を保持する配列のサイズは、(1 + (len - 1)*abs(incx)) 以上である必要があります。行列ストレージを参照してください。

incx

ベクトル x のストライド。ゼロであってはなりません。

beta

ベクトル y のスケーリング係数。beta = 0 の場合、gemv を呼び出す前にベクトル y を初期化する必要はありません。value_or_pointer データタイプの詳細については、スカラー引数を参照してください。

y

入力/出力ベクトル y へのポインター。ベクトルy の長さ len は、A が転置されていない場合は m であり、A が転置されている場合は n です。入力/出力ベクトル y を保持する配列のサイズは、(1 + (len - 1)*abs(incy)) 以上である必要があります。行列ストレージを参照してください。

incy

ベクトル y のストライド。ゼロであってはなりません。

dependencies

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

出力パラメーター#

y

更新されたベクトル y へのポインター。

戻り値#

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