oneapi::mkl::sparse::gemvdot#
ドット積を使用して、スパース行列とデンスベクトルのドット積を計算します。
説明#
注
サポートされている <DATA_TYPE> と <INT_TYPE> データタイプと整数タイプの一覧については、Sparse BLAS でサポートされているデータと整数タイプを参照してください。また、スローされる可能性のある例外の詳細については、エラー処理を参照してください。
oneapi::mkl::sparse::gemvdot ルーチンは、次のように定義されるスパース行列とデンスベクトルのドット積を計算します
ここで、\(A\) は一般スパース行列、\(\alpha\)、\(\beta\)、\(d\) はスカラー、\(x\) と \(y\) はデンスベクトル、\(op()\) は行列修飾子です:
API#
構文#
SYCL* バッファーを使用:
namespace oneapi::mkl::sparse {
void gemvdot (
sycl::queue &queue,
oneapi::mkl::transpose opA,
const DATA_TYPE alpha,
oneapi::mkl::sparse::matrix_handle_t A,
sycl::buffer<DATA_TYPE, 1> &x,
const DATA_TYPE beta,
sycl::buffer<DATA_TYPE, 1> &y,
sycl::buffer<DATA_TYPE, 1> &d)
}USM ポインターを使用:
namespace oneapi::mkl::sparse {
sycl::event gemvdot (
sycl::queue &queue,
oneapi::mkl::transpose opA,
const DATA_TYPE alpha,
oneapi::mkl::sparse::matrix_handle_t A,
const DATA_TYPE *x,
const DATA_TYPE beta,
DATA_TYPE *y,
DATA_TYPE *d,
const std::vector<sycl::event> &dependencies={})
}インクルード・ファイル#
oneapi/mkl/spblas.hpp
入力パラメーター#
- queue
SYCL* カーネルの実行に使用される SYCL* コマンドキューを指定します。
- opA
入力行列に対する演算
op()を指定します。oneapi::mkl::transpose::nontrans非転置、\(\text{op}(A) = A\)。
oneapi::mkl::transpose::trans転置、\(\text{op}(A) = A^{T}\)。
oneapi::mkl::transpose::conjtrans共役転置、\(\text{op}(A) = A^{H}\)。
注
現在、サポートされている操作は
oneapi::mkl::transpose::nontransのみです。- alpha
スカラー \(\alpha\) を指定します。
- A
スパース行列およびその他の内部データを含むオブジェクトへのハンドル。
oneapi::mkl::sparse::set_<sparse_matrix_type>_dataルーチンの 1 つを使用して作成されます。注
<sparse_matrix_type>でサポートされるケースは、CPU と GPU デバイスではcsr、CPU デバイスではcooのみです。- x
opA==oneapi::mkl::transpose::nontransの場合は少なくとも入力行列の列数に等しく、それ以外の場合は少なくとも入力行列の行数に等しいサイズの SYCL* バッファーまたはデバイスがアクセス可能な USM ポインターです。- beta
スカラー \(\beta\) を指定します。
- y
opA==oneapi::mkl::transpose::nontransの場合は少なくとも入力行列の行数に等しく、それ以外の場合は少なくとも入力行列の列数に等しいサイズの SYCL* バッファーまたはデバイスがアクセス可能な USM ポインターです。- dependencies
oneapi::mkl::sparse::gemvdotルーチンが依存するイベントのリストを含む、std::vector<sycl::event>タイプのベクトル。
出力パラメーター#
- y
更新されたベクトル \(y\) によって上書きされます。
- d
\(x\) と \(y\) のドット積で上書きされます。
戻り値#
sycl::eventgemvdotルーチンの完了を待機したり、依存関係として追加できる SYCL* イベント。
例#
SYCL バッファーで oneapi::mkl::sparse::gemvdot を使用する例は、oneMKL インストール・ディレクトリーの以下の場所にあります。
share/doc/mkl/examples/sycl/sparse_blas/source/csr_gemvdot.cpp