oneapi::mkl::sparse::set_coo_data#

行列ハンドルとユーザー指定の座標 (COO) 行列形式の配列を受け取り、行列ハンドルの内部 COO データ構造を入力します。

説明#

oneapi::mkl::sparse::set_coo_data ルーチンは、COO 形式で表される nrows x ncols 次元のスパース行列の sparse::matrix_handle_t を受け取り、行列ハンドルの内部状態をユーザーが指定した COO 形式の配列で埋めます。sparse::matrix_handle_t オブジェクトの使い方に関する詳細は、ユーザー/ライブラリーの規約を参照してください。

サポートされている <DATA_TYPE><INT_TYPE> データタイプと整数タイプの一覧については、Sparse BLAS でサポートされているデータと整数タイプを参照してください。また、スローされる可能性のある例外の詳細については、エラー処理を参照してください。

API#

構文

SYCL* バッファーを使用:

namespace oneapi::mkl:sparse { 
    void set_coo_data ( 
        sycl::queue &queue, 
        oneapi::mkl::sparse::matrix_handle_t spMat, 
        const INT_TYPE nrows, 
        const INT_TYPE ncols, 
        const INT_TYPE nnz, 
        oneapi::mkl::index_base index, 
        sycl::buffer<INT_TYPE, 1> &row_ind, 
        sycl::buffer<INT_TYPE, 1> &col_ind, 
        sycl::buffer<DATA_TYPE, 1> &values); 
}

USM ポインターを使用:

namespace oneapi::mkl:sparse { 

    sycl::event set_coo_data ( 
        sycl::queue &queue, 
        oneapi::mkl::sparse::matrix_handle_t spMat, 
        const INT_TYPE nrows, 
        const INT_TYPE ncols, 
        const INT_TYPE nnz, 
        oneapi::mkl::index_base index, 
        INT_TYPE *row_ind, 
        INT_TYPE *col_ind, 
        DATA_TYPE *values, 
        const std::vector<sycl::event> &dependencies = {} ); 
}

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

  • oneapi/mkl/spblas.hpp

入力パラメーター#

queue

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

spMat

後続のスパース BLAS が操作するスパース行列およびその他の内部データを含むオブジェクトへのハンドル。

nrows

入力行列の行数。

ncols

入力行列の列数。

nnz

入力行列内の非ゼロの要素数。

index

入力配列のインデックスの方法を示します。

oneapi::mkl::index_base::zero

ゼロベース (C スタイル) のインデックス: インデックスは 0 から始まります。

oneapi::mkl::index_base::one

1 ベース (Fortran スタイル) のインデックス: インデックスは 1 から始まります。

row_ind

index ベースの番号付けで行インデックスを含む配列を格納する、長さ nnz の SYCL* メモリー・オブジェクト。SYCL* バッファーまたはデバイスがアクセス可能な USM ポインターである可能性があります。row_indの詳細については、スパースストレージ形式を参照してください。

col_ind

index ベースの番号付けで列インデックスを含む配列を格納する、長さ nnz の SYCL* メモリー・オブジェクト。SYCL* バッファーまたはデバイスがアクセス可能な USM ポインターである可能性があります。col_indの詳細については、スパースストレージ形式を参照してください。

values

入力行列のゼロ以外の要素を含む配列を格納する SYCL* メモリー・オブジェクト。SYCL* バッファーまたはデバイスがアクセス可能な USM ポインターである可能性があります。valuesの詳細については、スパースストレージ形式を参照してください。

dependencies

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

入力 COO 配列の概要#

次の表に、COO 入力配列、サイズ、およびタイプ (スパース BLAS でサポートされるデータと整数タイプを参照) の概要を示します。非ゼロ、または略して nnz という用語を使用して、スパースストレージ形式で説明されている COO 行列形式によって表される行列とスパースパターンの要素数を参照します。

sycl::buffer 入力の場合、配列は sycl::buffer<T, 1> & タイプになります。

USM 入力の場合、配列はデバイスからアクセス可能で、T * タイプである必要があります。推奨される USM メモリーのタイプを次の表に示します。一般的に、USM デバイスメモリーを使用すると、USM 共有よりも優れたパフォーマンスが得られ、また USM ホストよりも優れたパフォーマンスが得られますが、すべてデバイスがアクセス可能でありすべてサポートされます。

array

長さ (要素)

T

USM メモリータイプ

row_ind

nnz

INT_TYPE

デバイスにアクセス可能(USM デバイス、または USM 共有、または USM ホスト)

col_ind

nnz

INT_TYPE

デバイスにアクセス可能(USM デバイス、または USM 共有、または USM ホスト)

values

nnz

DATA_TYPE

デバイスにアクセス可能(USM デバイス、または USM 共有、または USM ホスト)

出力パラメーター#

spMat

後続の DPC++ スパース BLAS が操作するスパース行列とその他の内部データを含むオブジェクトへのハンドル。

sycl::event

USM API のみ。入力依存関係のイベントチェーンを継続する API 呼び出し中にキューに投入された非同期イベントの完了を追跡する sycl::event