Files
TheRock/rocm-libraries/projects/hipsparse/CHANGELOG.md
T
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

14 KiB

Changelog for hipSPARSE

Documentation for hipSPARSE is available at https://rocm.docs.amd.com/projects/hipSPARSE/en/latest/.

(Unreleased) hipSPARSE 4.7.0

Added

  • Added Blocked ELL format support to the hipsparseDenseToSparse routine, along with the new hipsparseBlockedEllSetPointers function.
  • Added the HIPSPARSE_SPMV_CSR_ALG3 algorithm to hipsparseSpMV, which exposes the rocSPARSE CSR nnz split algorithm (rocsparse_spmv_alg_csr_nnzsplit).
  • Added CSC format support to hipsparseSpSV.
  • Added CSC format support to hipsparseSpSM.

Resolved issues

  • Fixed an issue with hipsparseSpMM, which produced incorrect results for the Blocked ELL sparse format.

hipSPARSE 4.6.0 for ROCm 7.14

Added

  • Added hipsparseCreateBsr and hipsparseCreateConstBsr in order to enable BSR format support in generic routines.
  • Added BSR format support to hipsparseSpMV.
  • Added BSR format support to hipsparseSpMM.

Resolved issues

  • Fixed an issue where calling hipsparseSpMV multiple times with different hipsparseOperation_t, hipsparseSpMVAlg_t, or compute-datatypes using the same sparse matrix descriptor resulted in errors.

Upcoming changes

  • The routines hipsparseXcsrgeamNnz, hipsparseScsrgeam, hipsparseDcsrgeam, hipsparseCcsrgeam, and hipsparseZcsrgeam have been deprecated and will be removed in a future release. Use hipsparseScsrgeam2_bufferSizeExt, hipsparseDcsrgeam2_bufferSizeExt, hipsparseCcsrgeam2_bufferSizeExt, hipsparseZcsrgeam2_bufferSizeExt, hipsparseXcsrgeam2Nnz, hipsparseScsrgeam2, hipsparseDcsrgeam2, hipsparseCcsrgeam2, and hipsparseZcsrgeam2 instead.

hipSPARSE 4.5.0 for ROCm 7.12.0

Added

  • For sparse matrix vector product (hipsparseSpMV), when using HIPSPARSE_SPMV_ALG_DEFAULT, the routine now automatically falls back to a supported algorithm depending on the sparse matrix format and requested operation. For example, CSR format with transposed operations or CSC format with non-transposed operations will fall back to an appropriate algorithm.

Resolved issues

  • Fixed an issue where out-of-bounds memory reads can occur in the single precision bsrxmv kernels when block_dim equals 5 or 8.

hipSPARSE 4.4.0 for ROCm 7.11.0

Added

  • Added brain half float mixed precision to hipsparseSpMV where A, X, and Y use bfloat16 and the compute type uses float.
  • Added half float mixed precision to hipsparseSpMV where A, X, and Y use float16 and the compute type uses float.
  • Added brain half float mixed precision to hipsparseSpMM where A, B, and C use bfloat16 and the compute type use float.
  • Added half float mixed precision to hipsparseSpMM where A, B, and C use float16 and the compute type use float.
  • Added the debian, almalinux, rockylinux, and oraclelinux OS names to install script.
  • Added sliced ELL format support to the hipsparseSpMV routine.

Resolved issues

  • In hipsparseSpSM_solve(), the external buffer is passed as a parameter, which does not match the NVIDIA CUDA cuSPARSE API. The hipsparseSpSM_solve_ex() routine has been added to properly match the NVIDIA CUDA cuSPARSE cusparseSpSM_solve() API. The original hipsparseSpSM_solve() routine has been deprecated and will be removed in a future release.

Upcoming changes

  • The routine hipsparseSpSM_solve() has been deprecated and will be removed in a future release. Users should use hipsparseSpSM_solve_ex() instead.

hipSPARSE 4.2.0 for ROCm 7.2.0

Added

  • Added --clients-only option to the install.sh and rmake.py scripts to allow building only the clients while using an already installed version of hipSPARSE.

Optimized

  • Improved the user documentation.

Resolved issues

  • Fixed a memory leak in hipsparseCreate functions.

hipSPARSE 4.1.0 for ROCm 7.1.0

Added

  • Added brain half float mixed precision to hipsparseAxpby where X and Y use bfloat16 and result and the compute type use float.
  • Added brain half float mixed precision to hipsparseSpVV where X and Y use bfloat16 and result and the compute type use float.
  • Added brain half float mixed precision to hipsparseSpMV where A and X use bfloat16 and Y and the compute type use float.
  • Added brain half float mixed precision to hipsparseSpMM where A and B use bfloat16 and C and the compute type use float.
  • Added brain half float mixed precision to hipsparseSDDMM where A and B use bfloat16 and C and the compute type use float.
  • Added brain half float mixed precision to hipsparseSDDMM where A and B and C use bfloat16 and the compute type use float.
  • Added half float mixed precision to hipsparseSDDMM where A and B and C use float16 and the compute type use float.
  • Added brain half float uniform precision to hipsparseScatter and hipsparseGather routines.
  • Added documentation for installing and building hipSPARSE on Microsoft Windows.

hipSPARSE 4.0.1 for ROCm 7.0.0

Added

  • Add the int8, int32, and float16 data types to hipDataTypeToHCCDataType so that sparse matrix descriptors can be used with them.
  • Added half float mixed precision to hipsparseAxpby where X and Y use float16 and result and the compute type use float.
  • Added half float mixed precision to hipsparseSpVV where X and Y use float16 and result and the compute type use float.
  • Added half float mixed precision to hipsparseSpMM where A and B use float16 and C and the compute type use float.
  • Added half float mixed precision to hipsparseSDDMM where A and B use float16 and C and the compute type use float.
  • Added half float uniform precision to hipsparseScatter and hipsparseGather routines.
  • Added half float uniform precision to hipsparseSDDMM routine.
  • Add int8 precision to hipsparseCsr2cscEx2 routine.
  • Add the almalinux OS name to correct the gfortran dependency.

Changed

  • Switch to defaulting to C++17 when building hipSPARSE from source. Previously hipSPARSE was using C++14 by default.

Resolved issues

  • Fixed a compilation issue related to using std::filesystem and C++14.
  • Fixed the empty clients-common package by moving the hipsparse_clientmatrices.cmake and hipsparse_mtx2csr files to it.

Known issues

  • In hipsparseSpSM_solve(), the external buffer is passed as a parameter. This does not match the NVIDIA CUDA cuSPARSE API. This extra external buffer parameter will be removed in a future release. For now, this extra parameter can be ignored and nullptr passed because it is unused internally by hipsparseSpSM_solve().

hipSPARSE 3.2.0 for ROCm 6.4.0

Added

  • Added build dependencies for CentOS/RHEL 9 in install script

Changed

  • Moved the hipsparse_clientmatrices.cmake and hipsparse_mtx2csr files from the hipsparse-tests package to the hipsparse-clients-common package

Optimized

  • Removed unused GTest dependency from hipsparse-bench

Known issues

  • In hipsparseSpSM_solve(), the external buffer is passed as a parameter. This does not match the NVIDIA CUDA cuSPARSE API. This extra external buffer parameter will be removed in a future release. For now this extra parameter can be ignored and nullptr passed as it is unused internally by hipsparseSpSM_solve().

hipSPARSE 3.1.2 for ROCm 6.3.0

Added

  • Added an alpha version of the hipsparse-bench executable to facilitate comparing NVIDIA CUDA cuSPARSE and rocSPARSE backends

Changed

  • Changed the default compiler from hipcc to amdclang in the install script and cmake files.

Optimized

  • Improved the user documentation

Resolved issues

  • Fixed the gfortran dependency for the azurelinux operating system.

Known issues

  • In hipsparseSpSM_solve(), the external buffer is passed as a parameter. This does not match the NVIDIA CUDA cuSPARSE API. This extra external buffer parameter will be removed in a future release. For now this extra parameter can be ignored and nullptr passed as it is unused internally by hipsparseSpSM_solve().

hipSPARSE 3.1.1 for ROCm 6.2.0

Additions

  • Added missing hipsparseCscGet() routine

Changes

  • All internal hipSPARSE functions now exist inside a namespace
  • Match deprecations found in NVIDIA CUDA cuSPARSE 12.x.x when using NVIDIA CUDA cuSPARSE backend.

Fixes

  • Fixed SpGEMM and SpGEMM_reuse routines which were not matching NVIDIA CUDA cuSPARSE behaviour

Optimizations

  • Improved user manual
  • Improved contribution guidelines

Known issues

  • In hipsparseSpSM_solve(), we currently pass the external buffer as a parameter. This does not match the NVIDIA CUDA cuSPARSE API and this extra external buffer parameter will be removed in a future release. For now this extra parameter can be ignored and nullptr passed as it is unused internally by hipsparseSpSM_solve().

hipSPARSE 3.0.1 for ROCm 6.1.0

Fixes

  • Fixes to the build chain

hipSPARSE 3.0.0 for ROCm 6.0.0

Additions

  • Added hipsparseGetErrorName and hipsparseGetErrorString

Changes

  • Changed the hipsparseSpSV_solve() API function to match the NVIDIA CUDA cuSPARSE API
  • Changed generic API functions to use const descriptors
  • Improved documentation

hipSPARSE 2.3.8 for ROCm 5.7.0

Fixes

  • Compilation failures when using the NVIDIA CUDA cuSPARSE 12.1.0 and 12.0.0 backends
  • Compilation failures when using the NVIDIA CUDA cuSPARSE 10.1 (non-update version) backend

hipSPARSE 2.3.7 for ROCm 5.6.1

Fixes

  • Reverted an undocumented API change in hipSPARSE 2.3.6 that affected the hipsparseSpSV_solve function

hipSPARSE 2.3.6 for ROCm 5.6.0

Additions

  • Added SpGEMM algorithms

Changes

  • blockDim == 0 now returns HIPSPARSE_STATUS_INVALID_SIZE for hipsparseXbsr2csr and hipsparseXcsr2bsr

hipSPARSE 2.3.5 for ROCm 5.5.0

Fixes

  • Fixed an issue where the rocm folder was not removed after upgrading meta packages
  • Fixed a compilation issue with the NVIDIA CUDA cuSPARSE backend
  • Added more detailed messages for unit test failures due related to missing input data
  • Improved documentation
  • Fixed a bug with deprecation messages when using gcc9

hipSPARSE 2.3.3 for ROCm 5.4.0

Additions

  • Added hipsparseCsr2cscEx2_bufferSize and hipsparseCsr2cscEx2 routines

Changes

  • HIPSPARSE_ORDER_COLUMN has been renamed to HIPSPARSE_ORDER_COL in order to match NVIDIA CUDA cuSPARSE

hipSPARSE 2.3.1 for ROCm 5.3.0

Additions

  • Added SpMM and SpMM batched for CSC format

hipSPARSE 2.2.0 for ROCm 5.2.0

Additions

  • New packages for test and benchmark executables on all supported operating systems using CPack

hipSPARSE 2.1.0 for ROCm 5.1.0

Additions

  • Added gtsv_interleaved_batch and gpsv_interleaved_batch routines
  • Added SpGEMM_reuse

Changes

  • Changed BUILD_CUDA with USE_CUDA in the install script and CMake files
  • Updated GoogleTest to 11.1

Fixes

  • Fixed a bug in SpMM Alg versioning

hipSPARSE 2.0.0 for ROCm 5.0.0

Additions

  • Added (conjugate) transpose support for csrmv, hybmv, and spmv routines

hipSPARSE 1.11.2 for ROCm 4.5.0

Additions

  • Triangular solve for multiple right-hand sides using BSR format
  • SpMV for BSRX format
  • Enhanced SpMM in CSR format to work with transposed A
  • Matrix coloring for CSR matrices
  • Batched tridiagonal solve (gtsv_strided_batch)
  • SpMM for BLOCKED ELL format
  • Generic routines for SpSV and SpSM
  • Beta support for Windows 10
  • Additional atomic-based algorithms for SpMM in COO format
  • Additional algorithm for SpMM in CSR format

Changes

  • Packaging has been split into a runtime package (hipsparse) and a development package (hipsparse-devel): The development package depends on the runtime package. When installing the runtime package, the package manager will suggest the installation of the development package to aid users transitioning from the previous version's combined package. This suggestion by package manager is for all supported operating systems (except CentOS 7) to aid in the transition. The suggestion feature in the runtime package is introduced as a deprecated feature and will be removed in a future ROCm release.

  • GTest dependency has been updated to v1.10.0

Fixes

  • Fixed a bug with gemvi on Navi21

Optimizations

  • Optimization for pivot-based GTSV

hipSPARSE 1.10.7 for ROCm 4.3.0

Additions

  • Tridiagonal solve with and without pivoting (batched)
  • Dense matrix sparse vector multiplication (gemvi)
  • Sampled dense-dense matrix multiplication (sddmm)

hipSPARSE 1.10.6 for ROCm 4.2.0

Additions

  • Generic API support, including SpMM

hipSPARSE 1.10.4 for ROCm 4.1.0

Additions

  • Generic API support, including Axpby, Gather, Scatter, Rot, SpVV, SpMV, SparseToDense, DenseToSparse, and SpGEMM

hipSPARSE 1.9.6 for ROCm 4.0.0

Additions

  • Changelog file
  • csr2gebsr
  • gebsr2csr
  • gebsr2gebsc
  • gebsr2gebsr

Changes

  • Updates to Debian package name.

hipSPARSE 1.9.4 for ROCm 3.9

Additions

  • prune_csr2csr, prune_dense2csr_percentage and prune_csr2csr_percentage
  • bsrilu0

hipSPARSE 1.8.1 for ROCm 3.8

Additions

  • bsric0

hipSPARSE 1.7.1 for ROCm 3.7

Additions

  • Fortran bindings
  • Triangular solve for BSR format (bsrsv)
  • CentOS 6 support

hipSPARSE 1.7.1 for ROCm 3.6

Additions

  • Fortran bindings
  • Triangular solve for BSR format (bsrsv)
  • CentOS 6 support

hipSPARSE 1.6.5 for ROCm 3.5

Additions

  • Switched to HIP-Clang as default compiler
  • csr2dense, csc2dense, csr2csr_compress, nnz_compress, bsr2csr, csr2bsr, bsrmv, and csrgeam
  • static build
  • New examples

Optimizations

  • dense2csr, dense2csc

Fixes

  • Installation process