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