Skip to content

Commit 3e4963f

Browse files
Merge pull request #936 from DrTimothyAldenDavis/dev
SuiteSparse 7.10.2
2 parents 31572b3 + 77d69c7 commit 3e4963f

File tree

135 files changed

+8589
-1548
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

135 files changed

+8589
-1548
lines changed

.github/workflows/build-arch-emu.yaml

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ env:
2121
jobs:
2222

2323
alpine:
24-
runs-on: ubuntu-latest
24+
# Run armv7 on aarch64 runners
25+
runs-on: ${{ matrix.arch == 'armv7' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
2526

2627
defaults:
2728
run:
@@ -35,20 +36,24 @@ jobs:
3536
matrix:
3637
# For available CPU architectures, see:
3738
# https://github.com/marketplace/actions/setup-alpine-linux-environment
38-
arch: [x86, armv7, ppc64le, s390x, riscv64]
39+
arch: [x86, armv7, ppc64le, s390x, riscv64, loongarch64]
3940
include:
4041
- arch: x86
4142
ccache-max: 64M
4243
extra-build-libs: ":GraphBLAS:LAGraph"
4344
extra-check-libs: ":GraphBLAS:LAGraph"
4445
- arch: armv7
45-
ccache-max: 25M
46+
ccache-max: 60M
47+
extra-build-libs: ":GraphBLAS:LAGraph"
48+
extra-check-libs: ":GraphBLAS:LAGraph"
4649
- arch: ppc64le
4750
ccache-max: 28M
4851
- arch: s390x
4952
ccache-max: 28M
5053
- arch: riscv64
5154
ccache-max: 28M
55+
- arch: loongarch64
56+
ccache-max: 30M
5257

5358
name: alpine (${{ matrix.arch }})
5459

@@ -66,6 +71,9 @@ jobs:
6671
# shell: bash
6772
with:
6873
arch: ${{ matrix.arch }}
74+
apk-tools-url: ${{ matrix.arch == 'armv7'
75+
&& 'https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic/v2.14.7/aarch64/apk.static#!sha256!27a975638ddc95a411c9f17c63383e335da9edf6bb7de2281d950c291a11f878'
76+
|| 'https://gitlab.alpinelinux.org/api/v4/projects/5/packages/generic/v2.14.7/x86_64/apk.static#!sha256!bdd044e0fd6cc388c5e571e1093efa5f35f7767cc5aa338b0a2576a429009a62' }}
6977
packages: >
7078
build-base
7179
ccache
@@ -82,6 +90,11 @@ jobs:
8290
libtool
8391
# ${{ matrix.arch != 'riscv64' && 'valgrind' || '' }}
8492

93+
- name: disable QEMU emulation
94+
if: matrix.arch == 'armv7'
95+
shell: bash
96+
run: sudo update-binfmts --disable qemu-arm
97+
8598
- name: get CPU information (emulated)
8699
run: lscpu
87100

.github/workflows/root-cmakelists-msvc.yaml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
2424
runs-on: windows-latest
2525

26-
name: msvc (${{ matrix.cc }} ${{ matrix.openmp }} OpenMP, ${{ matrix.link }})
26+
name: msvc (${{ matrix.cc }} ${{ matrix.openmp }} OpenMP ${{ matrix.cuda }} CUDA, ${{ matrix.link }})
2727

2828
defaults:
2929
run:
@@ -36,23 +36,38 @@ jobs:
3636

3737
matrix:
3838
openmp: [with]
39+
cuda: [without]
3940
link: [both]
4041
cc: [cl]
4142
cxx: [cl]
4243
include:
4344
- openmp: with
45+
cuda: with
46+
link: both
47+
cc: cl
48+
cxx: cl
49+
- openmp: with
50+
cuda: with
51+
link: static
52+
cc: cl
53+
cxx: cl
54+
- openmp: with
55+
cuda: without
4456
link: both
4557
cc: cl
4658
cxx: cl
4759
- openmp: without
60+
cuda: without
4861
link: both
4962
cc: cl
5063
cxx: cl
5164
- openmp: with
65+
cuda: without
5266
link: both
5367
cc: clang-cl
5468
cxx: clang-cl
5569
- openmp: with
70+
cuda: without
5671
link: both
5772
cc: clang
5873
cxx: clang++
@@ -111,7 +126,7 @@ jobs:
111126
112127
msystem: UCRT64
113128

114-
- uses: Jimver/cuda-toolkit@v0.2.21
129+
- uses: Jimver/cuda-toolkit@v0.2.22
115130
name: install CUDA toolkit
116131
if: matrix.cuda == 'with'
117132
id: cuda-toolkit

CHOLMOD/CMakeLists.txt

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@
1212
# cmake 3.22 is required to find the BLAS/LAPACK
1313
cmake_minimum_required ( VERSION 3.22 )
1414

15-
set ( CHOLMOD_DATE "Feb 20, 2025" )
15+
set ( CHOLMOD_DATE "Apr 10, 2025" )
1616
set ( CHOLMOD_VERSION_MAJOR 5 CACHE STRING "" FORCE )
1717
set ( CHOLMOD_VERSION_MINOR 3 CACHE STRING "" FORCE )
18-
set ( CHOLMOD_VERSION_SUB 1 CACHE STRING "" FORCE )
18+
set ( CHOLMOD_VERSION_SUB 2 CACHE STRING "" FORCE )
1919

2020
message ( STATUS "Building CHOLMOD version: v"
2121
${CHOLMOD_VERSION_MAJOR}.
@@ -383,12 +383,16 @@ if ( BUILD_SHARED_LIBS )
383383
OUTPUT_NAME cholmod
384384
SOVERSION ${CHOLMOD_VERSION_MAJOR}
385385
PUBLIC_HEADER "Include/cholmod.h"
386-
WINDOWS_EXPORT_ALL_SYMBOLS ON
387-
LINKER_LANGUAGE C )
386+
WINDOWS_EXPORT_ALL_SYMBOLS ON )
388387

389388
if ( CHOLMOD_HAS_CUDA )
390-
set_target_properties ( CHOLMOD PROPERTIES CUDA_SEPARABLE_COMPILATION ON )
391-
set_target_properties ( CHOLMOD PROPERTIES POSITION_INDEPENDENT_CODE ON )
389+
set_target_properties ( CHOLMOD PROPERTIES
390+
POSITION_INDEPENDENT_CODE ON
391+
CUDA_SEPARABLE_COMPILATION ON
392+
LINKER_LANGUAGE CUDA )
393+
else ( )
394+
set_target_properties ( CHOLMOD PROPERTIES
395+
LINKER_LANGUAGE C )
392396
endif ( )
393397

394398
if ( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.25" )
@@ -411,17 +415,27 @@ if ( BUILD_STATIC_LIBS )
411415
C_STANDARD 11
412416
C_STANDARD_REQUIRED ON
413417
OUTPUT_NAME cholmod
414-
PUBLIC_HEADER "Include/cholmod.h"
415-
LINKER_LANGUAGE C )
418+
PUBLIC_HEADER "Include/cholmod.h" )
416419

417420
if ( MSVC OR ("${CMAKE_C_SIMULATE_ID}" STREQUAL "MSVC") )
418421
set_target_properties ( CHOLMOD_static PROPERTIES
419422
OUTPUT_NAME cholmod_static )
420423
endif ( )
421424

422425
if ( CHOLMOD_HAS_CUDA )
423-
set_target_properties ( CHOLMOD_static PROPERTIES CUDA_SEPARABLE_COMPILATION on )
424-
set_target_properties ( CHOLMOD_static PROPERTIES POSITION_INDEPENDENT_CODE on )
426+
# Dependencies that are linking to this static library would need to
427+
# use the CUDA compiler as the linker driver. Ideally, CMake would do
428+
# that automatically. Until that is fixed in CMake, set the
429+
# CUDA_RESOLVE_DEVICE_SYMBOLS property ON.
430+
set_target_properties ( CHOLMOD_static PROPERTIES
431+
POSITION_INDEPENDENT_CODE ON
432+
CUDA_SEPARABLE_COMPILATION ON
433+
CUDA_RESOLVE_DEVICE_SYMBOLS ON
434+
CUDA_RUNTIME_LIBRARY Static
435+
LINKER_LANGUAGE CUDA )
436+
else ( )
437+
set_target_properties ( CHOLMOD_static PROPERTIES
438+
LINKER_LANGUAGE C )
425439
endif ( )
426440

427441
if ( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.25" )

CHOLMOD/Config/cholmod.h.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,8 +309,8 @@ int cholmod_l_version (int version [3]) ;
309309

310310
#define CHOLMOD__VERSION SUITESPARSE__VERCODE(@CHOLMOD_VERSION_MAJOR@,@CHOLMOD_VERSION_MINOR@,@CHOLMOD_VERSION_SUB@)
311311
#if !defined (SUITESPARSE__VERSION) || \
312-
(SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,9,0))
313-
#error "CHOLMOD @CHOLMOD_VERSION_MAJOR@.@CHOLMOD_VERSION_MINOR@.@CHOLMOD_VERSION_SUB@ requires SuiteSparse_config 7.9.0 or later"
312+
(SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,10,2))
313+
#error "CHOLMOD @CHOLMOD_VERSION_MAJOR@.@CHOLMOD_VERSION_MINOR@.@CHOLMOD_VERSION_SUB@ requires SuiteSparse_config 7.10.2 or later"
314314
#endif
315315

316316
//------------------------------------------------------------------------------

CHOLMOD/Doc/ChangeLog

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
Apr 10, 2025: version 5.3.2
2+
3+
* build system: use CUDA as linker if applicable
4+
15
Feb 20, 2025: version 5.3.1
26

37
* minor changes: removing compiler warnings

CHOLMOD/Doc/cholmod_version.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
% version of SuiteSparse/CHOLMOD
2-
\date{VERSION 5.3.1, Feb 20, 2025}
2+
\date{VERSION 5.3.2, Apr 10, 2025}

CHOLMOD/Include/cholmod.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -246,10 +246,10 @@
246246
// version control
247247
//------------------------------------------------------------------------------
248248

249-
#define CHOLMOD_DATE "Feb 20, 2025"
249+
#define CHOLMOD_DATE "Apr 10, 2025"
250250
#define CHOLMOD_MAIN_VERSION 5
251251
#define CHOLMOD_SUB_VERSION 3
252-
#define CHOLMOD_SUBSUB_VERSION 1
252+
#define CHOLMOD_SUBSUB_VERSION 2
253253

254254
#define CHOLMOD_VER_CODE(main,sub) SUITESPARSE_VER_CODE(main,sub)
255255
#define CHOLMOD_VERSION CHOLMOD_VER_CODE(5,3)
@@ -307,10 +307,10 @@ int cholmod_l_version (int version [3]) ;
307307

308308
#include "SuiteSparse_config.h"
309309

310-
#define CHOLMOD__VERSION SUITESPARSE__VERCODE(5,3,1)
310+
#define CHOLMOD__VERSION SUITESPARSE__VERCODE(5,3,2)
311311
#if !defined (SUITESPARSE__VERSION) || \
312-
(SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,9,0))
313-
#error "CHOLMOD 5.3.1 requires SuiteSparse_config 7.9.0 or later"
312+
(SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,10,2))
313+
#error "CHOLMOD 5.3.2 requires SuiteSparse_config 7.10.2 or later"
314314
#endif
315315

316316
//------------------------------------------------------------------------------

CMakeLists.txt

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ endforeach ( )
6464

6565
# CHOLMOD options affecting dependencies
6666
option ( CHOLMOD_CAMD "ON (default): use CAMD/CCOLAMD. OFF: do not use CAMD/CCOLAMD" ON )
67+
option ( CHOLMOD_SUPERNODAL "ON (default): use Supernodal Module. OFF: do not use Supernodal Module" ON )
6768

6869
# KLU options affecting dependencies
6970
option ( KLU_USE_CHOLMOD "ON (default): use CHOLMOD in KLU. OFF: do not use CHOLMOD in KLU" ON )
@@ -111,7 +112,7 @@ include ( SuiteSparsePolicy )
111112

112113
if ( SUITESPARSE_USE_SYSTEM_GRAPHBLAS )
113114
list ( REMOVE_ITEM SUITESPARSE_ENABLE_PROJECTS "graphblas" )
114-
find_package ( GraphBLAS 9.3.1 REQUIRED )
115+
find_package ( GraphBLAS 10.0.3 REQUIRED )
115116
else ( )
116117
if ( "lagraph" IN_LIST SUITESPARSE_ENABLE_PROJECTS )
117118
# LAGraph requires GraphBLAS.
@@ -137,7 +138,7 @@ endif ( )
137138

138139
if ( SUITESPARSE_USE_SYSTEM_UMFPACK )
139140
list ( REMOVE_ITEM SUITESPARSE_ENABLE_PROJECTS "umfpack" )
140-
find_package ( UMFPACK 6.3.4 REQUIRED )
141+
find_package ( UMFPACK 6.3.5 REQUIRED )
141142
else ( )
142143
if ( "paru" IN_LIST SUITESPARSE_ENABLE_PROJECTS )
143144
# ParU requires UMFPACK.
@@ -150,7 +151,7 @@ endif ( )
150151

151152
if ( SUITESPARSE_USE_SYSTEM_CHOLMOD )
152153
list ( REMOVE_ITEM SUITESPARSE_ENABLE_PROJECTS "cholmod" )
153-
find_package ( CHOLMOD 5.3.0 REQUIRED )
154+
find_package ( CHOLMOD 5.3.2 REQUIRED )
154155
else ( )
155156
if ( ( KLU_USE_CHOLMOD AND "klu" IN_LIST SUITESPARSE_ENABLE_PROJECTS )
156157
OR ( UMFPACK_USE_CHOLMOD AND "umfpack" IN_LIST SUITESPARSE_ENABLE_PROJECTS )
@@ -224,7 +225,7 @@ endif ( )
224225

225226
if ( SUITESPARSE_USE_SYSTEM_SUITESPARSE_CONFIG )
226227
list ( REMOVE_ITEM SUITESPARSE_ENABLE_PROJECTS "suitesparse_config" )
227-
find_package ( SuiteSparse_config 7.8.2 REQUIRED )
228+
find_package ( SuiteSparse_config 7.10.2 REQUIRED )
228229
else ( )
229230
if ( "mongoose" IN_LIST SUITESPARSE_ENABLE_PROJECTS
230231
OR "amd" IN_LIST SUITESPARSE_ENABLE_PROJECTS
@@ -266,6 +267,19 @@ if ( CMAKE_VERSION VERSION_LESS 3.24 )
266267
endif ( )
267268

268269

270+
# BLAS is only required for some sub-projects
271+
option ( SUITESPARSE_REQUIRE_BLAS "Must not be set to OFF if any SuiteSparse project requires BLAS functions" ON )
272+
273+
if ( ("cholmod" IN_LIST SUITESPARSE_ENABLE_PROJECTS AND CHOLMOD_SUPERNODAL)
274+
OR "paru" IN_LIST SUITESPARSE_ENABLE_PROJECTS
275+
OR "spqr" IN_LIST SUITESPARSE_ENABLE_PROJECTS
276+
OR "umfpack" IN_LIST SUITESPARSE_ENABLE_PROJECTS )
277+
if ( NOT SUITESPARSE_REQUIRE_BLAS )
278+
message ( FATAL_ERROR "SUITESPARSE_REQUIRE_BLAS must not be set to OFF when building CHOLMOD with SUPERNODAL, ParU, SPQR, or UMFPACK." )
279+
endif ( )
280+
281+
endif ( )
282+
269283
#-------------------------------------------------------------------------------
270284
# include selected projects
271285
#-------------------------------------------------------------------------------

ChangeLog

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,32 @@
1+
Apr 10, 2025: version 7.10.2
2+
3+
* GraphBLAS v10.0.3: performance of setElement. Update to xxHash and
4+
cpu_features. Octave interface updated for the Mac.
5+
* CHOLMOD 5.3.2: use CUDA as linker, if applicable
6+
* SuiteSparse_config 7.10.2: allow the installer to compile without
7+
the BLAS.
8+
* Package versions in this release: (* denotes a new version)
9+
SuiteSparse_config 7.10.2 *
10+
AMD 3.3.3
11+
BTF 2.3.2
12+
CAMD 3.3.3
13+
CCOLAMD 3.3.4
14+
CHOLMOD 5.3.2 *
15+
COLAMD 3.3.4
16+
CSparse 4.3.2
17+
CXSparse 4.4.1
18+
Example 1.8.7 *
19+
GraphBLAS 10.0.3 *
20+
KLU 2.3.5
21+
LDL 3.3.2
22+
LAGraph 1.1.5
23+
SuiteSparse_Mongoose 3.3.4
24+
ParU 1.0.0
25+
RBio 4.3.4
26+
SPEX 3.2.3
27+
SPQR 4.3.4
28+
UMFPACK 6.3.5
29+
130
Mar 6, 2025: version 7.10.1
231

332
* GraphBLAS v10.0.1: bug fix, when using user-defined monoids in GrB_mxm

Example/CMakeLists.txt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ cmake_minimum_required ( VERSION 3.22 )
2828
# set ( CMAKE_PREFIX_PATH /opt/SuiteSparse )
2929
#
3030
# The following is added, just to simplify building this Example if it is
31-
# located inside SuiteSparse itself and compiled with SUITESPARSE_LOCAL_INSTALL set to ON.
32-
# Normally you would not use this in a stand-alone library that relies on
33-
# SuiteSparse:
31+
# located inside SuiteSparse itself and compiled with SUITESPARSE_LOCAL_INSTALL
32+
# set to ON. Normally you would not use this in a stand-alone library that
33+
# relies on SuiteSparse:
3434

3535
set ( CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${CMAKE_SOURCE_DIR}/.. )
3636

@@ -53,10 +53,10 @@ message ( STATUS "MY prefix path: ${CMAKE_PREFIX_PATH}" )
5353
#-------------------------------------------------------------------------------
5454

5555
# cmake inserts the date and version number into Include/my.h:
56-
set ( MY_DATE "Mar 6, 2025" )
56+
set ( MY_DATE "Apr 10, 2025" )
5757
set ( MY_VERSION_MAJOR 1 )
5858
set ( MY_VERSION_MINOR 8 )
59-
set ( MY_VERSION_PATCH 6 )
59+
set ( MY_VERSION_PATCH 7 )
6060

6161
message ( STATUS "Building MY library version: v"
6262
${MY_VERSION_MAJOR}.
@@ -87,15 +87,15 @@ project ( my
8787
#-------------------------------------------------------------------------------
8888

8989
# look for all SuiteSparse packages:
90-
find_package ( SuiteSparse_config 7.10.1 REQUIRED )
90+
find_package ( SuiteSparse_config 7.10.2 REQUIRED )
9191
find_package ( AMD 3.3.3 REQUIRED )
9292
find_package ( BTF 2.3.2 REQUIRED )
9393
find_package ( CAMD 3.3.3 REQUIRED )
9494
find_package ( CCOLAMD 3.3.4 REQUIRED )
95-
find_package ( CHOLMOD 5.3.1 REQUIRED )
95+
find_package ( CHOLMOD 5.3.2 REQUIRED )
9696
find_package ( COLAMD 3.3.4 REQUIRED )
9797
find_package ( CXSparse 4.4.1 REQUIRED )
98-
find_package ( GraphBLAS 10.0.1 )
98+
find_package ( GraphBLAS 10.0.3 )
9999
find_package ( KLU 2.3.5 REQUIRED )
100100
find_package ( KLU_CHOLMOD 2.3.5 REQUIRED )
101101
find_package ( LDL 3.3.2 REQUIRED )

0 commit comments

Comments
 (0)