From 2372ca044e06b984c6b3020ec8b5c8acc2f6023d Mon Sep 17 00:00:00 2001 From: "romain.biessy" Date: Mon, 27 May 2024 16:13:32 +0200 Subject: [PATCH 1/8] [oneMKL][spblas] Restrict features not supported by any backends --- .../domains/spblas/data_types/set_coo_matrix_data.rst | 8 ++++---- .../oneMKL/source/domains/spblas/matrix_view.rst | 9 ++------- .../oneMKL/source/domains/spblas/operations/spmm.rst | 4 +++- .../oneMKL/source/domains/spblas/operations/spmv.rst | 4 +++- .../oneMKL/source/domains/spblas/operations/spsv.rst | 4 ++-- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/source/elements/oneMKL/source/domains/spblas/data_types/set_coo_matrix_data.rst b/source/elements/oneMKL/source/domains/spblas/data_types/set_coo_matrix_data.rst index a6dba2712..744d1ae47 100644 --- a/source/elements/oneMKL/source/domains/spblas/data_types/set_coo_matrix_data.rst +++ b/source/elements/oneMKL/source/domains/spblas/data_types/set_coo_matrix_data.rst @@ -52,12 +52,12 @@ set_coo_matrix_data (Buffer version) .. rubric:: Template parameters dataType - See :ref:`supported template types`. Can be - a different type than what was used when creating the ``matrix_handle_t``. + See :ref:`supported template types`. Must + be the same type than what was used when creating the ``matrix_handle_t``. indexType - See :ref:`supported template types`. Can be - a different type than what was used when creating the ``matrix_handle_t``. + See :ref:`supported template types`. Must + be the same type than what was used when creating the ``matrix_handle_t``. .. container:: section diff --git a/source/elements/oneMKL/source/domains/spblas/matrix_view.rst b/source/elements/oneMKL/source/domains/spblas/matrix_view.rst index c69069c58..0c0bb6535 100644 --- a/source/elements/oneMKL/source/domains/spblas/matrix_view.rst +++ b/source/elements/oneMKL/source/domains/spblas/matrix_view.rst @@ -84,10 +84,8 @@ matrix_view See :ref:`onemkl_sparse_matrix_descriptor`, :ref:`onemkl_enum_uplo` and :ref:`onemkl_enum_diag` for a description of the members. - The ``uplo_view`` member is ignored if ``type_view`` is ``general`` or - ``diagonal``. - - The ``diag_view`` member is ignored if ``type_view`` is ``general``. + Each operation documents which combination of ``type_view``, ``uplo_view`` + and ``diag_view`` are valid. .. rubric:: Syntax @@ -124,7 +122,4 @@ matrix_view the other members are initialized to the same value as the default constructor. - If the ``matrix_desc`` is ``diagonal``, ``diag_view`` is initialized to - ``diag::unit``. - **Parent topic:** :ref:`onemkl_spblas` diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst b/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst index 5bfb5d515..e8078e8da 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst @@ -302,7 +302,9 @@ spmm A_view Specifies which part of the handle should be read as described by - :ref:`onemkl_sparse_matrix_view`. + :ref:`onemkl_sparse_matrix_view`. The ``type_view`` field must be + ``matrix_descr::general`` and the ``uplo_view`` and ``diag_view`` fields + are ignored. A_handle Sparse matrix handle object representing :math:`A`. diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst b/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst index 5287b3a85..9a2bb6f8f 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst @@ -292,7 +292,9 @@ spmv A_view Specifies which part of the handle should be read as described by - :ref:`onemkl_sparse_matrix_view`. + :ref:`onemkl_sparse_matrix_view`. The ``type_view`` field cannot be + ``matrix_descr::diagonal``. The ``diag_view`` field can be ``diag::unit`` + if and only if ``type_view`` is ``matrix_descr::triangular``. A_handle Sparse matrix handle object representing :math:`A`. diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst b/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst index 1ddb9bf11..7e843a742 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst @@ -283,8 +283,8 @@ spsv A_view Specifies which part of the handle should be read as described by - :ref:`onemkl_sparse_matrix_view`. ``A_view.type_view`` must be - ``matrix_descr::triangular`` or ``matrix_descr::diagonal``. + :ref:`onemkl_sparse_matrix_view`. The ``type_view`` field must be + ``matrix_descr::triangular``. A_handle Sparse matrix handle object representing :math:`A`. From 1fdd42d6cb0c400b1ff7c4821a63d6bff1c79d4b Mon Sep 17 00:00:00 2001 From: "romain.biessy" Date: Tue, 28 May 2024 12:26:31 +0200 Subject: [PATCH 2/8] Require same types for all handles --- .../spblas/data_types/set_coo_matrix_data.rst | 12 ++++++------ .../spblas/data_types/set_csr_matrix_data.rst | 16 ++++++++-------- .../spblas/data_types/set_dense_matrix_data.rst | 10 ++++------ .../spblas/data_types/set_dense_vector_data.rst | 10 ++++------ 4 files changed, 22 insertions(+), 26 deletions(-) diff --git a/source/elements/oneMKL/source/domains/spblas/data_types/set_coo_matrix_data.rst b/source/elements/oneMKL/source/domains/spblas/data_types/set_coo_matrix_data.rst index 744d1ae47..a12311d31 100644 --- a/source/elements/oneMKL/source/domains/spblas/data_types/set_coo_matrix_data.rst +++ b/source/elements/oneMKL/source/domains/spblas/data_types/set_coo_matrix_data.rst @@ -53,11 +53,11 @@ set_coo_matrix_data (Buffer version) dataType See :ref:`supported template types`. Must - be the same type than what was used when creating the ``matrix_handle_t``. + be the same type as was used when creating the ``matrix_handle_t``. indexType See :ref:`supported template types`. Must - be the same type than what was used when creating the ``matrix_handle_t``. + be the same type as was used when creating the ``matrix_handle_t``. .. container:: section @@ -150,12 +150,12 @@ set_coo_matrix_data (USM version) .. rubric:: Template parameters dataType - See :ref:`supported template types`. Can be - a different type than what was used when creating the ``matrix_handle_t``. + See :ref:`supported template types`. Must + be the same type as was used when creating the ``matrix_handle_t``. indexType - See :ref:`supported template types`. Can be - a different type than what was used when creating the ``matrix_handle_t``. + See :ref:`supported template types`. Must + be the same type as was used when creating the ``matrix_handle_t``. .. container:: section diff --git a/source/elements/oneMKL/source/domains/spblas/data_types/set_csr_matrix_data.rst b/source/elements/oneMKL/source/domains/spblas/data_types/set_csr_matrix_data.rst index 3a28785d0..8b9527755 100644 --- a/source/elements/oneMKL/source/domains/spblas/data_types/set_csr_matrix_data.rst +++ b/source/elements/oneMKL/source/domains/spblas/data_types/set_csr_matrix_data.rst @@ -52,12 +52,12 @@ set_csr_matrix_data (Buffer version) .. rubric:: Template parameters dataType - See :ref:`supported template types`. Can be - a different type than what was used when creating the ``matrix_handle_t``. + See :ref:`supported template types`. Must + be the same type as was used when creating the ``matrix_handle_t``. indexType - See :ref:`supported template types`. Can be - a different type than what was used when creating the ``matrix_handle_t``. + See :ref:`supported template types`. Must + be the same type as was used when creating the ``matrix_handle_t``. .. container:: section @@ -149,12 +149,12 @@ set_csr_matrix_data (USM version) .. rubric:: Template parameters dataType - See :ref:`supported template types`. Can be - a different type than what was used when creating the ``matrix_handle_t``. + See :ref:`supported template types`. Must + be the same type as was used when creating the ``matrix_handle_t``. indexType - See :ref:`supported template types`. Can be - a different type than what was used when creating the ``matrix_handle_t``. + See :ref:`supported template types`. Must + be the same type as was used when creating the ``matrix_handle_t``. .. container:: section diff --git a/source/elements/oneMKL/source/domains/spblas/data_types/set_dense_matrix_data.rst b/source/elements/oneMKL/source/domains/spblas/data_types/set_dense_matrix_data.rst index c75a80e74..0eab72f6b 100644 --- a/source/elements/oneMKL/source/domains/spblas/data_types/set_dense_matrix_data.rst +++ b/source/elements/oneMKL/source/domains/spblas/data_types/set_dense_matrix_data.rst @@ -50,9 +50,8 @@ set_dense_matrix_data (Buffer version) .. rubric:: Template parameters dataType - See :ref:`supported template types`. Can be - a different type than what was used when creating the - ``dense_matrix_handle_t``. + See :ref:`supported template types`. Must + be the same type as was used when creating the ``dense_matrix_handle_t``. .. container:: section @@ -123,9 +122,8 @@ set_dense_matrix_data (USM version) .. rubric:: Template parameters dataType - See :ref:`supported template types`. Can be - a different type than what was used when creating the - ``dense_matrix_handle_t``. + See :ref:`supported template types`. Must + be the same type as was used when creating the ``dense_matrix_handle_t``. .. container:: section diff --git a/source/elements/oneMKL/source/domains/spblas/data_types/set_dense_vector_data.rst b/source/elements/oneMKL/source/domains/spblas/data_types/set_dense_vector_data.rst index 844e73bf7..c882f0707 100644 --- a/source/elements/oneMKL/source/domains/spblas/data_types/set_dense_vector_data.rst +++ b/source/elements/oneMKL/source/domains/spblas/data_types/set_dense_vector_data.rst @@ -47,9 +47,8 @@ set_dense_vector_data (Buffer version) .. rubric:: Template parameters dataType - See :ref:`supported template types`. Can be - a different type than what was used when creating the - ``dense_vector_handle_t``. + See :ref:`supported template types`. Must + be the same type as was used when creating the ``dense_vector_handle_t``. .. container:: section @@ -105,9 +104,8 @@ set_dense_vector_data (USM version) .. rubric:: Template parameters dataType - See :ref:`supported template types`. Can be - a different type than what was used when creating the - ``dense_vector_handle_t``. + See :ref:`supported template types`. Must + be the same type as was used when creating the ``dense_vector_handle_t``. .. container:: section From 471a11d6366ed0d6c869c39b9d2756473a709036 Mon Sep 17 00:00:00 2001 From: "romain.biessy" Date: Thu, 6 Jun 2024 17:52:52 +0200 Subject: [PATCH 3/8] Disallow symmetric/hermitian matrices with conjtrans --- .../elements/oneMKL/source/domains/spblas/operations/spmv.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst b/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst index 9a2bb6f8f..b080c580f 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst @@ -294,7 +294,9 @@ spmv Specifies which part of the handle should be read as described by :ref:`onemkl_sparse_matrix_view`. The ``type_view`` field cannot be ``matrix_descr::diagonal``. The ``diag_view`` field can be ``diag::unit`` - if and only if ``type_view`` is ``matrix_descr::triangular``. + if and only if ``type_view`` is ``matrix_descr::triangular``. The + ``type_view`` field cannot be ``matrix_descr::symmetric`` nor + ``matrix_descr::hermitian`` if ``opA`` is ``transpose::conjtrans``. A_handle Sparse matrix handle object representing :math:`A`. From 0f57b1c00ce08c4e0f6a1a90df2bcc3c1377f87b Mon Sep 17 00:00:00 2001 From: "romain.biessy" Date: Tue, 30 Jul 2024 17:56:10 +0200 Subject: [PATCH 4/8] Clarify when should the data be available on device --- .../elements/oneMKL/source/domains/spblas/operations/spmm.rst | 2 ++ .../elements/oneMKL/source/domains/spblas/operations/spmv.rst | 2 ++ .../elements/oneMKL/source/domains/spblas/operations/spsv.rst | 2 ++ 3 files changed, 6 insertions(+) diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst b/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst index e8078e8da..5c7abc2f9 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst @@ -276,6 +276,8 @@ spmm - The data of the dense handles ``B_handle`` and ``C_handle`` and the scalars ``alpha`` and ``beta`` can be reset before each call to ``spmm``. Changing the data of the sparse handle ``A_handle`` is undefined behavior. + - The data must be available on the device when calling ``spmm_optimize`` by + using event dependencies if needed. - ``spmm_optimize`` and ``spmm`` are asynchronous. - The algorithm defaults to ``spmm_alg::default_alg`` if a backend does not support the provided algorithm. diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst b/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst index b080c580f..451a1d0c2 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst @@ -270,6 +270,8 @@ spmv - The data of the dense handles ``x_handle`` and ``y_handle`` and the scalars ``alpha`` and ``beta`` can be reset before each call to ``spmv``. Changing the data of the sparse handle ``A_handle`` is undefined behavior. + - The data must be available on the device when calling ``spmv_optimize`` by + using event dependencies if needed. - ``spmv_optimize`` and ``spmv`` are asynchronous. - The algorithm defaults to ``spmv_alg::default_alg`` if a backend does not support the provided algorithm. diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst b/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst index 7e843a742..c15c002e2 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst @@ -261,6 +261,8 @@ spsv - The data of the dense handle ``x_handle`` and scalar ``alpha`` can be reset before each call to ``spsv``. Changing the data of the sparse handle ``A_handle`` is undefined behavior. + - The data must be available on the device when calling ``spsv_optimize`` by + using event dependencies if needed. - ``spsv_optimize`` and ``spsv`` are asynchronous. - The algorithm defaults to ``spsv_alg::default_alg`` if a backend does not support the provided algorithm. From fec841e3886f0572a75ce3a9f05064ac3642ef14 Mon Sep 17 00:00:00 2001 From: "romain.biessy" Date: Mon, 26 Aug 2024 15:12:41 +0200 Subject: [PATCH 5/8] Revert "Disallow symmetric/hermitian matrices with conjtrans" This reverts commit 471a11d6366ed0d6c869c39b9d2756473a709036. --- .../elements/oneMKL/source/domains/spblas/operations/spmv.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst b/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst index 451a1d0c2..57eb10908 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst @@ -296,9 +296,7 @@ spmv Specifies which part of the handle should be read as described by :ref:`onemkl_sparse_matrix_view`. The ``type_view`` field cannot be ``matrix_descr::diagonal``. The ``diag_view`` field can be ``diag::unit`` - if and only if ``type_view`` is ``matrix_descr::triangular``. The - ``type_view`` field cannot be ``matrix_descr::symmetric`` nor - ``matrix_descr::hermitian`` if ``opA`` is ``transpose::conjtrans``. + if and only if ``type_view`` is ``matrix_descr::triangular``. A_handle Sparse matrix handle object representing :math:`A`. From fda9f80c8c37d47afbea48cc2db8e9df0b6a6024 Mon Sep 17 00:00:00 2001 From: "romain.biessy" Date: Mon, 26 Aug 2024 20:02:11 +0200 Subject: [PATCH 6/8] Clarify the behavior of calling functions in the wrong order --- .../oneMKL/source/domains/spblas/operations/spmm.rst | 8 ++++++++ .../oneMKL/source/domains/spblas/operations/spmv.rst | 8 ++++++++ .../oneMKL/source/domains/spblas/operations/spsv.rst | 8 ++++++++ 3 files changed, 24 insertions(+) diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst b/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst index 5c7abc2f9..fe3d7130d 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst @@ -273,6 +273,14 @@ spmm before ``spmm`` with the same arguments. ``spmm`` can then be called multiple times. Calling ``spmm_optimize`` on the same descriptor can reset some of the descriptor's data such as the ``workspace``. + - In the general case, not calling the functions in the order specified above + is undefined behavior. Not calling ``spmm_buffer_size`` or + ``spmm_optimize`` at least once will throw an + :ref:`oneapi::mkl::uninitialized` + exception. Calling ``spmm`` with arguments not matching ``spmm_optimize`` + will throw an + :ref:`oneapi::mkl::invalid_argument` + exception, unless stated otherwise. - The data of the dense handles ``B_handle`` and ``C_handle`` and the scalars ``alpha`` and ``beta`` can be reset before each call to ``spmm``. Changing the data of the sparse handle ``A_handle`` is undefined behavior. diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst b/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst index 57eb10908..11f5720c1 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst @@ -267,6 +267,14 @@ spmv before ``spmv`` with the same arguments. ``spmv`` can then be called multiple times. Calling ``spmv_optimize`` on the same descriptor can reset some of the descriptor's data such as the ``workspace``. + - In the general case, not calling the functions in the order specified above + is undefined behavior. Not calling ``spmv_buffer_size`` or + ``spmv_optimize`` at least once will throw an + :ref:`oneapi::mkl::uninitialized` + exception. Calling ``spmv`` with arguments not matching ``spmv_optimize`` + will throw an + :ref:`oneapi::mkl::invalid_argument` + exception, unless stated otherwise. - The data of the dense handles ``x_handle`` and ``y_handle`` and the scalars ``alpha`` and ``beta`` can be reset before each call to ``spmv``. Changing the data of the sparse handle ``A_handle`` is undefined behavior. diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst b/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst index c15c002e2..af3d9bda5 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst @@ -258,6 +258,14 @@ spsv before ``spsv`` with the same arguments. ``spsv`` can then be called multiple times. Calling ``spsv_optimize`` on the same descriptor can reset some of the descriptor's data such as the ``workspace``. + - In the general case, not calling the functions in the order specified above + is undefined behavior. Not calling ``spsv_buffer_size`` or + ``spsv_optimize`` at least once will throw an + :ref:`oneapi::mkl::uninitialized` + exception. Calling ``spsv`` with arguments not matching ``spsv_optimize`` + will throw an + :ref:`oneapi::mkl::invalid_argument` + exception, unless stated otherwise. - The data of the dense handle ``x_handle`` and scalar ``alpha`` can be reset before each call to ``spsv``. Changing the data of the sparse handle ``A_handle`` is undefined behavior. From b3eb26b577e60ea089e47cd306468c194ce8bc63 Mon Sep 17 00:00:00 2001 From: "romain.biessy" Date: Mon, 2 Sep 2024 11:05:11 +0200 Subject: [PATCH 7/8] Clarify when exceptions are thrown --- .../elements/oneMKL/source/domains/spblas/operations/spmm.rst | 2 +- .../elements/oneMKL/source/domains/spblas/operations/spmv.rst | 2 +- .../elements/oneMKL/source/domains/spblas/operations/spsv.rst | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst b/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst index fe3d7130d..fc9d6bfa8 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spmm.rst @@ -275,7 +275,7 @@ spmm some of the descriptor's data such as the ``workspace``. - In the general case, not calling the functions in the order specified above is undefined behavior. Not calling ``spmm_buffer_size`` or - ``spmm_optimize`` at least once will throw an + ``spmm_optimize`` at least once with a given descriptor will throw an :ref:`oneapi::mkl::uninitialized` exception. Calling ``spmm`` with arguments not matching ``spmm_optimize`` will throw an diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst b/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst index 11f5720c1..991f363e8 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spmv.rst @@ -269,7 +269,7 @@ spmv some of the descriptor's data such as the ``workspace``. - In the general case, not calling the functions in the order specified above is undefined behavior. Not calling ``spmv_buffer_size`` or - ``spmv_optimize`` at least once will throw an + ``spmv_optimize`` at least once with a given descriptor will throw an :ref:`oneapi::mkl::uninitialized` exception. Calling ``spmv`` with arguments not matching ``spmv_optimize`` will throw an diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst b/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst index af3d9bda5..e0b8a04a8 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst @@ -260,7 +260,7 @@ spsv some of the descriptor's data such as the ``workspace``. - In the general case, not calling the functions in the order specified above is undefined behavior. Not calling ``spsv_buffer_size`` or - ``spsv_optimize`` at least once will throw an + ``spsv_optimize`` at least once with a given descriptor will throw an :ref:`oneapi::mkl::uninitialized` exception. Calling ``spsv`` with arguments not matching ``spsv_optimize`` will throw an From 96b30890d61c52b31a88bb616faa80f1e198193c Mon Sep 17 00:00:00 2001 From: "romain.biessy" Date: Mon, 2 Sep 2024 11:22:24 +0200 Subject: [PATCH 8/8] Clarify diag_view can be set with spsv --- .../elements/oneMKL/source/domains/spblas/operations/spsv.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst b/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst index e0b8a04a8..61201c330 100644 --- a/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst +++ b/source/elements/oneMKL/source/domains/spblas/operations/spsv.rst @@ -294,7 +294,8 @@ spsv A_view Specifies which part of the handle should be read as described by :ref:`onemkl_sparse_matrix_view`. The ``type_view`` field must be - ``matrix_descr::triangular``. + ``matrix_descr::triangular``. The ``diag_view`` field can be + ``diag::nonunit`` or ``diag::unit``. A_handle Sparse matrix handle object representing :math:`A`.