oneapi::mkl::sparse::update_diagonal_values#

スパース行列の主対角線上のエントリー値を変更します。このルーチンは、すでに行われた最適化に関連するデータ構造も更新します (oneapi::mkl::sparse::optimize_trsvoneapi::mkl::sparse::optimize_gemv など)。

説明#

oneapi::mkl::sparse::update_diagonal_values ルーチンは、スパース行列の主対角線上のエントリー値を変更します。既存のスパース構造には、スパースパターンにすべての対角エントリーがすでに含まれている必要があります。

スローされる例外の詳細は、エラー処理を参照してください。

API#

構文#

SYCL* バッファーを使用:

 namespace oneapi::mkl::sparse { 
    void update_diagonal_values( 
        sycl::queue &queue, 
        oneapi::mkl::sparse::matrix_handle_t spMat, 
        sycl::buffer<DATA_TYPE, 1> &new_diag_values); 
}

USM ポインターを使用:

 namespace oneapi::mkl::sparse { 
    sycl::event update_diagonal_values( 
        sycl::queue &queue, 
        oneapi::mkl::sparse::matrix_handle_t spMat, 
        std::int64_t length, 
        const DATA_TYPE* new_diag_values, 
        const std::vector<sycl::event> &dependencies = {}); 
}

インクルード・ファイル#

  • oneapi/mkl/spblas.hpp

入力パラメーター#

queue

SYCL* カーネルの実行に使用される SYCL* コマンドキューを指定します。

spMat

スパース行列およびその他の内部データを含むオブジェクトへのハンドル。oneapi::mkl::sparse::set_<sparse_matrix_type>_data ルーチンの 1 つを使用して作成されます。

現在、<sparse_matrix_type> でサポートされているは csr のみです。現在、GPU デバイスのみがサポートされています。

new_diag_values

入力行列の行数と列数のうち小さい方のサイズ以上の SYCL* バッファーまたはデバイスがアクセス可能な USM ポインター。

length

入力ベクトル new_diag_values の長さ。入力行列の行数と列数のうち小さい方のサイズと等しい必要があります。

dependencies

oneapi::mkl::sparse::update_diagonal_values ルーチンが依存するイベントのリストを含む、std::vector<sycl::event> タイプのベクトル。

戻り値 (USM のみ)#

sycl::event

update_diagonal_values ルーチンの完了を待機したり、依存関係として追加できる SYCL* イベント。