diff --git a/.github/workflows/cross-compile.yaml b/.github/workflows/cross-compile.yaml index a195c87b3..5de84105a 100644 --- a/.github/workflows/cross-compile.yaml +++ b/.github/workflows/cross-compile.yaml @@ -51,9 +51,11 @@ jobs: ccache-max: 64M - arch: s390x target-triple: s390x-linux-gnu - flags: --target=s390x-linux-gnu - cc: clang - cxx: clang++ + # flags: --target=s390x-linux-gnu + # cc: clang + # cxx: clang++ + cc: s390x-linux-gnu-gcc + cxx: s390x-linux-gnu-g++ ccache-max: 64M - arch: riscv64 target-triple: riscv64-linux-gnu diff --git a/ChangeLog b/ChangeLog index 6be39878f..775b2142c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,10 +1,9 @@ -June 1, 2025: version 7.11.0 +June 2, 2025: version 7.11.0 * LAGraph v1.2: many new experimental algorithms, LAGraph_Random in src/ - * GraphBLAS v10.1.0: risc-V vectorization, GRAPHBLAS_VANILLA (optional; - to disable GxB extensions), and cmake revisions to ensure gcc is not - used to compile GraphBLAS on the Power or s390 processors (as a - workaround around for a bug in the gcc compiler). + * GraphBLAS v10.1.1: risc-V vectorization, GRAPHBLAS_VANILLA (optional; + to disable GxB extensions), and workaround for gcc compiler bug on + Power and s390x processors. * nearly all packages: cmake updates, to move static targets into separate exports (needed for Fedora packaging) * Package versions in this release: (* denotes a new version) @@ -18,7 +17,7 @@ June 1, 2025: version 7.11.0 CSparse 4.3.2 CXSparse 4.4.2 * Example 1.8.9 * - GraphBLAS 10.1.0 * + GraphBLAS 10.1.1 * KLU 2.3.6 * LDL 3.3.3 * LAGraph 1.2.0 * diff --git a/Example/CMakeLists.txt b/Example/CMakeLists.txt index c3ddc3342..7202e1b54 100644 --- a/Example/CMakeLists.txt +++ b/Example/CMakeLists.txt @@ -96,7 +96,7 @@ find_package ( CCOLAMD 3.3.5 REQUIRED ) find_package ( CHOLMOD 5.3.4 REQUIRED ) find_package ( COLAMD 3.3.5 REQUIRED ) find_package ( CXSparse 4.4.2 REQUIRED ) -find_package ( GraphBLAS 10.1.0 ) +find_package ( GraphBLAS 10.1.1 ) find_package ( KLU 2.3.6 REQUIRED ) find_package ( KLU_CHOLMOD 2.3.6 REQUIRED ) find_package ( LDL 3.3.3 REQUIRED ) diff --git a/Example/Demo/mydemo.out b/Example/Demo/mydemo.out index 69861d395..48d48d4b3 100644 --- a/Example/Demo/mydemo.out +++ b/Example/Demo/mydemo.out @@ -1,25 +1,25 @@ My demo -Date from #include 'my.h': May 5, 2025 -Date from compiled library: May 5, 2025 -version from #include 'my.h.': 1.8.8 -version from compiled library: 1.8.8 +Date from #include 'my.h': June 1, 2025 +Date from compiled library: June 1, 2025 +version from #include 'my.h.': 1.8.9 +version from compiled library: 1.8.9 ------------------------------------------------------------ -MY: v1.8.8 (May 5, 2025) -MY: v1.8.8 (in library) -MY version code: 1008008 -MY date: May 5, 2025 +MY: v1.8.9 (June 1, 2025) +MY: v1.8.9 (in library) +MY version code: 1008009 +MY date: June 1, 2025 ------------------------------------------------------------ -SuiteSparse_config: v7.10.3 (May 5, 2025) -SuiteSparse_config: v7.10.3 (in library) -SuiteSparse_config version code: 7010003 +SuiteSparse_config: v7.11.0 (June 1, 2025) +SuiteSparse_config: v7.11.0 (in library) +SuiteSparse_config version code: 7011000 ------------------------------------------------------------ -CXSparse: v4.4.1 (June 20, 2024) -CXSparse: v4.4.1 (in library) -CXSparse version code: 4004001 -CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse: v4.4.2 (June 1, 2025) +CXSparse: v4.4.2 (in library) +CXSparse version code: 4004002 +CXSparse Version 4.4.2, June 1, 2025. Copyright (c) Timothy A. Davis, 2006-2024 2-by-2, nzmax: 4 nnz: 4, 1-norm: 34 col 0 : locations 0 to 1 0 : 11 @@ -29,16 +29,16 @@ CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-202 1 : 22 ------------------------------------------------------------ -AMD: v3.3.3 (June 20, 2024) -AMD: v3.3.3 (in library) -AMD version code: 3003003 +AMD: v3.3.4 (June 1, 2025) +AMD: v3.3.4 (in library) +AMD version code: 3003004 P [0] = 0 P [1] = 1 ------------------------------------------------------------ -BTF: v2.3.2 (Mar 22, 2024) -BTF: v2.3.2 (in library) -BTF version code: 2003002 +BTF: v2.3.3 (June 1, 2025) +BTF: v2.3.3 (in library) +BTF version code: 2003003 P [0] = 0 P [1] = 1 Q [0] = 0 @@ -46,61 +46,61 @@ Q [1] = 1 nblocks 1 ------------------------------------------------------------ -CAMD: v3.3.4 (May 5, 2025) -CAMD: v3.3.4 (in library) -CAMD version code: 3003004 +CAMD: v3.3.5 (June 1, 2025) +CAMD: v3.3.5 (in library) +CAMD version code: 3003005 P [0] = 0 P [1] = 1 ------------------------------------------------------------ -CCOLAMD: v3.3.4 (June 20, 2024) -CCOLAMD: v3.3.4 (in library) -CCOLAMD version code: 3003004 +CCOLAMD: v3.3.5 (June 1, 2025) +CCOLAMD: v3.3.5 (in library) +CCOLAMD version code: 3003005 P [0] = 0 P [1] = 1 ------------------------------------------------------------ -COLAMD: v3.3.4 (June 20, 2024) -COLAMD: v3.3.4 (in library) -COLAMD version code: 3003004 +COLAMD: v3.3.5 (June 1, 2025) +COLAMD: v3.3.5 (in library) +COLAMD version code: 3003005 P [0] = 0 P [1] = 1 ------------------------------------------------------------ -CHOLMOD: v5.3.3 (May 5, 2025) -CHOLMOD: v5.3.3 (in library) -CHOLMOD version code: 5003003 +CHOLMOD: v5.3.4 (June 1, 2025) +CHOLMOD: v5.3.4 (in library) +CHOLMOD version code: 5003004 ------------------------------------------------------------ -GraphBLAS: v10.0.5 (May 5, 2025) -GraphBLAS: v10.0.5 (in library) -GraphBLAS version code: 10000005 +GraphBLAS: v10.1.1 (June 2, 2025) +GraphBLAS: v10.1.1 (in library) +GraphBLAS version code: 10001001 ------------------------------------------------------------ -LAGraph: v1.1.5 (Feb 20, 2025) -LAGraph: v1.1.5 (in library) -LAGraph version code: 1001005 +LAGraph: v1.2.0 (June 1, 2025) +LAGraph: v1.2.0 (in library) +LAGraph version code: 1002000 ------------------------------------------------------------ -KLU: v2.3.5 (Oct 10, 2024) -KLU: v2.3.5 (in library) -KLU version code: 2003005 +KLU: v2.3.6 (June 1, 2025) +KLU: v2.3.6 (in library) +KLU version code: 2003006 x [0] = 36.4 x [1] = -32.7 error: 7.10543e-14 ------------------------------------------------------------ -LDL: v3.3.2 (Mar 22, 2024) -LDL: v3.3.2 (in library) -LDL version code: 3003002 +LDL: v3.3.3 (June 1, 2025) +LDL: v3.3.3 (in library) +LDL version code: 3003003 x2 [0] = 36.4 x2 [1] = -32.7 error: 0 ------------------------------------------------------------ -RBio: v4.3.4 (Oct 10, 2024) -RBio: v4.3.4 (in library) -RBio version code: 4003004 +RBio: v4.3.5 (June 1, 2025) +RBio: v4.3.5 (in library) +RBio version code: 4003005 njumbled 0, nzeros 0 result 0 mtype: iua @@ -113,14 +113,14 @@ iua 2 2 4 0 11 21 12 22 ------------------------------------------------------------ -SPEX: v3.2.3 (Feb 20, 2025) -SPEX: v3.2.3 (in library) -SPEX version code: 3002003 +SPEX: v3.2.4 (June 1, 2025) +SPEX: v3.2.4 (in library) +SPEX version code: 3002004 ------------------------------------------------------------ -SuiteSparseQR: v4.3.4 (June 20, 2024) -SuiteSparseQR: v4.3.4 (in library) -SuiteSparseQR version code: 4003004 +SuiteSparseQR: v4.3.5 (June 1, 2025) +SuiteSparseQR: v4.3.5 (in library) +SuiteSparseQR version code: 4003005 CHOLMOD dense: X from QR: 2-by-1, leading dimension 2, nzmax 2, real, double @@ -131,10 +131,10 @@ CHOLMOD dense: X from QR: 2-by-1, ------------------------------------------------------------ -UMFPACK: v6.3.5 (Sept 23, 2024) -UMFPACK: v6.3.5 (in library) -UMFPACK version code: 6003005 -UMFPACK V6.3.5 (Sept 23, 2024) +UMFPACK: v6.3.6 (June 1, 2025) +UMFPACK: v6.3.6 (in library) +UMFPACK version code: 6003006 +UMFPACK V6.3.6 (June 1, 2025) UMFPACK: Copyright (c) 2005-2024 by Timothy A. Davis. All Rights Reserved. UMFPACK License: SPDX-License-Identifier: GPL-2.0+ @@ -155,9 +155,9 @@ UMFPACK License: SPDX-License-Identifier: GPL-2.0+ Availability: http://www.suitesparse.com -UMFPACK V6.3.5 (Sept 23, 2024): OK +UMFPACK V6.3.6 (June 1, 2025): OK -UMFPACK V6.3.5 (Sept 23, 2024), Info: +UMFPACK V6.3.6 (June 1, 2025), Info: matrix entry defined as: double Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 diff --git a/Example/Include/my_internal.h b/Example/Include/my_internal.h index 3e7c7758c..47f63fe41 100644 --- a/Example/Include/my_internal.h +++ b/Example/Include/my_internal.h @@ -56,8 +56,8 @@ #if ! defined (NO_GRAPHBLAS) #include "GraphBLAS.h" #if !defined ( GxB_SUITESPARSE_GRAPHBLAS ) || \ - GxB_IMPLEMENTATION < GxB_VERSION (10,1,0) - #error "This library requires SuiteSparse:GraphBLAS 10.1.0 or later" + GxB_IMPLEMENTATION < GxB_VERSION (10,1,1) + #error "This library requires SuiteSparse:GraphBLAS 10.1.1 or later" #endif #endif diff --git a/GraphBLAS/CUDA/GB_cuda_AxB_dot3.cpp b/GraphBLAS/CUDA/GB_cuda_AxB_dot3.cpp index 9c6974c45..36c5580a3 100644 --- a/GraphBLAS/CUDA/GB_cuda_AxB_dot3.cpp +++ b/GraphBLAS/CUDA/GB_cuda_AxB_dot3.cpp @@ -98,8 +98,9 @@ GrB_Info GB_cuda_AxB_dot3 // C = A'*B using dot product method int device = -1; // FIXME: control the GPU to use via the descriptor - CUDA_OK (cudaSetDevice ( 0 )) ; - CUDA_OK (cudaGetDevice (&device)) ; +// CUDA_OK (cudaSetDevice ( 0 )) ; + CUDA_OK (cudaGetDevice (&device)) ; // FIXME + printf ("dot3 using cuda device %d\n", device) ; int number_of_sms = GB_Global_gpu_sm_get (0) ; //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Doc/ChangeLog b/GraphBLAS/Doc/ChangeLog index ee54b0817..f388d405e 100644 --- a/GraphBLAS/Doc/ChangeLog +++ b/GraphBLAS/Doc/ChangeLog @@ -1,3 +1,9 @@ +June 2, 2025: version 10.1.1 + + * gcc can now be used the Power or s390: workaround added; + see Source/mxm/factory/GB_AxB_saxpy3_symbolic_fine_template.c. + This resolves the issue found in v10.1.0. + June 1, 2025: version 10.1.0 * add support for RISC-V vectorization: contributed by Rodion Suvorov diff --git a/GraphBLAS/Doc/GraphBLAS_UserGuide.pdf b/GraphBLAS/Doc/GraphBLAS_UserGuide.pdf index c110069df..e992c5040 100644 Binary files a/GraphBLAS/Doc/GraphBLAS_UserGuide.pdf and b/GraphBLAS/Doc/GraphBLAS_UserGuide.pdf differ diff --git a/GraphBLAS/Doc/GraphBLAS_version.tex b/GraphBLAS/Doc/GraphBLAS_version.tex index 460ccb9da..bd751c165 100644 --- a/GraphBLAS/Doc/GraphBLAS_version.tex +++ b/GraphBLAS/Doc/GraphBLAS_version.tex @@ -1,5 +1,5 @@ % version of SuiteSparse:GraphBLAS \date{VERSION -10.1.0, -June 1, 2025} +10.1.1, +June 3, 2025} diff --git a/GraphBLAS/Doc/UserGuide/GrB_installing.tex b/GraphBLAS/Doc/UserGuide/GrB_installing.tex index b0577e1d7..1ac7b552b 100644 --- a/GraphBLAS/Doc/UserGuide/GrB_installing.tex +++ b/GraphBLAS/Doc/UserGuide/GrB_installing.tex @@ -199,18 +199,6 @@ \subsubsection{On the Intel-based Mac} \begin{verbatim} make CC=icc CXX=icpc \end{verbatim} } -%---------------------------------------- -\subsubsection{On IBM Power or IBM System/390} -%---------------------------------------- - -You cannot use use \verb'gcc' to compile GraphBLAS on the Power or s390 -architectures. At least gcc versions up to 14.2.0 have a bug in the atomic -capture on the IBM Power8 (see the comments in the \verb'Source/mxm/factory' -folder). The bug also occurs on the s390 architecture. The cmake build script -will report a fatal error if gcc is attempted to be used on these systems. Use -\verb'clang', \verb'ibm-clang', or \verb'xlc' instead. Those compilers are -able to correctly compile GraphBLAS on those systems. - %---------------------------------------- \subsubsection{On Microsoft Windows} \label{sec:windows} diff --git a/GraphBLAS/Doc/UserGuide/GrB_release.tex b/GraphBLAS/Doc/UserGuide/GrB_release.tex index 8215577ff..4b64ee441 100644 --- a/GraphBLAS/Doc/UserGuide/GrB_release.tex +++ b/GraphBLAS/Doc/UserGuide/GrB_release.tex @@ -5,6 +5,14 @@ \section{Release Notes} \begin{itemize} +\item June 2, 2025: version 10.1.1 + + \begin{itemize} + \item gcc can now be used the Power or s390: workaround added; + see \verb'Source/mxm/factory/GB_AxB_saxpy3_symbolic_fine_template.c.' + This resolves the issue found in v10.1.0. + \end{itemize} + \item June 1, 2025: version 10.1.0 \begin{itemize} diff --git a/GraphBLAS/Include/GraphBLAS.h b/GraphBLAS/Include/GraphBLAS.h index 2a53f1053..884de1a36 100644 --- a/GraphBLAS/Include/GraphBLAS.h +++ b/GraphBLAS/Include/GraphBLAS.h @@ -1,4 +1,4 @@ -// SuiteSparse:GraphBLAS 10.1.0 +// SuiteSparse:GraphBLAS 10.1.1 //------------------------------------------------------------------------------ // GraphBLAS.h: definitions for the GraphBLAS package //------------------------------------------------------------------------------ @@ -286,10 +286,10 @@ // The version of this implementation, and the GraphBLAS API version: #define GxB_IMPLEMENTATION_NAME "SuiteSparse:GraphBLAS" -#define GxB_IMPLEMENTATION_DATE "June 1, 2025" +#define GxB_IMPLEMENTATION_DATE "June 3, 2025" #define GxB_IMPLEMENTATION_MAJOR 10 #define GxB_IMPLEMENTATION_MINOR 1 -#define GxB_IMPLEMENTATION_SUB 0 +#define GxB_IMPLEMENTATION_SUB 1 #define GxB_SPEC_DATE "Dec 22, 2023" #define GxB_SPEC_MAJOR 2 #define GxB_SPEC_MINOR 1 diff --git a/GraphBLAS/README.md b/GraphBLAS/README.md index f505dbe1f..ede832245 100644 --- a/GraphBLAS/README.md +++ b/GraphBLAS/README.md @@ -4,7 +4,7 @@ SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2025, All Rights Reserved. SPDX-License-Identifier: Apache-2.0 -VERSION 10.1.0, June 1, 2025 +VERSION 10.1.1, June 3, 2025 SuiteSparse:GraphBLAS is a complete implementation of the GraphBLAS standard, which defines a set of sparse matrix operations on an extended algebra of diff --git a/GraphBLAS/Source/include/GB_compiler.h b/GraphBLAS/Source/include/GB_compiler.h index e3cdfbff7..fdf020e8c 100644 --- a/GraphBLAS/Source/include/GB_compiler.h +++ b/GraphBLAS/Source/include/GB_compiler.h @@ -255,6 +255,31 @@ #endif +#if !defined ( GBPPC ) + + // detect any Power architecture + #if defined (__powerpc) || defined (__powerpc__) || \ + defined (__powerpc64__) || defined (__POWERPC__) || \ + defined (__ppc__) || defined (__PPC__) || defined (_ARCH_PPC) || \ + defined (__PPC64__) || defined (__ppc64__) || defined (_ARCH_PPC64) + #define GBPPC 1 + #else + #define GBPPC 0 + #endif + +#endif + +#if !defined ( GBS390X ) + + // detect the s390x architecture + #if defined (__s390x__) + #define GBS390X 1 + #else + #define GBS390X 0 + #endif + +#endif + //------------------------------------------------------------------------------ // AVX2 and AVX512F support for the x86_64 architecture //------------------------------------------------------------------------------ @@ -336,7 +361,7 @@ // prefix for function with target rvv1.0 #if GB_COMPILER_SUPPORTS_RVV1 - #define GB_TARGET_RVV1 __attribute__ ((target ("arch=+v"))) + #define GB_TARGET_RVV1 __attribute__ ((target ("arch=+v"))) #else #define GB_TARGET_RVV1 #endif @@ -353,5 +378,15 @@ #endif +//------------------------------------------------------------------------------ +// workaround for a bug in gcc for Power and s390x +//------------------------------------------------------------------------------ + +#if ( GB_COMPILER_GCC && ( GBPPC || GBS390X ) ) + #ifndef GCC_PPC_BUG + #define GCC_PPC_BUG + #endif +#endif + #endif diff --git a/GraphBLAS/Source/jitifyer/GB_jitifyer.c b/GraphBLAS/Source/jitifyer/GB_jitifyer.c index c0ff71f85..95305b9fa 100644 --- a/GraphBLAS/Source/jitifyer/GB_jitifyer.c +++ b/GraphBLAS/Source/jitifyer/GB_jitifyer.c @@ -279,6 +279,11 @@ void GB_jitifyer_sanitize (char *string, size_t len) GrB_Info GB_jitifyer_init (void) { + #if defined ( GRAPHBLAS_HAS_CUDA ) + int device = -1 ; + GB_cuda_get_device (&device) ; + printf ("JIT init, device %d\n", device) ; + #endif //-------------------------------------------------------------------------- // initialize the JIT control diff --git a/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy3_symbolic_fine_template.c b/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy3_symbolic_fine_template.c new file mode 100644 index 000000000..40dea55c0 --- /dev/null +++ b/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy3_symbolic_fine_template.c @@ -0,0 +1,104 @@ +//------------------------------------------------------------------------------ +// GB_AxB_saxpy3_symbolic_fine_template: symbolic analysis for GB_AxB_saxpy3 +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2025, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// phase1 of saxpy3 symbolic, for fine hash tasks. This method must be done +// in a single thread when using GCC on the Power or s390x architectures. +// Otherwise, it is done in parallel. + +{ + + //---------------------------------------------------------- + // phase1: fine hash task, C=A*B or C=A*B + //---------------------------------------------------------- + + // If M_in_place is true, this is skipped. The mask M is dense, and is + // used in-place. + + // The least significant 2 bits of Hf [hash] is the flag f, and the upper + // bits contain h, as (h,f). After this phase1, if M(i,j)=1 then the hash + // table contains ((i+1),1) in Hf [hash] at some location. + + // Later, the flag values of f = 2 and 3 are also used. + // Only f=1 is set in this phase. + + // h == 0, f == 0: unoccupied and unlocked + // h == i+1, f == 1: occupied with M(i,j)=1 + + uint64_t *restrict + Hf = (uint64_t *restrict) SaxpyTasks [taskid].Hf ; + uint64_t hash_bits = (hash_size-1) ; + // scan this task's M(:,j) + for (int64_t pM = mystart ; pM < myend ; pM++) + { + GB_GET_M_ij (pM) ; // get M(i,j) + if (!mij) continue ; // skip if M(i,j)=0 + uint64_t i = GBi_M (Mi, pM, mvlen) ; + uint64_t i_mine = ((i+1) << 2) + 1 ; // ((i+1),1) + for (GB_HASH (i)) + { + // swap this task's hash entry into the hash table; + // does the following using an atomic capture: + uint64_t hf ; + + #ifdef GCC_PPC_BUG + { + // NOTE: the 64-bit atomic capture fails with gcc 9.5.0 and + // 14.2.0 on the IBM Power8NVL and s903x. It works with + // ibm-clang and clang 18.1.8 on the same Power8NVL system. + // This works but it may have performance issues since this is + // fixed by using this algorithm with a single thread that does + // all fine hash tasks: + { hf = Hf [hash] ; Hf [hash] = i_mine ; } + } + #else + { + // This fails when using gcc on the Power8 or s390x, but it + // works fine on all other architectures. It also works with + // clang on Power8 and x390x. + GB_ATOMIC_CAPTURE_UINT64 (hf, Hf [hash], i_mine) ; + } + #endif + + // Other methods tried: + // This fails too, when using gcc on the Power8: + // __atomic_exchange (&(Hf [hash]), &i_mine, &hf, __ATOMIC_SEQ_CST); + + // This also fails: + // hf = __atomic_exchange_n (&(Hf [hash]), &i_mine, + // __ATOMIC_SEQ_CST) ; + // __sync_synchronize ( ) ; + + + // This doesn't work; it requires amo.h which reports an error on + // the Power8NVL. The Power8 doesn't implement the v3.0 ISA, + // required by amo_ldat_swap. + // hf = i_mine ; + // _amo_ldat_swap (&hf, &(Hf [hash])) ; + + // This printf makes the GB_ATOMIC_CAPTURE work, if it is added!! + // printf (" Hf [%ld] = %ld, i = %ld, i_mine = %ld\n", hash, + // Hf [hash], i, i_mine) ; + + // Because of this failure, gcc must be used with caution when + // compiling GraphBLAS on the Power or s390 processor. It cannot + // use the GB_ATOMIC_CAPTURE_UINT64 defined in + // Source/omp/include/GB_atomics.h. If GraphBLAS is compiled with + // gcc on the Power or s390x systems, GCC_PPC_BUG is #defined to + // avoid this bug. + + if (hf == 0) break ; // success + // i_mine has been inserted, but a prior entry was + // already there. It needs to be replaced, so take + // ownership of this displaced entry, and keep + // looking until a new empty slot is found for it. + i_mine = hf ; + } + } +} + diff --git a/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c b/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c index 493c72d54..3ff2eae36 100644 --- a/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c +++ b/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c @@ -119,6 +119,10 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) // Hi and Hx are not initialized. int taskid ; + #if defined ( GCC_PPC_BUG ) && ( !GB_NO_MASK ) + bool punt = false ; + #endif + #pragma omp parallel for num_threads(nthreads) schedule(static,1) for (taskid = 0 ; taskid < ntasks ; taskid++) { @@ -183,62 +187,20 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) } else if (!M_in_place) - { + { //---------------------------------------------------------- - // phase1: fine hash task, C=A*B or C=A*B + // phase1: fine hash task, C=A*B or C=A*B (parallel) //---------------------------------------------------------- - // If M_in_place is true, this is skipped. The mask - // M is dense, and is used in-place. - - // The least significant 2 bits of Hf [hash] is the flag f, - // and the upper bits contain h, as (h,f). After this - // phase1, if M(i,j)=1 then the hash table contains - // ((i+1),1) in Hf [hash] at some location. - - // Later, the flag values of f = 2 and 3 are also used. - // Only f=1 is set in this phase. - - // h == 0, f == 0: unoccupied and unlocked - // h == i+1, f == 1: occupied with M(i,j)=1 - - uint64_t *restrict - Hf = (uint64_t *restrict) SaxpyTasks [taskid].Hf ; - uint64_t hash_bits = (hash_size-1) ; - // scan this task's M(:,j) - for (int64_t pM = mystart ; pM < myend ; pM++) - { - GB_GET_M_ij (pM) ; // get M(i,j) - if (!mij) continue ; // skip if M(i,j)=0 - uint64_t i = GBi_M (Mi, pM, mvlen) ; - uint64_t i_mine = ((i+1) << 2) + 1 ; // ((i+1),1) - for (GB_HASH (i)) - { - uint64_t hf ; - // swap this task's hash entry into the hash table; - // does the following using an atomic capture: -// WARNING: atomic capture fails with gcc 14.2.0 on the IBM Power8! -// It works with ibm-clang and clang 18.1.8 on the same system. -// This works (with one thread): - // { hf = Hf [hash] ; Hf [hash] = i_mine ; } -// This fails: - GB_ATOMIC_CAPTURE_UINT64 (hf, Hf [hash], i_mine) ; -// This fails too, when using gcc on the Power8: -// __atomic_exchange (&(Hf [hash]), &i_mine, &hf, __ATOMIC_SEQ_CST) ; -// This printf makes the GB_ATOMIC_CAPTURE work, if it is added!! -// printf (" Hf [%ld] = %ld, i = %ld, i_mine = %ld\n", hash, Hf [hash], i, i_mine) ; -// -// Because of this failure, gcc cannot be used to compile GraphBLAS on -// the Power processor. The cmake script has been modified accordingly. - if (hf == 0) break ; // success - // i_mine has been inserted, but a prior entry was - // already there. It needs to be replaced, so take - // ownership of this displaced entry, and keep - // looking until a new empty slot is found for it. - i_mine = hf ; - } - } + #ifdef GCC_PPC_BUG + // This fine hash task is skipped and done below, outside + // of this parallel region. + GB_ATOMIC_WRITE + punt = true ; + #else + #include "mxm/factory/GB_AxB_saxpy3_symbolic_fine_template.c" + #endif } } #endif @@ -457,6 +419,60 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) } } + //========================================================================== + // phase 1: punt, for gcc on Power8 or s390x + //========================================================================== + + // A single thread is used to do all fine hash tasks, when M_in_place + // is false. + + #if defined ( GCC_PPC_BUG ) && ( !GB_NO_MASK ) + if (punt) + { + for (taskid = 0 ; taskid < nfine ; taskid++) + { + + //------------------------------------------------------------------ + // get the task descriptor + //------------------------------------------------------------------ + + uint64_t hash_size = SaxpyTasks [taskid].hsize ; + bool use_Gustavson = (hash_size == cvlen) ; + + if (!use_Gustavson && !M_in_place) + { + + //-------------------------------------------------------------- + // get the task descriptor + //-------------------------------------------------------------- + + int64_t kk = SaxpyTasks [taskid].vector ; + int64_t bjnz = (Bp == NULL) ? bvlen : + (GB_IGET (Bp, kk+1) - GB_IGET (Bp, kk)) ; + // no work to do if B(:,j) is empty + if (bjnz == 0) continue ; + + // partition M(:,j) + GB_GET_M_j ; // get M(:,j) + + int team_size = SaxpyTasks [taskid].team_size ; + int leader = SaxpyTasks [taskid].leader ; + int my_teamid = taskid - leader ; + int64_t mystart, myend ; + GB_PARTITION (mystart, myend, mjnz, my_teamid, team_size) ; + mystart += pM_start ; + myend += pM_start ; + + //---------------------------------------------------------- + // phase1: fine hash task, C=A*B or C=A*B (1 thread) + //---------------------------------------------------------- + + #include "mxm/factory/GB_AxB_saxpy3_symbolic_fine_template.c" + } + } + } + #endif + //-------------------------------------------------------------------------- // check result for phase1 for fine tasks //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Tcov/log_May29.txt b/GraphBLAS/Tcov/log_May29.txt new file mode 100644 index 000000000..926973530 --- /dev/null +++ b/GraphBLAS/Tcov/log_May29.txt @@ -0,0 +1,327 @@ +29-May-2025 10:54:56 grbcov starting +total blocks: 19541 + +---------------------------------------------- [cover] +[malloc debugging turned off] +29-May 10:56:39 test299 0:(32,32,32) 0.0 sec 152: 19171 1.9% 6097.3/s +29-May 10:56:41 test298 0:(32,32,32) 1.9 sec 406: 18765 4.0% 217.4/s +29-May 10:56:41 test298 0:(32,32,32) 0.0 sec 62: 18703 4.3% 3136.9/s +29-May 10:56:41 test297 0:(32,32,32) 0.3 sec 132: 18571 5.0% 412.9/s +29-May 10:56:41 test295 0:(32,32,32) 0.0 sec 48: 18521 5.2% 1860.5/s +29-May 10:56:41 test294 0:(32,32,32) 0.1 sec 16: 18505 5.3% 165.6/s +29-May 10:56:45 test293 0:(32,32,32) 3.3 sec 65: 18440 5.6% 19.9/s +29-May 10:56:45 test291 0:(32,32,32) 0.0 sec 16: 18424 5.7% 580.3/s +29-May 10:56:45 test291 1:(32,32,64) 0.0 sec 1: 18421 5.7% 2915.5/s +29-May 10:56:45 test291 2:(32,64,32) 0.0 sec 4: 18417 5.8% 11594.2/s +29-May 10:56:45 test291 4:(64,32,32) 0.0 sec 1: 18416 5.8% 4784.7/s +29-May 10:56:46 test290 0:(32,32,32) 1.6 sec 2: 18414 5.8% 1.3/s +29-May 10:56:46 test287 0:(32,32,32) 0.0 sec 35: 18379 5.9% 1073.9/s +29-May 10:56:46 test287 4:(64,32,32) 0.0 sec : 18379 5.9% +29-May 10:56:47 test286 0:(32,32,32) 0.9 sec 52: 18327 6.2% 59.3/s +29-May 10:56:47 test286 0:(32,32,32) 0.0 sec 9: 18318 6.3% 3197.2/s +29-May 10:56:48 test286 1:(32,32,64) 1.0 sec : 18318 6.3% +29-May 10:56:48 test286 1:(32,32,64) 0.0 sec 1: 18317 6.3% 758.7/s +29-May 10:56:49 test286 2:(32,64,32) 0.8 sec : 18317 6.3% +29-May 10:56:49 test286 2:(32,64,32) 0.0 sec : 18317 6.3% +29-May 10:56:50 test286 4:(64,32,32) 0.9 sec 1: 18316 6.3% 1.1/s +29-May 10:56:50 test286 4:(64,32,32) 0.0 sec : 18316 6.3% +29-May 10:56:51 test78 0:(32,32,32) 0.6 sec 25: 18291 6.4% 41.6/s +29-May 10:56:51 test78 0:(32,32,32) 0.0 sec : 18291 6.4% +29-May 10:56:51 test78 4:(64,32,32) 0.3 sec 1: 18290 6.4% 3.4/s +29-May 10:56:51 test78 4:(64,32,32) 0.0 sec : 18290 6.4% +29-May 10:56:52 test285 0:(32,32,32) 0.8 sec 44: 18246 6.6% 54.8/s +29-May 10:56:52 test285 0:(32,32,32) 0.0 sec 10: 18236 6.7% 1736.4/s +29-May 10:56:52 test247 0:(32,32,32) 0.2 sec 23: 18213 6.8% 109.3/s +29-May 10:56:52 test247 0:(32,32,32) 0.1 sec 5: 18208 6.8% 46.0/s +29-May 10:56:52 test109 0:(32,32,32) 0.2 sec 33: 18175 7.0% 171.8/s +29-May 10:56:52 test109 0:(32,32,32) 0.0 sec 2: 18173 7.0% 390.9/s +29-May 10:56:52 test109 0:(32,32,32) 0.1 sec 21: 18152 7.1% 168.2/s +29-May 10:56:52 test109 0:(32,32,32) 0.0 sec 1: 18151 7.1% 1112.3/s +29-May 10:56:53 test138 0:(32,32,32) 0.1 sec 35: 18116 7.3% 246.8/s +29-May 10:56:53 test138 0:(32,32,32) 0.0 sec 1: 18115 7.3% 50.3/s +29-May 10:56:53 test172 0:(32,32,32) 0.1 sec 42: 18072 7.5% 677.4/s +29-May 10:56:53 test172 0:(32,32,32) 0.0 sec 4: 18068 7.5% 135.4/s +29-May 10:56:53 test155 0:(32,32,32) 0.1 sec 122: 17946 8.2% 2071.2/s +29-May 10:56:53 test155 0:(32,32,32) 0.0 sec 5: 17941 8.2% 225.6/s +29-May 10:56:53 test155 2:(32,64,32) 0.0 sec 2: 17939 8.2% 112.1/s +29-May 10:56:53 test155 2:(32,64,32) 0.0 sec : 17939 8.2% +29-May 10:56:53 test155 4:(64,32,32) 0.0 sec 1: 17938 8.2% 55.2/s +29-May 10:56:53 test155 4:(64,32,32) 0.0 sec : 17938 8.2% +29-May 10:56:53 test174 0:(32,32,32) 0.2 sec 19: 17919 8.3% 87.2/s +29-May 10:56:53 test174 0:(32,32,32) 0.0 sec 6: 17913 8.3% 1471.3/s +29-May 10:56:53 test203 0:(32,32,32) 0.0 sec 17: 17896 8.4% 610.6/s +29-May 10:56:53 test213 0:(32,32,32) 0.1 sec 11: 17885 8.5% 100.1/s +29-May 10:56:53 test213 0:(32,32,32) 0.0 sec 1: 17884 8.5% 784.9/s +29-May 10:56:53 test216 0:(32,32,32) 0.0 sec 12: 17872 8.5% 366.0/s +29-May 10:56:54 test225 0:(32,32,32) 0.3 sec 23: 17849 8.7% 80.5/s +29-May 10:56:54 test225 0:(32,32,32) 0.0 sec 29: 17820 8.8% 586.3/s +29-May 10:56:54 test226 0:(32,32,32) 0.2 sec 11: 17809 8.9% 56.3/s +29-May 10:56:54 test226 0:(32,32,32) 0.0 sec 2: 17807 8.9% 366.4/s +29-May 10:56:54 test235 0:(32,32,32) 0.1 sec 19: 17788 9.0% 272.5/s +29-May 10:56:54 test235 0:(32,32,32) 0.0 sec 3: 17785 9.0% 286.9/s +29-May 10:56:54 test252 0:(32,32,32) 0.0 sec 18: 17767 9.1% 662.1/s +29-May 10:56:54 test253 0:(32,32,32) 0.1 sec 30: 17737 9.2% 400.5/s +29-May 10:56:54 test255 0:(32,32,32) 0.0 sec 8: 17729 9.3% 295.5/s +29-May 10:56:55 test257 0:(32,32,32) 0.5 sec 53: 17676 9.5% 101.5/s +29-May 10:56:55 test257 0:(32,32,32) 0.0 sec 2: 17674 9.6% 3333.3/s +29-May 10:56:55 test260 0:(32,32,32) 0.0 sec 3: 17671 9.6% 113.1/s +29-May 10:56:55 test261 0:(32,32,32) 0.0 sec 37: 17634 9.8% 1536.4/s +29-May 10:56:55 test262 0:(32,32,32) 0.0 sec 16: 17618 9.8% 664.9/s +29-May 10:56:55 test263 0:(32,32,32) 0.3 sec 12: 17606 9.9% 38.4/s +29-May 10:56:55 test263 0:(32,32,32) 0.0 sec 1: 17605 9.9% 364.0/s +29-May 10:56:55 test264 0:(32,32,32) 0.0 sec 147: 17458 10.7% 3514.5/s +29-May 10:56:56 test265 0:(32,32,32) 0.5 sec 17: 17441 10.7% 31.7/s +29-May 10:56:56 test265 0:(32,32,32) 0.0 sec 1: 17440 10.8% 1257.9/s +29-May 10:56:56 test267 0:(32,32,32) 0.2 sec 16: 17424 10.8% 68.1/s +29-May 10:56:56 test269 0:(32,32,32) 0.0 sec 125: 17299 11.5% 4278.0/s +29-May 10:56:56 test271 0:(32,32,32) 0.0 sec 543: 16756 14.3% 13625.8/s +29-May 10:56:56 test272 0:(32,32,32) 0.0 sec 8: 16748 14.3% 313.0/s +29-May 10:56:56 test273 0:(32,32,32) 0.1 sec 126: 16622 14.9% 1652.9/s +29-May 10:56:56 test274 0:(32,32,32) 0.0 sec 119: 16503 15.5% 4044.2/s +29-May 10:56:56 test276 0:(32,32,32) 0.2 sec 1695: 14808 24.2% 8153.7/s +29-May 10:56:56 test277 0:(32,32,32) 0.0 sec 37: 14771 24.4% 1371.3/s +29-May 10:56:56 test279 0:(32,32,32) 0.0 sec 67: 14704 24.8% 2398.7/s +29-May 10:56:56 test281 0:(32,32,32) 0.0 sec 14: 14690 24.8% 510.3/s +29-May 10:56:57 test268 0:(32,32,32) 0.3 sec 4: 14686 24.8% 15.9/s +29-May 10:56:57 test268 0:(32,32,32) 0.0 sec 4: 14682 24.9% 841.8/s +29-May 10:56:57 test207 0:(32,32,32) 0.0 sec 7: 14675 24.9% 1799.9/s +29-May 10:56:57 test207 1:(32,32,64) 0.0 sec 1: 14674 24.9% 1470.6/s +29-May 10:56:57 test211 0:(32,32,32) 0.5 sec 23: 14651 25.0% 50.4/s +29-May 10:56:57 test211 0:(32,32,32) 0.0 sec 6: 14645 25.1% 1231.3/s +29-May 10:56:57 test183 0:(32,32,32) 0.1 sec 18: 14627 25.1% 120.7/s +29-May 10:56:58 test212 0:(32,32,32) 0.3 sec 10: 14617 25.2% 37.6/s +29-May 10:56:58 test212 0:(32,32,32) 0.0 sec 5: 14612 25.2% 2137.7/s +29-May 10:56:58 test219 0:(32,32,32) 0.0 sec 8: 14604 25.3% 277.9/s +29-May 10:56:58 test219 0:(32,32,32) 0.0 sec 4: 14600 25.3% 6299.2/s +[malloc debugging turned on] +29-May 10:56:58 test296 0:(32,32,32) 0.0 sec 28: 14572 25.4% 7104.8/s +29-May 10:56:58 test289 0:(32,32,32) 0.2 sec 83: 14489 25.9% 394.2/s +29-May 10:56:58 test288 0:(32,32,32) 0.0 sec 20: 14469 26.0% 740.2/s +29-May 10:56:58 test244 0:(32,32,32) 0.1 sec 26: 14443 26.1% 354.6/s +29-May 10:56:58 test244 1:(32,32,64) 0.0 sec 2: 14441 26.1% 70.5/s +29-May 10:56:58 test194 0:(32,32,32) 0.1 sec 24: 14417 26.2% 238.7/s +29-May 10:56:58 test09 0:(32,32,32) 0.2 sec 11: 14406 26.3% 45.7/s +29-May 10:56:58 test09 0:(32,32,32) 0.0 sec 4: 14402 26.3% 2442.0/s +29-May 10:56:59 test108 0:(32,32,32) 0.2 sec 51: 14351 26.6% 260.5/s +29-May 10:56:59 test108 0:(32,32,32) 0.0 sec 25: 14326 26.7% 682.7/s +29-May 10:56:59 test137 0:(32,32,32) 0.1 sec 13: 14313 26.8% 100.6/s +29-May 10:56:59 test137 0:(32,32,32) 0.0 sec 1: 14312 26.8% 405.8/s +29-May 10:56:59 test137 0:(32,32,32) 0.0 sec 1: 14311 26.8% 254.6/s +29-May 10:56:59 test124 0:(32,32,32) 0.2 sec 6: 14305 26.8% 37.9/s +29-May 10:57:03 test133 0:(32,32,32) 4.0 sec 12: 14293 26.9% 3.0/s +29-May 10:57:08 test133 0:(32,32,32) 4.7 sec 21: 14272 27.0% 4.5/s +29-May 10:57:09 test176 0:(32,32,32) 1.7 sec 26: 14246 27.1% 15.0/s +29-May 10:57:09 test176 0:(32,32,32) 0.1 sec 10: 14236 27.1% 137.9/s +29-May 10:57:10 test197 0:(32,32,32) 0.2 sec 12: 14224 27.2% 63.9/s +29-May 10:57:10 test197 0:(32,32,32) 0.2 sec 3: 14221 27.2% 18.0/s +29-May 10:57:10 test201 0:(32,32,32) 0.1 sec 23: 14198 27.3% 402.6/s +29-May 10:57:10 test208 0:(32,32,32) 0.1 sec 17: 14181 27.4% 277.2/s +29-May 10:57:10 test214 0:(32,32,32) 0.0 sec 39: 14142 27.6% 9639.1/s +29-May 10:57:10 test214 0:(32,32,32) 0.0 sec 5: 14137 27.7% 1958.5/s +29-May 10:57:10 test214 1:(32,32,64) 0.0 sec 1: 14136 27.7% 387.0/s +29-May 10:57:10 test214 1:(32,32,64) 0.0 sec : 14136 27.7% +29-May 10:57:10 test223 0:(32,32,32) 0.0 sec 11: 14125 27.7% 1158.1/s +29-May 10:57:10 test223 0:(32,32,32) 0.0 sec 1: 14124 27.7% 66.9/s +29-May 10:57:10 test241 0:(32,32,32) 0.1 sec 54: 14070 28.0% 860.7/s +29-May 10:57:10 test241 0:(32,32,32) 0.0 sec 8: 14062 28.0% 208.0/s +29-May 10:57:10 test270 0:(32,32,32) 0.0 sec 288: 13774 29.5% 8684.4/s +29-May 10:57:10 test199 0:(32,32,32) 0.0 sec 16: 13758 29.6% 4238.4/s +29-May 10:57:10 test210 0:(32,32,32) 0.1 sec 1: 13757 29.6% 7.5/s +29-May 10:57:10 test210 0:(32,32,32) 0.0 sec 3: 13754 29.6% 3937.0/s +29-May 10:57:10 test165 0:(32,32,32) 0.0 sec 13: 13741 29.7% 4571.0/s +29-May 10:57:10 test221 0:(32,32,32) 0.1 sec 6: 13735 29.7% 63.3/s +29-May 10:57:10 test221 0:(32,32,32) 0.0 sec 2: 13733 29.7% 1857.0/s +29-May 10:57:11 test278 0:(32,32,32) 0.0 sec 53: 13680 30.0% 1938.4/s +29-May 10:57:11 test162 0:(32,32,32) 0.0 sec 20: 13660 30.1% 993.3/s +29-May 10:57:11 test162 0:(32,32,32) 0.0 sec 1: 13659 30.1% 41.0/s +29-May 10:57:11 test275 0:(32,32,32) 0.0 sec 27: 13632 30.2% 839.1/s +29-May 10:57:11 test220 0:(32,32,32) 0.2 sec 9: 13623 30.3% 50.4/s +29-May 10:57:11 test83 0:(32,32,32) 0.3 sec 7: 13616 30.3% 26.1/s +29-May 10:57:11 test83 0:(32,32,32) 0.0 sec 1: 13615 30.3% 1443.0/s +29-May 10:57:12 test04 0:(32,32,32) 0.7 sec 13: 13602 30.4% 19.7/s +29-May 10:57:12 test04 0:(32,32,32) 0.0 sec 8: 13594 30.4% 1300.8/s +29-May 10:57:12 test132 0:(32,32,32) 0.0 sec 12: 13582 30.5% 333.7/s +29-May 10:57:12 test82 0:(32,32,32) 0.4 sec 13: 13569 30.6% 33.5/s +29-May 10:57:12 test202 0:(32,32,32) 0.0 sec 71: 13498 30.9% 4038.5/s +29-May 10:57:12 test202 0:(32,32,32) 0.0 sec 2: 13496 30.9% 111.1/s +29-May 10:57:12 test202 0:(32,32,32) 0.0 sec 4: 13492 31.0% 383.1/s +29-May 10:57:12 test202 1:(32,32,64) 0.0 sec : 13492 31.0% +29-May 10:57:12 test202 1:(32,32,64) 0.0 sec 1: 13491 31.0% 90.5/s +29-May 10:57:12 test202 1:(32,32,64) 0.0 sec : 13491 31.0% +29-May 10:57:12 test202 2:(32,64,32) 0.0 sec 1: 13490 31.0% 110.6/s +29-May 10:57:12 test202 2:(32,64,32) 0.0 sec : 13490 31.0% +29-May 10:57:12 test202 2:(32,64,32) 0.0 sec : 13490 31.0% +29-May 10:57:12 test222 0:(32,32,32) 0.1 sec 40: 13450 31.2% 688.0/s +29-May 10:57:12 test204 0:(32,32,32) 0.0 sec 9: 13441 31.2% 325.3/s +29-May 10:57:13 test258 0:(32,32,32) 0.3 sec 13: 13428 31.3% 50.8/s +29-May 10:57:13 test258 0:(32,32,32) 0.0 sec 2: 13426 31.3% 751.6/s +29-May 10:57:13 test258 1:(32,32,64) 0.1 sec 1: 13425 31.3% 14.2/s +29-May 10:57:13 test258 1:(32,32,64) 0.0 sec : 13425 31.3% +29-May 10:57:14 test136 0:(32,32,32) 1.0 sec 7: 13418 31.3% 6.7/s +29-May 10:57:14 test136 0:(32,32,32) 0.0 sec 62: 13356 31.7% 5466.9/s +29-May 10:57:15 test128 0:(32,32,32) 0.8 sec 52: 13304 31.9% 63.8/s +29-May 10:57:15 test128 0:(32,32,32) 0.1 sec 1: 13303 31.9% 9.0/s +29-May 10:57:15 test144 0:(32,32,32) 0.2 sec 5: 13298 31.9% 22.0/s +29-May 10:57:17 test81 0:(32,32,32) 2.3 sec 39: 13259 32.1% 17.0/s +[malloc debugging turned off] +29-May 10:57:18 testc2(0,0) 0:(32,32,32) 0.4 sec 179: 13080 33.1% 403.0/s +29-May 10:57:18 testc2(0,0) 1:(32,32,64) 0.3 sec 1: 13079 33.1% 3.6/s +29-May 10:57:18 test239 0:(32,32,32) 0.0 sec 10: 13069 33.1% 1068.9/s +29-May 10:57:18 test239 0:(32,32,32) 0.4 sec 1: 13068 33.1% 2.8/s +29-May 10:57:19 test245 0:(32,32,32) 0.3 sec 32: 13036 33.3% 91.5/s +29-May 10:57:19 test245 0:(32,32,32) 0.0 sec 8: 13028 33.3% 1889.5/s +29-May 10:57:19 test159 0:(32,32,32) 0.3 sec 39: 12989 33.5% 129.8/s +29-May 10:57:20 test259 0:(32,32,32) 1.0 sec 27: 12962 33.7% 26.8/s +29-May 10:57:20 test259 0:(32,32,32) 0.0 sec 1: 12961 33.7% 168.9/s +29-May 10:57:21 testc4(0) 0:(32,32,32) 1.2 sec 11: 12950 33.7% 9.1/s +29-May 10:57:22 test157 0:(32,32,32) 0.6 sec 40: 12910 33.9% 65.5/s +29-May 10:57:24 test182 0:(32,32,32) 2.0 sec 22: 12888 34.0% 11.0/s +29-May 10:57:24 test182 0:(32,32,32) 0.3 sec 13: 12875 34.1% 51.5/s +29-May 10:57:26 test195 0:(32,32,32) 2.0 sec 63: 12812 34.4% 31.4/s +29-May 10:57:29 test135 0:(32,32,32) 3.1 sec 43: 12769 34.7% 13.7/s +29-May 10:57:30 test215 0:(32,32,32) 0.1 sec 2: 12767 34.7% 23.9/s +29-May 10:57:32 test80 0:(32,32,32) 2.4 sec 11: 12756 34.7% 4.5/s +29-May 10:57:33 test200 0:(32,32,32) 0.7 sec 11: 12745 34.8% 16.2/s +29-May 10:57:35 test283 0:(32,32,32) 2.2 sec 93: 12652 35.3% 41.7/s +29-May 10:57:37 test283 1:(32,32,64) 1.8 sec 1: 12651 35.3% 0.6/s +29-May 10:57:37 test254 0:(32,32,32) 0.3 sec 25: 12626 35.4% 89.3/s +29-May 10:57:38 test254 0:(32,32,32) 1.1 sec 1: 12625 35.4% 0.9/s +29-May 10:57:41 test54 0:(32,32,32) 3.3 sec 26: 12598 35.5% 7.9/s +29-May 10:57:43 test54 0:(32,32,32) 1.2 sec 13: 12585 35.6% 10.7/s +29-May 10:57:45 testcc(1) 0:(32,32,32) 2.3 sec 10: 12575 35.6% 4.4/s +29-May 10:57:46 testcc(1) 0:(32,32,32) 1.4 sec 6: 12569 35.7% 4.3/s +29-May 10:57:47 testc2(1,1) 0:(32,32,32) 0.3 sec 11: 12558 35.7% 32.1/s +29-May 10:57:49 testc2(1,1) 0:(32,32,32) 2.8 sec 3: 12555 35.8% 1.1/s +29-May 10:57:51 test141 0:(32,32,32) 1.4 sec 521: 12034 38.4% 381.6/s +29-May 10:57:51 test179 0:(32,32,32) 0.0 sec 22: 12012 38.5% 493.3/s +29-May 10:57:52 test179 0:(32,32,32) 0.7 sec 10: 12002 38.6% 14.2/s +29-May 10:57:52 test188b 0:(32,32,32) 0.0 sec 39: 11963 38.8% 997.8/s +29-May 10:57:52 test185 0:(32,32,32) 0.0 sec 23: 11940 38.9% 559.3/s +29-May 10:57:52 test256 0:(32,32,32) 0.2 sec 38: 11902 39.1% 181.5/s +29-May 10:57:52 test256 0:(32,32,32) 0.0 sec : 11902 39.1% +29-May 10:57:52 test256 1:(32,32,64) 0.2 sec 1: 11901 39.1% 5.3/s +29-May 10:57:52 test256 1:(32,32,64) 0.0 sec : 11901 39.1% +29-May 10:57:53 test238b 0:(32,32,32) 0.8 sec 31: 11870 39.3% 39.5/s +29-May 10:57:53 test238 0:(32,32,32) 0.5 sec 64: 11806 39.6% 128.5/s +29-May 10:57:54 test186 0:(32,32,32) 0.9 sec 25: 11781 39.7% 27.5/s +29-May 10:57:54 test186 0:(32,32,32) 0.1 sec : 11781 39.7% +29-May 10:57:55 test186 0:(32,32,32) 0.1 sec : 11781 39.7% +[malloc debugging turned on] +29-May 10:57:56 testca(1) 0:(32,32,32) 1.8 sec 38: 11743 39.9% 21.4/s +29-May 10:57:58 testca(1) 0:(32,32,32) 1.7 sec 2: 11741 39.9% 1.2/s +29-May 10:57:59 test148 0:(32,32,32) 0.6 sec 7: 11734 40.0% 12.5/s +29-May 10:57:59 test148 0:(32,32,32) 0.0 sec 4: 11730 40.0% 1595.5/s +29-May 10:58:00 test231 0:(32,32,32) 1.6 sec 385: 11345 41.9% 236.5/s +29-May 10:58:01 test129 0:(32,32,32) 0.7 sec 12: 11333 42.0% 18.5/s +29-May 10:58:06 test69 0:(32,32,32) 5.0 sec 37: 11296 42.2% 7.3/s +29-May 10:58:10 test69 0:(32,32,32) 3.7 sec 12: 11284 42.3% 3.2/s +29-May 10:58:12 test29 0:(32,32,32) 1.9 sec 151: 11133 43.0% 79.5/s +29-May 10:58:13 test29 0:(32,32,32) 1.8 sec 2: 11131 43.0% 1.1/s +29-May 10:58:15 test29 1:(32,32,64) 1.8 sec 2: 11129 43.0% 1.1/s +29-May 10:58:17 test29 1:(32,32,64) 1.8 sec : 11129 43.0% +29-May 10:58:17 test282 0:(32,32,32) 0.4 sec 15: 11114 43.1% 40.3/s +29-May 10:58:18 test249 0:(32,32,32) 0.3 sec 30: 11084 43.3% 86.2/s +29-May 10:58:18 test249 0:(32,32,32) 0.3 sec 1: 11083 43.3% 3.1/s +29-May 10:58:19 test196 0:(32,32,32) 0.5 sec 18: 11065 43.4% 34.0/s +29-May 10:58:19 test250 0:(32,32,32) 0.6 sec 77: 10988 43.8% 124.7/s +29-May 10:58:20 test250 0:(32,32,32) 0.8 sec 4: 10984 43.8% 5.2/s +29-May 10:58:21 test145 0:(32,32,32) 0.7 sec 22: 10962 43.9% 30.9/s +29-May 10:58:21 test145 0:(32,32,32) 0.0 sec 6: 10956 43.9% 1161.2/s +29-May 10:58:28 test229 0:(32,32,32) 7.0 sec 14: 10942 44.0% 2.0/s +29-May 10:58:30 test209 0:(32,32,32) 2.1 sec 44: 10898 44.2% 21.3/s +29-May 10:58:32 test209 1:(32,32,64) 2.1 sec 1: 10897 44.2% 0.5/s +29-May 10:58:33 test224 0:(32,32,32) 1.5 sec 60: 10837 44.5% 41.4/s +29-May 10:58:34 test191 0:(32,32,32) 0.5 sec 26: 10811 44.7% 55.5/s +29-May 10:58:34 test191 0:(32,32,32) 0.1 sec 2: 10809 44.7% 22.1/s +29-May 10:58:34 test150 0:(32,32,32) 0.0 sec 20: 10789 44.8% 593.4/s +29-May 10:58:34 test240 0:(32,32,32) 0.3 sec 26: 10763 44.9% 78.9/s +29-May 10:58:35 test240 0:(32,32,32) 0.4 sec 1: 10762 44.9% 2.9/s +29-May 10:58:35 test237 0:(32,32,32) 0.3 sec 10: 10752 45.0% 29.4/s +29-May 10:58:35 test237 0:(32,32,32) 0.0 sec 1: 10751 45.0% 107.3/s +29-May 10:58:35 test237 0:(32,32,32) 0.0 sec 1: 10750 45.0% 101.0/s +29-May 10:58:35 test237 0:(32,32,32) 0.0 sec 1: 10749 45.0% 120.5/s +29-May 10:58:36 test184 0:(32,32,32) 1.1 sec 7: 10742 45.0% 6.5/s +29-May 10:58:40 test236 0:(32,32,32) 3.5 sec 117: 10625 45.6% 33.2/s +[malloc debugging turned off] +29-May 10:58:51 test84 0:(32,32,32) 11.0 sec 15: 10610 45.7% 1.4/s +29-May 10:58:51 test84 0:(32,32,32) 0.4 sec 32: 10578 45.9% 82.2/s +29-May 10:59:00 test84 2:(32,64,32) 9.5 sec 1: 10577 45.9% 0.1/s +29-May 10:59:01 test84 2:(32,64,32) 0.4 sec : 10577 45.9% +29-May 10:59:01 test84 0:(32,32,32) 0.4 sec : 10577 45.9% +29-May 10:59:02 test84 0:(32,32,32) 0.5 sec 4: 10573 45.9% 8.7/s +29-May 10:59:02 test84 2:(32,64,32) 0.4 sec 1: 10572 45.9% 2.2/s +29-May 10:59:03 test84 2:(32,64,32) 0.5 sec : 10572 45.9% +29-May 10:59:21 test173 0:(32,32,32) 18.1 sec 20: 10552 46.0% 1.1/s +29-May 10:59:21 test173 0:(32,32,32) 0.4 sec 4: 10548 46.0% 10.2/s +29-May 10:59:34 test230 0:(32,32,32) 12.3 sec 250: 10298 47.3% 20.3/s +29-May 10:59:35 test230 0:(32,32,32) 1.6 sec 2: 10296 47.3% 1.3/s +29-May 10:59:48 test18 0:(32,32,32) 12.4 sec 91: 10205 47.8% 7.3/s +29-May 10:59:50 test18 0:(32,32,32) 2.8 sec 7: 10198 47.8% 2.5/s +29-May 11:00:33 testc7(0) 0:(32,32,32) 42.8 sec 12: 10186 47.9% 0.3/s +29-May 11:00:39 testc7(0) 0:(32,32,32) 5.8 sec 11: 10175 47.9% 1.9/s +29-May 11:01:06 test193 0:(32,32,32) 26.9 sec 200: 9975 49.0% 7.4/s +29-May 11:01:09 test127 0:(32,32,32) 2.6 sec 929: 9046 53.7% 354.5/s +29-May 11:01:13 test23 0:(32,32,32) 4.3 sec 61: 8985 54.0% 14.3/s +29-May 11:01:19 test243 0:(32,32,32) 6.3 sec 7: 8978 54.1% 1.1/s +29-May 11:02:24 test53 0:(32,32,32) 65.2 sec 38: 8940 54.3% 0.6/s +29-May 11:02:29 test53 0:(32,32,32) 4.2 sec 5: 8935 54.3% 1.2/s +29-May 11:02:41 test242 0:(32,32,32) 12.2 sec 45: 8890 54.5% 3.7/s +29-May 11:02:52 test17 0:(32,32,32) 10.7 sec 32: 8858 54.7% 3.0/s +29-May 11:03:02 test246 0:(32,32,32) 9.9 sec 4: 8854 54.7% 0.4/s +29-May 11:03:07 test251b 0:(32,32,32) 5.6 sec 26: 8828 54.8% 4.7/s +29-May 11:03:19 test251 0:(32,32,32) 11.6 sec 100: 8728 55.3% 8.6/s +29-May 11:03:32 test152 0:(32,32,32) 13.4 sec 190: 8538 56.3% 14.2/s +29-May 11:03:47 test152 0:(32,32,32) 15.1 sec 123: 8415 56.9% 8.1/s +29-May 11:03:50 test160 0:(32,32,32) 2.6 sec 17: 8398 57.0% 6.6/s +29-May 11:04:29 test232 0:(32,32,32) 38.7 sec 59: 8339 57.3% 1.5/s +29-May 11:04:29 test232 0:(32,32,32) 0.5 sec 5: 8334 57.4% 10.8/s +29-May 11:04:31 test142b 0:(32,32,32) 1.8 sec 10: 8324 57.4% 5.6/s +29-May 11:04:31 test142b 0:(32,32,32) 0.0 sec 3: 8321 57.4% 198.0/s +29-May 11:05:29 test142 0:(32,32,32) 58.2 sec 304: 8017 59.0% 5.2/s +29-May 11:06:44 test227 0:(32,32,32) 74.9 sec 15: 8002 59.1% 0.2/s +29-May 11:06:54 test292 0:(32,32,32) 9.8 sec 1: 8001 59.1% 0.1/s +29-May 11:06:56 test192 0:(32,32,32) 1.2 sec 3: 7998 59.1% 2.5/s +29-May 11:07:05 test181 0:(32,32,32) 9.1 sec 4: 7994 59.1% 0.4/s +29-May 11:07:09 test181 0:(32,32,32) 4.8 sec 11: 7983 59.1% 2.3/s +[malloc debugging turned on] +29-May 11:07:28 test130 0:(32,32,32) 18.4 sec 8: 7975 59.2% 0.4/s +29-May 11:07:28 test130 0:(32,32,32) 0.4 sec 6: 7969 59.2% 14.4/s +29-May 11:07:29 test206 0:(32,32,32) 0.8 sec 86: 7883 59.7% 114.5/s +29-May 11:07:34 test206 0:(32,32,32) 5.2 sec 12: 7871 59.7% 2.3/s +29-May 11:07:51 test02 0:(32,32,32) 16.7 sec 3: 7868 59.7% 0.2/s +29-May 11:08:47 test11 0:(32,32,32) 56.0 sec 17: 7851 59.8% 0.3/s +29-May 11:08:53 test187 0:(32,32,32) 5.8 sec 5: 7846 59.8% 0.9/s +29-May 11:08:55 test187 0:(32,32,32) 2.1 sec 1: 7845 59.9% 0.5/s +29-May 11:08:58 test169 0:(32,32,32) 2.7 sec 32: 7813 60.0% 11.8/s +29-May 11:09:02 test76 0:(32,32,32) 4.1 sec 14: 7799 60.1% 3.4/s +29-May 11:09:11 test01 0:(32,32,32) 9.0 sec 597: 7202 63.1% 66.1/s +29-May 11:09:17 test01 0:(32,32,32) 5.4 sec 4: 7198 63.2% 0.7/s +29-May 11:09:21 test228 0:(32,32,32) 4.1 sec 25: 7173 63.3% 6.2/s +29-May 11:09:26 test104 0:(32,32,32) 5.1 sec 35: 7138 63.5% 6.8/s +29-May 11:10:33 test284 0:(32,32,32) 67.2 sec 68: 7070 63.8% 1.0/s +29-May 11:10:35 test284 0:(32,32,32) 2.1 sec 4: 7066 63.8% 1.9/s +29-May 11:10:56 test180 0:(32,32,32) 21.2 sec 21: 7045 63.9% 1.0/s +29-May 11:11:03 test180 0:(32,32,32) 6.1 sec 91: 6954 64.4% 14.9/s +29-May 11:11:12 test188 0:(32,32,32) 9.3 sec 169: 6785 65.3% 18.1/s +29-May 11:11:43 test151b 0:(32,32,32) 31.2 sec 34: 6751 65.5% 1.1/s +29-May 11:11:43 test151b 0:(32,32,32) 0.2 sec 18: 6733 65.5% 84.3/s +29-May 11:12:08 test14b 0:(32,32,32) 24.7 sec 95: 6638 66.0% 3.8/s +29-May 11:12:38 test14 0:(32,32,32) 29.3 sec 257: 6381 67.3% 8.8/s +[malloc debugging turned off] +29-May 11:13:11 test125 0:(32,32,32) 33.5 sec 319: 6062 69.0% 9.5/s +29-May 11:14:30 test10 0:(32,32,32) 79.2 sec 702: 5360 72.6% 8.9/s +29-May 11:15:11 test75b 0:(32,32,32) 40.3 sec 293: 5067 74.1% 7.3/s +29-May 11:15:41 test74 0:(32,32,32) 30.2 sec 4101: 966 95.1% 135.8/s +29-May 11:18:23 test234 0:(32,32,32) 162.3 sec 198: 768 96.1% 1.2/s +[malloc debugging turned on] +29-May 11:18:24 test154b 0:(32,32,32) 0.0 sec 12: 756 96.1% 475.8/s +29-May 11:20:38 test154 0:(32,32,32) 134.0 sec 657: 99 99.5% 4.9/s +29-May 11:21:48 test21b 0:(32,32,32) 69.7 sec 65: 34 99.8% 0.9/s +29-May 11:26:12 test19b 0:(32,32,32) 263.9 sec 20: 14 99.9% 0.1/s +29-May 11:26:14 test19b 0:(32,32,32) 1.6 sec 4: 10 99.9% 2.5/s +[malloc debugging turned off] +29-May 11:29:00 test19 0:(32,32,32) 166.0 sec 7: 3 99.9% 0.0/s +29-May 11:29:01 test19 0:(32,32,32) 0.9 sec 2: 1 99.9% 2.2/s +29-May 11:29:01 test280(0) 0:(32,32,32) 0.0 sec 1: all 100% 22.2/s +[malloc debugging turned off] +29-May-2025 11:29:01 grbcov ending diff --git a/GraphBLAS/cmake_modules/GraphBLAS_compiler_options.cmake b/GraphBLAS/cmake_modules/GraphBLAS_compiler_options.cmake index 36cfe86f4..591d764a8 100644 --- a/GraphBLAS/cmake_modules/GraphBLAS_compiler_options.cmake +++ b/GraphBLAS/cmake_modules/GraphBLAS_compiler_options.cmake @@ -32,9 +32,6 @@ if ( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" ) if ( CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9 ) message ( FATAL_ERROR "gcc version must be at least 4.9" ) endif ( ) - if ( CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc|s390)" ) - message ( FATAL_ERROR "Because of a bug in the gcc compiler itself, gcc cannot be used to compile GraphBLAS for the Power or s390 architectures; see GraphBLAS User Guide for details." ) - endif ( ) elseif ( "${CMAKE_C_COMPILER_ID}" STREQUAL "Intel" ) # options for icc: also needs -std=c11 set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -diag-disable 10397,15552 " ) diff --git a/GraphBLAS/cmake_modules/GraphBLAS_version.cmake b/GraphBLAS/cmake_modules/GraphBLAS_version.cmake index 1a82b0e99..c938dbdb0 100644 --- a/GraphBLAS/cmake_modules/GraphBLAS_version.cmake +++ b/GraphBLAS/cmake_modules/GraphBLAS_version.cmake @@ -8,10 +8,10 @@ #------------------------------------------------------------------------------- # version of SuiteSparse:GraphBLAS -set ( GraphBLAS_DATE "June 1, 2025" ) +set ( GraphBLAS_DATE "June 3, 2025" ) set ( GraphBLAS_VERSION_MAJOR 10 CACHE STRING "" FORCE ) set ( GraphBLAS_VERSION_MINOR 1 CACHE STRING "" FORCE ) -set ( GraphBLAS_VERSION_SUB 0 CACHE STRING "" FORCE ) +set ( GraphBLAS_VERSION_SUB 1 CACHE STRING "" FORCE ) # GraphBLAS C API Specification version, at graphblas.org set ( GraphBLAS_API_DATE "Dec 22, 2023" ) diff --git a/SuiteSparse_config/CMakeLists.txt b/SuiteSparse_config/CMakeLists.txt index f1b20596f..483b551a1 100644 --- a/SuiteSparse_config/CMakeLists.txt +++ b/SuiteSparse_config/CMakeLists.txt @@ -395,3 +395,4 @@ endif ( ) #------------------------------------------------------------------------------- include ( SuiteSparseReport ) +message ( STATUS "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}" )