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
14 KiB
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
hipsparseDenseToSparseroutine, along with the newhipsparseBlockedEllSetPointersfunction. - Added the
HIPSPARSE_SPMV_CSR_ALG3algorithm tohipsparseSpMV, 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
hipsparseCreateBsrandhipsparseCreateConstBsrin 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
hipsparseSpMVmultiple times with differenthipsparseOperation_t,hipsparseSpMVAlg_t, or compute-datatypes using the same sparse matrix descriptor resulted in errors.
Upcoming changes
- The routines
hipsparseXcsrgeamNnz,hipsparseScsrgeam,hipsparseDcsrgeam,hipsparseCcsrgeam, andhipsparseZcsrgeamhave been deprecated and will be removed in a future release. UsehipsparseScsrgeam2_bufferSizeExt,hipsparseDcsrgeam2_bufferSizeExt,hipsparseCcsrgeam2_bufferSizeExt,hipsparseZcsrgeam2_bufferSizeExt,hipsparseXcsrgeam2Nnz,hipsparseScsrgeam2,hipsparseDcsrgeam2,hipsparseCcsrgeam2, andhipsparseZcsrgeam2instead.
hipSPARSE 4.5.0 for ROCm 7.12.0
Added
- For sparse matrix vector product (
hipsparseSpMV), when usingHIPSPARSE_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_dimequals5or8.
hipSPARSE 4.4.0 for ROCm 7.11.0
Added
- Added brain half float mixed precision to
hipsparseSpMVwhere A, X, and Y use bfloat16 and the compute type uses float. - Added half float mixed precision to
hipsparseSpMVwhere A, X, and Y use float16 and the compute type uses float. - Added brain half float mixed precision to
hipsparseSpMMwhere A, B, and C use bfloat16 and the compute type use float. - Added half float mixed precision to
hipsparseSpMMwhere A, B, and C use float16 and the compute type use float. - Added the
debian,almalinux,rockylinux, andoraclelinuxOS names to install script. - Added sliced ELL format support to the
hipsparseSpMVroutine.
Resolved issues
- In
hipsparseSpSM_solve(), the external buffer is passed as a parameter, which does not match the NVIDIA CUDA cuSPARSE API. ThehipsparseSpSM_solve_ex()routine has been added to properly match the NVIDIA CUDA cuSPARSEcusparseSpSM_solve()API. The originalhipsparseSpSM_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 usehipsparseSpSM_solve_ex()instead.
hipSPARSE 4.2.0 for ROCm 7.2.0
Added
- Added
--clients-onlyoption to theinstall.shandrmake.pyscripts 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
hipsparseCreatefunctions.
hipSPARSE 4.1.0 for ROCm 7.1.0
Added
- Added brain half float mixed precision to
hipsparseAxpbywhere X and Y use bfloat16 and result and the compute type use float. - Added brain half float mixed precision to
hipsparseSpVVwhere X and Y use bfloat16 and result and the compute type use float. - Added brain half float mixed precision to
hipsparseSpMVwhere A and X use bfloat16 and Y and the compute type use float. - Added brain half float mixed precision to
hipsparseSpMMwhere A and B use bfloat16 and C and the compute type use float. - Added brain half float mixed precision to
hipsparseSDDMMwhere A and B use bfloat16 and C and the compute type use float. - Added brain half float mixed precision to
hipsparseSDDMMwhere A and B and C use bfloat16 and the compute type use float. - Added half float mixed precision to
hipsparseSDDMMwhere A and B and C use float16 and the compute type use float. - Added brain half float uniform precision to
hipsparseScatterandhipsparseGatherroutines. - Added documentation for installing and building hipSPARSE on Microsoft Windows.
hipSPARSE 4.0.1 for ROCm 7.0.0
Added
- Add the
int8,int32, andfloat16data types tohipDataTypeToHCCDataTypeso that sparse matrix descriptors can be used with them. - Added half float mixed precision to
hipsparseAxpbywhere X and Y use float16 and result and the compute type use float. - Added half float mixed precision to
hipsparseSpVVwhere X and Y use float16 and result and the compute type use float. - Added half float mixed precision to
hipsparseSpMMwhere A and B use float16 and C and the compute type use float. - Added half float mixed precision to
hipsparseSDDMMwhere A and B use float16 and C and the compute type use float. - Added half float uniform precision to
hipsparseScatterandhipsparseGatherroutines. - Added half float uniform precision to
hipsparseSDDMMroutine. - Add
int8precision tohipsparseCsr2cscEx2routine. - Add the
almalinuxOS 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::filesystemand C++14. - Fixed the empty clients-common package by moving the
hipsparse_clientmatrices.cmakeandhipsparse_mtx2csrfiles 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 byhipsparseSpSM_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.cmakeandhipsparse_mtx2csrfiles from thehipsparse-testspackage to thehipsparse-clients-commonpackage
Optimized
- Removed unused
GTestdependency fromhipsparse-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 byhipsparseSpSM_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
azurelinuxoperating 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 byhipsparseSpSM_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 byhipsparseSpSM_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
hipsparseGetErrorNameandhipsparseGetErrorString
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_solvefunction
hipSPARSE 2.3.6 for ROCm 5.6.0
Additions
- Added SpGEMM algorithms
Changes
- blockDim == 0 now returns
HIPSPARSE_STATUS_INVALID_SIZEforhipsparseXbsr2csrandhipsparseXcsr2bsr
hipSPARSE 2.3.5 for ROCm 5.5.0
Fixes
- Fixed an issue where the
rocmfolder 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_bufferSizeandhipsparseCsr2cscEx2routines
Changes
HIPSPARSE_ORDER_COLUMNhas been renamed toHIPSPARSE_ORDER_COLin 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_batchandgpsv_interleaved_batchroutines - Added
SpGEMM_reuse
Changes
- Changed
BUILD_CUDAwithUSE_CUDAin 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, andspmvroutines
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. Thesuggestionfeature 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
gemvion 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
csr2gebsrgebsr2csrgebsr2gebscgebsr2gebsr
Changes
- Updates to Debian package name.
hipSPARSE 1.9.4 for ROCm 3.9
Additions
prune_csr2csr, prune_dense2csr_percentageandprune_csr2csr_percentagebsrilu0
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, andcsrgeam- static build
- New examples
Optimizations
dense2csr,dense2csc
Fixes
- Installation process