oneapi::mkl::sparse::set_matmat_data#

実行される sparse::matmat 操作を反映する oneapi::mkl::sparse::matmat_descr_t オブジェクト内の oneapi::mkl::sparse::matrix_view_descr および oneapi::mkl::transpose の値を設定します。\(C = \text{op}(A) \cdot \text{op}(B)\).

説明#

oneapi::mkl::sparse::set_matmat_data ルーチンを使用すると、ユーザーは、sparse::matmat ルーチンで使用される oneapi::mkl::sparse::matmat_descr_t オブジェクト内のスパース行列 - スパース行列演算を設定できます。

列挙のクラス oneapi::mkl::sparse::matrix_view_descr は、oneapi/mkl/spblas.hppヘッダーファイルで定義されています。

namespace oneapi::mkl::sparse { 
    enum class matrix_view_descr : std::int32_t { 
        general 
    }; 
}

一般ビューでは、行列の下部、対角部分、上部のすべてのデータが sparse::matrix_handle_t オブジェクトに入力されていると想定されます。matmat 記述子の一般的な使用モデルは次のとおりです:

using namespace oneapi::mkl; 
sparse::matmat_descr_t descr = nullptr; 
sparse::init_matmat_descr(&descr); 

// 一般的な記述例 
// C = A * B 
sparse::matrix_view_descr viewA = sparse::matrix_view_descr::general; 
sparse::matrix_view_descr viewB = sparse::matrix_view_descr::general; 
sparse::matrix_view_descr viewC = sparse::matrix_view_descr::general; 
transpose opA = transpose::nontrans; 
transpose opB = transpose::nontrans; 

sparse::set_matmat_data(descr, viewA, opA, viewB, opB, viewC); 

// sparse::matmat() API で descr を使用 
sparse::release_matmat_descr(&descr);

API#

構文#

namespace oneapi::mkl::sparse { 
    void set_matmat_descr ( 
        sparse::matmat_descr_t descr, 
        sparse::matrix_view_descr viewA, 
        transpose opA, 
        sparse::matrix_view_descr viewB, 
        transpose opB, 
        sparse::matrix_view_descr viewC); 
}

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

  • oneapi/mkl/spblas.hpp

入力パラメーター#

viewA、viewB、viewC

sparse::matrix_view_descr 列挙値は、\(A\)\(B\) および \(C\) 行列の表現方法を記述します。現在は一般タイプのみがサポートされています。

opA, opB

入力行列に対する演算 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 のみです。

出力パラメーター#

descr

sparse::matmat_descr_t オブジェクトは、sparse::matmat ルーチンによって実行されるスパース行列 - スパース行列演算を定義するために使用されます。