Skip to content

Commit

Permalink
Update documentation
Browse files Browse the repository at this point in the history
GitHub Actions committed Dec 18, 2024
1 parent 06453fc commit 6ced423
Showing 6 changed files with 102 additions and 140 deletions.
20 changes: 12 additions & 8 deletions _sources/building_the_project_with_dpcpp.rst
Original file line number Diff line number Diff line change
@@ -121,6 +121,9 @@ The most important supported build options are:
* - ENABLE_ROCRAND_BACKEND
- True, False
- False
* - ENABLE_ROCSPARSE_BACKEND
- True, False
- False
* - ENABLE_MKLCPU_THREAD_TBB
- True, False
- True
@@ -197,14 +200,14 @@ Building for ROCm
^^^^^^^^^^^^^^^^^

The ROCm backends can be enabled with ``ENABLE_ROCBLAS_BACKEND``,
``ENABLE_ROCFFT_BACKEND``, ``ENABLE_ROCSOLVER_BACKEND`` and
``ENABLE_ROCRAND_BACKEND``.
``ENABLE_ROCFFT_BACKEND``, ``ENABLE_ROCSOLVER_BACKEND``,
``ENABLE_ROCRAND_BACKEND``, and ``ENABLE_ROCSPARSE_BACKEND``.

For *RocBLAS*, *RocSOLVER* and *RocRAND*, the target device architecture must be
set. This can be set with using the ``HIP_TARGETS`` parameter. For example, to
enable a build for MI200 series GPUs, ``-DHIP_TARGETS=gfx90a`` should be set.
Currently, DPC++ can only build for a single HIP target at a time. This may
change in future versions.
For *RocBLAS*, *RocSOLVER*, *RocRAND*, and *RocSPARSE*, the target device
architecture must be set. This can be set with using the ``HIP_TARGETS``
parameter. For example, to enable a build for MI200 series GPUs,
``-DHIP_TARGETS=gfx90a`` should be set. Currently, DPC++ can only build for a
single HIP target at a time. This may change in future versions.

A few often-used architectures are listed below:

@@ -393,7 +396,8 @@ disabled:
-DENABLE_MKLGPU_BACKEND=False \
-DENABLE_ROCFFT_BACKEND=True \
-DENABLE_ROCBLAS_BACKEND=True \
-DENABLE_ROCSOLVER_BACKEND=True \
-DENABLE_ROCSOLVER_BACKEND=True \
-DENABLE_ROCSPARSE_BACKEND=True \
-DHIP_TARGETS=gfx90a \
-DBUILD_FUNCTIONAL_TESTS=False
46 changes: 46 additions & 0 deletions _sources/domains/sparse_linear_algebra.rst
Original file line number Diff line number Diff line change
@@ -68,6 +68,31 @@ Currently known limitations:
``cusparseSpMV_preprocess``. Feel free to create an issue if this is needed.


rocSPARSE backend
----------------

Currently known limitations:

- Using ``spmv`` with a ``type_view`` other than ``matrix_descr::general`` will
throw a ``oneapi::math::unimplemented`` exception.
- The COO format requires the indices to be sorted by row then by column. See
the `rocSPARSE COO documentation
<https://rocm.docs.amd.com/projects/rocSPARSE/en/latest/how-to/basics.html#coo-storage-format>`_.
Sparse operations using matrices with the COO format without the property
``matrix_property::sorted`` will throw a ``oneapi::math::unimplemented``
exception.
- The CSR format requires the column indices to be sorted within each row. See
the `rocSPARSE CSR documentation
<https://rocm.docs.amd.com/projects/rocSPARSE/en/latest/how-to/basics.html#csr-storage-format>`_.
Sparse operations using matrices with the CSR format without the property
``matrix_property::sorted`` will throw a ``oneapi::math::unimplemented``
exception.
- The same sparse matrix handle cannot be reused for multiple operations
``spmm``, ``spmv``, or ``spsv``. Doing so will throw a
``oneapi::math::unimplemented`` exception. See `#332
<https://github.com/ROCm/rocSPARSE/issues/332>`_.


Operation algorithms mapping
----------------------------

@@ -89,33 +114,43 @@ spmm
* - ``spmm_alg`` value
- MKLCPU/MKLGPU
- cuSPARSE
- rocSPARSE
* - ``default_alg``
- none
- ``CUSPARSE_SPMM_ALG_DEFAULT``
- ``rocsparse_spmm_alg_default``
* - ``no_optimize_alg``
- none
- ``CUSPARSE_SPMM_ALG_DEFAULT``
- ``rocsparse_spmm_alg_default``
* - ``coo_alg1``
- none
- ``CUSPARSE_SPMM_COO_ALG1``
- ``rocsparse_spmm_alg_coo_segmented``
* - ``coo_alg2``
- none
- ``CUSPARSE_SPMM_COO_ALG2``
- ``rocsparse_spmm_alg_coo_atomic``
* - ``coo_alg3``
- none
- ``CUSPARSE_SPMM_COO_ALG3``
- ``rocsparse_spmm_alg_coo_segmented_atomic``
* - ``coo_alg4``
- none
- ``CUSPARSE_SPMM_COO_ALG4``
- ``rocsparse_spmm_alg_default``
* - ``csr_alg1``
- none
- ``CUSPARSE_SPMM_CSR_ALG1``
- ``rocsparse_spmm_alg_csr``
* - ``csr_alg2``
- none
- ``CUSPARSE_SPMM_CSR_ALG2``
- ``rocsparse_spmm_alg_csr_row_split``
* - ``csr_alg3``
- none
- ``CUSPARSE_SPMM_CSR_ALG3``
- ``rocsparse_spmm_alg_csr_merge``


spmv
@@ -128,27 +163,35 @@ spmv
* - ``spmv_alg`` value
- MKLCPU/MKLGPU
- cuSPARSE
- rocSPARSE
* - ``default_alg``
- none
- ``CUSPARSE_SPMV_ALG_DEFAULT``
- ``rocsparse_spmv_alg_default``
* - ``no_optimize_alg``
- none
- ``CUSPARSE_SPMV_ALG_DEFAULT``
- ``rocsparse_spmv_alg_default``
* - ``coo_alg1``
- none
- ``CUSPARSE_SPMV_COO_ALG1``
- ``rocsparse_spmv_alg_coo``
* - ``coo_alg2``
- none
- ``CUSPARSE_SPMV_COO_ALG2``
- ``rocsparse_spmv_alg_coo_atomic``
* - ``csr_alg1``
- none
- ``CUSPARSE_SPMV_CSR_ALG1``
- ``rocsparse_spmv_alg_csr_adaptive``
* - ``csr_alg2``
- none
- ``CUSPARSE_SPMV_CSR_ALG2``
- ``rocsparse_spmv_alg_csr_stream``
* - ``csr_alg3``
- none
- ``CUSPARSE_SPMV_ALG_DEFAULT``
- ``rocsparse_spmv_alg_csr_lrb``


spsv
@@ -161,9 +204,12 @@ spsv
* - ``spsv_alg`` value
- MKLCPU/MKLGPU
- cuSPARSE
- rocSPARSE
* - ``default_alg``
- none
- ``CUSPARSE_SPSV_ALG_DEFAULT``
- ``rocsparse_spsv_alg_default``
* - ``no_optimize_alg``
- none
- ``CUSPARSE_SPSV_ALG_DEFAULT``
- ``rocsparse_spsv_alg_default``
31 changes: 18 additions & 13 deletions building_the_project_with_dpcpp.html
Original file line number Diff line number Diff line change
@@ -510,27 +510,31 @@ <h2> Contents </h2>
<td><p>True, False</p></td>
<td><p>False</p></td>
</tr>
<tr class="row-even"><td><p>ENABLE_MKLCPU_THREAD_TBB</p></td>
<tr class="row-even"><td><p>ENABLE_ROCSPARSE_BACKEND</p></td>
<td><p>True, False</p></td>
<td><p>False</p></td>
</tr>
<tr class="row-odd"><td><p>ENABLE_MKLCPU_THREAD_TBB</p></td>
<td><p>True, False</p></td>
<td><p>True</p></td>
</tr>
<tr class="row-odd"><td><p>ENABLE_PORTBLAS_BACKEND</p></td>
<tr class="row-even"><td><p>ENABLE_PORTBLAS_BACKEND</p></td>
<td><p>True, False</p></td>
<td><p>False</p></td>
</tr>
<tr class="row-even"><td><p>ENABLE_PORTFFT_BACKEND</p></td>
<tr class="row-odd"><td><p>ENABLE_PORTFFT_BACKEND</p></td>
<td><p>True, False</p></td>
<td><p>False</p></td>
</tr>
<tr class="row-odd"><td><p>BUILD_FUNCTIONAL_TESTS</p></td>
<tr class="row-even"><td><p>BUILD_FUNCTIONAL_TESTS</p></td>
<td><p>True, False</p></td>
<td><p>True</p></td>
</tr>
<tr class="row-even"><td><p>BUILD_EXAMPLES</p></td>
<tr class="row-odd"><td><p>BUILD_EXAMPLES</p></td>
<td><p>True, False</p></td>
<td><p>True</p></td>
</tr>
<tr class="row-odd"><td><p>TARGET_DOMAINS (list)</p></td>
<tr class="row-even"><td><p>TARGET_DOMAINS (list)</p></td>
<td><p>blas, lapack, rng, dft, sparse_blas</p></td>
<td><p>All domains</p></td>
</tr>
@@ -576,13 +580,13 @@ <h2>Backends<a class="headerlink" href="#backends" title="Link to this heading">
<section id="building-for-rocm">
<span id="build-for-rocm-dpcpp"></span><h3>Building for ROCm<a class="headerlink" href="#building-for-rocm" title="Link to this heading">#</a></h3>
<p>The ROCm backends can be enabled with <code class="docutils literal notranslate"><span class="pre">ENABLE_ROCBLAS_BACKEND</span></code>,
<code class="docutils literal notranslate"><span class="pre">ENABLE_ROCFFT_BACKEND</span></code>, <code class="docutils literal notranslate"><span class="pre">ENABLE_ROCSOLVER_BACKEND</span></code> and
<code class="docutils literal notranslate"><span class="pre">ENABLE_ROCRAND_BACKEND</span></code>.</p>
<p>For <em>RocBLAS</em>, <em>RocSOLVER</em> and <em>RocRAND</em>, the target device architecture must be
set. This can be set with using the <code class="docutils literal notranslate"><span class="pre">HIP_TARGETS</span></code> parameter. For example, to
enable a build for MI200 series GPUs, <code class="docutils literal notranslate"><span class="pre">-DHIP_TARGETS=gfx90a</span></code> should be set.
Currently, DPC++ can only build for a single HIP target at a time. This may
change in future versions.</p>
<code class="docutils literal notranslate"><span class="pre">ENABLE_ROCFFT_BACKEND</span></code>, <code class="docutils literal notranslate"><span class="pre">ENABLE_ROCSOLVER_BACKEND</span></code>,
<code class="docutils literal notranslate"><span class="pre">ENABLE_ROCRAND_BACKEND</span></code>, and <code class="docutils literal notranslate"><span class="pre">ENABLE_ROCSPARSE_BACKEND</span></code>.</p>
<p>For <em>RocBLAS</em>, <em>RocSOLVER</em>, <em>RocRAND</em>, and <em>RocSPARSE</em>, the target device
architecture must be set. This can be set with using the <code class="docutils literal notranslate"><span class="pre">HIP_TARGETS</span></code>
parameter. For example, to enable a build for MI200 series GPUs,
<code class="docutils literal notranslate"><span class="pre">-DHIP_TARGETS=gfx90a</span></code> should be set. Currently, DPC++ can only build for a
single HIP target at a time. This may change in future versions.</p>
<p>A few often-used architectures are listed below:</p>
<table class="table">
<thead>
@@ -753,6 +757,7 @@ <h2>Backends<a class="headerlink" href="#backends" title="Link to this heading">
<span class="w"> </span>-DENABLE_ROCFFT_BACKEND<span class="o">=</span>True<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>-DENABLE_ROCBLAS_BACKEND<span class="o">=</span>True<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>-DENABLE_ROCSOLVER_BACKEND<span class="o">=</span>True<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>-DENABLE_ROCSPARSE_BACKEND<span class="o">=</span>True<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>-DHIP_TARGETS<span class="o">=</span>gfx90a<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>-DBUILD_FUNCTIONAL_TESTS<span class="o">=</span>False
</pre></div>
142 changes: 24 additions & 118 deletions domains/sparse_linear_algebra.html
Original file line number Diff line number Diff line change
@@ -365,6 +365,7 @@ <h2> Contents </h2>
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#onemkl-intel-cpu-and-gpu-backends">OneMKL Intel CPU and GPU backends</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#cusparse-backend">cuSPARSE backend</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#rocsparse-backend">rocSPARSE backend</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#operation-algorithms-mapping">Operation algorithms mapping</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#spmm">spmm</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#spmv">spmv</a></li>
@@ -433,7 +434,7 @@ <h2>cuSPARSE backend<a class="headerlink" href="#cusparse-backend" title="Link t
<code class="docutils literal notranslate"><span class="pre">opB=transpose::trans</span></code> and real fp64 precision will throw a
<code class="docutils literal notranslate"><span class="pre">oneapi::math::unimplemented</span></code> exception. This configuration can fail as of
CUDA 12.6.2, see the related issue
<a href="#id1"><span class="problematic" id="id2">`here&lt;https://forums.developer.nvidia.com/t/cusparse-spmm-sample-failing-with-misaligned-address/311022&gt;`_</span></a>.</p></li>
<a href="#id2"><span class="problematic" id="id3">`here&lt;https://forums.developer.nvidia.com/t/cusparse-spmm-sample-failing-with-misaligned-address/311022&gt;`_</span></a>.</p></li>
<li><p>Using <code class="docutils literal notranslate"><span class="pre">spmv</span></code> with a <code class="docutils literal notranslate"><span class="pre">type_view</span></code> other than <code class="docutils literal notranslate"><span class="pre">matrix_descr::general</span></code> will
throw a <code class="docutils literal notranslate"><span class="pre">oneapi::math::unimplemented</span></code> exception.</p></li>
<li><p>Using <code class="docutils literal notranslate"><span class="pre">spsv</span></code> with the algorithm <code class="docutils literal notranslate"><span class="pre">spsv_alg::no_optimize_alg</span></code> may still
@@ -443,6 +444,27 @@ <h2>cuSPARSE backend<a class="headerlink" href="#cusparse-backend" title="Link t
<code class="docutils literal notranslate"><span class="pre">cusparseSpMV_preprocess</span></code>. Feel free to create an issue if this is needed.</p></li>
</ul>
</section>
<section id="rocsparse-backend">
<h2>rocSPARSE backend<a class="headerlink" href="#rocsparse-backend" title="Link to this heading">#</a></h2>
<p>Currently known limitations:</p>
<ul class="simple">
<li><p>Using <code class="docutils literal notranslate"><span class="pre">spmv</span></code> with a <code class="docutils literal notranslate"><span class="pre">type_view</span></code> other than <code class="docutils literal notranslate"><span class="pre">matrix_descr::general</span></code> will
throw a <code class="docutils literal notranslate"><span class="pre">oneapi::math::unimplemented</span></code> exception.</p></li>
<li><p>The COO format requires the indices to be sorted by row then by column. See
the <a class="reference external" href="https://rocm.docs.amd.com/projects/rocSPARSE/en/latest/how-to/basics.html#coo-storage-format">rocSPARSE COO documentation</a>.
Sparse operations using matrices with the COO format without the property
<code class="docutils literal notranslate"><span class="pre">matrix_property::sorted</span></code> will throw a <code class="docutils literal notranslate"><span class="pre">oneapi::math::unimplemented</span></code>
exception.</p></li>
<li><p>The CSR format requires the column indices to be sorted within each row. See
the <a class="reference external" href="https://rocm.docs.amd.com/projects/rocSPARSE/en/latest/how-to/basics.html#csr-storage-format">rocSPARSE CSR documentation</a>.
Sparse operations using matrices with the CSR format without the property
<code class="docutils literal notranslate"><span class="pre">matrix_property::sorted</span></code> will throw a <code class="docutils literal notranslate"><span class="pre">oneapi::math::unimplemented</span></code>
exception.</p></li>
<li><p>The same sparse matrix handle cannot be reused for multiple operations
<code class="docutils literal notranslate"><span class="pre">spmm</span></code>, <code class="docutils literal notranslate"><span class="pre">spmv</span></code>, or <code class="docutils literal notranslate"><span class="pre">spsv</span></code>. Doing so will throw a
<code class="docutils literal notranslate"><span class="pre">oneapi::math::unimplemented</span></code> exception. See <a class="reference external" href="https://github.com/ROCm/rocSPARSE/issues/332">#332</a>.</p></li>
</ul>
</section>
<section id="operation-algorithms-mapping">
<h2>Operation algorithms mapping<a class="headerlink" href="#operation-algorithms-mapping" title="Link to this heading">#</a></h2>
<p>The following tables describe how a oneMath algorithm maps to the backend’s
@@ -452,129 +474,12 @@ <h2>Operation algorithms mapping<a class="headerlink" href="#operation-algorithm
behavior.</p>
<section id="spmm">
<h3>spmm<a class="headerlink" href="#spmm" title="Link to this heading">#</a></h3>
<table class="table">
<colgroup>
<col style="width: 11.8%" />
<col style="width: 35.3%" />
<col style="width: 52.9%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">spmm_alg</span></code> value</p></th>
<th class="head"><p>MKLCPU/MKLGPU</p></th>
<th class="head"><p>cuSPARSE</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">default_alg</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMM_ALG_DEFAULT</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">no_optimize_alg</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMM_ALG_DEFAULT</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">coo_alg1</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMM_COO_ALG1</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">coo_alg2</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMM_COO_ALG2</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">coo_alg3</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMM_COO_ALG3</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">coo_alg4</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMM_COO_ALG4</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">csr_alg1</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMM_CSR_ALG1</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">csr_alg2</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMM_CSR_ALG2</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">csr_alg3</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMM_CSR_ALG3</span></code></p></td>
</tr>
</tbody>
</table>
</section>
<section id="spmv">
<h3>spmv<a class="headerlink" href="#spmv" title="Link to this heading">#</a></h3>
<table class="table">
<colgroup>
<col style="width: 11.8%" />
<col style="width: 35.3%" />
<col style="width: 52.9%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">spmv_alg</span></code> value</p></th>
<th class="head"><p>MKLCPU/MKLGPU</p></th>
<th class="head"><p>cuSPARSE</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">default_alg</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMV_ALG_DEFAULT</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">no_optimize_alg</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMV_ALG_DEFAULT</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">coo_alg1</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMV_COO_ALG1</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">coo_alg2</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMV_COO_ALG2</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">csr_alg1</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMV_CSR_ALG1</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">csr_alg2</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMV_CSR_ALG2</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">csr_alg3</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPMV_ALG_DEFAULT</span></code></p></td>
</tr>
</tbody>
</table>
</section>
<section id="spsv">
<h3>spsv<a class="headerlink" href="#spsv" title="Link to this heading">#</a></h3>
<table class="table">
<colgroup>
<col style="width: 11.8%" />
<col style="width: 35.3%" />
<col style="width: 52.9%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">spsv_alg</span></code> value</p></th>
<th class="head"><p>MKLCPU/MKLGPU</p></th>
<th class="head"><p>cuSPARSE</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">default_alg</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPSV_ALG_DEFAULT</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">no_optimize_alg</span></code></p></td>
<td><p>none</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">CUSPARSE_SPSV_ALG_DEFAULT</span></code></p></td>
</tr>
</tbody>
</table>
</section>
</section>
</section>
@@ -626,6 +531,7 @@ <h3>spsv<a class="headerlink" href="#spsv" title="Link to this heading">#</a></h
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#onemkl-intel-cpu-and-gpu-backends">OneMKL Intel CPU and GPU backends</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#cusparse-backend">cuSPARSE backend</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#rocsparse-backend">rocSPARSE backend</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#operation-algorithms-mapping">Operation algorithms mapping</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#spmm">spmm</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#spmv">spmv</a></li>
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -424,6 +424,7 @@ <h2>Contents<a class="headerlink" href="#contents" title="Link to this heading">
<li class="toctree-l1"><a class="reference internal" href="domains/sparse_linear_algebra.html">Sparse Linear Algebra</a><ul>
<li class="toctree-l2"><a class="reference internal" href="domains/sparse_linear_algebra.html#onemkl-intel-cpu-and-gpu-backends">OneMKL Intel CPU and GPU backends</a></li>
<li class="toctree-l2"><a class="reference internal" href="domains/sparse_linear_algebra.html#cusparse-backend">cuSPARSE backend</a></li>
<li class="toctree-l2"><a class="reference internal" href="domains/sparse_linear_algebra.html#rocsparse-backend">rocSPARSE backend</a></li>
<li class="toctree-l2"><a class="reference internal" href="domains/sparse_linear_algebra.html#operation-algorithms-mapping">Operation algorithms mapping</a></li>
</ul>
</li>
2 changes: 1 addition & 1 deletion searchindex.js

Large diffs are not rendered by default.

0 comments on commit 6ced423

Please sign in to comment.