Skip to content

Releases: DrTimothyAldenDavis/GraphBLAS

v8.3.0 (Dec 7, 2023)

07 Dec 10:29
Compare
Choose a tag to compare

Dec 7, 2028, version 8.3.0

* major change to build system: by Markus Mützel

v8.2.1 (Oct 13, 2023)

13 Oct 13:50
Compare
Choose a tag to compare

Oct 13, 2023: version 8.2.1

* (49) bug fix: GrB_mxm saxpy4 and saxpy5 had incorrectly handling of
    typecasting in v8.0.0 to v8.2.0 (caught by Erik Welch)
* cross-compiler support: replace check_c_source_runs with _compiles,
    for GraphBLAS and SuiteSparse_config, and remove check for
    getenv("HOME").
* cmake update: add "None" build type, from Antonio Rojas, for Arch Linux
* (50) bug fix: remove undefined behavior in Source/GB_add.c (Cnvec_nonempty), caught by Yves Vandreissche, Intel

v8.2.0 (Sept 15, 2023)

15 Sep 16:52
Compare
Choose a tag to compare

Sept 8, 2023: version 8.2.0

* cmake updates: SuiteSparse:: namespace by Markus Muetzel
* GB_VLA_MAXSIZE: increased to 1024; only affects compilers not
    supporting variable-length arrays (MSVC)

v8.0.2 (June 29, 2023)

29 Jun 20:02
0b813b6
Compare
Choose a tag to compare

Version 8.0.2, June 16, 2023

* added -DJITINIT=option:  use -DJITINIT to set the initial state of
    the GxB_JIT_CONTROL (4:on, 3:load, 2:run, 1:pause, 0:off).  The default
    is 4 (on) if the JIT is enabled, or 2 (run) if -DNJIT=1 is set.

v8.0.1 (May 27, 2023)

02 Jun 15:57
44b5518
Compare
Choose a tag to compare

Version 8.0.1, May 27, 2023

* (48) bug fix: GrB_*_nvals returned UINT64_MAX ('infinity') for a
    GrB_Vector of size n-by-2^60; it should return 2^60.
    Caught by Erik Welch, NVIDIA.
* added GxB_Context_error and GxB_Context_wait
* C++: changed complex typedefs for C++ that #include GraphBLAS.h;
    update from Markus Muetzel

v8.0.0 (May 18, 2023)

18 May 23:29
fa22067
Compare
Choose a tag to compare

Version 8.0.0, May 18, 2023

* version 8:  This version is a major SO version increase, since
    it removes a few minor user-visible features from SuiteSparse:GraphBLAS:
    the GrB_Descriptor no longer supports threading control, and some
    features of the GxB_SelectOp are removed (see below).  Enum values have
    been changed for compatibility with the upcoming GrB_set/get features
    in the V2.1 C API.
* The JIT:  GraphBLAS v8.0.0 now includes a JIT for the CPU kernels, which
    can compile kernels at run time.  Added GxB_set/get options and
    environment variables to control the JIT.  The GxB_*Op_new methods can
    accept NULL function pointers, if the strings are provided and valid.
* GxB_Type_new: the size of the type can be given as zero,
    in which case the size is determined via a JIT kernel.
* GxB_UnaryOp_new, GxB_BinaryOp_new, and GxB_IndexUnaryOp_new: the function
    pointer can be given as NULL, in which case the function is created by
    the JIT.
* math kernels: revised for CUDA JIT.  More accurate complex
    floating-point for Mac OS on Apple Silicon.
* Demo/wildtype_demo: change to double so that CPU and GPU versions compute
    the same result.
* GxB_get: can return malloc/calloc/realloc/free functions
* GxB_Context: an object for controlling computational resources:
    # of OpenMP threads, the chunk factor, and (draft) GPU id.
* GrB_Descriptor: removed ability to control # of OpenMP threads from the
    descriptor (a rarely used feature).  Replaced with the GxB_Context
    object.
* GxB_SelectOp: GraphBLAS no longer supports user-defined GxB_SelectOps.
    Use a GrB_IndexUnaryOp instead.  The GxB_SelectOp_new and
    GxB_SelectOp_free functions are removed entirely.  The built-in
    GxB_SelectOps, GxB_Matrix_select, GxB_Vector_select, and GxB_select
    still work.  However, the GxB_EQ_THUNK, GxB_EQ_ZERO, GxB_NE_THUNK, and
    GxB_NE_ZERO operators no longer work on user-defined types, as they did
    in v7.4.4 and earlier.  Create a user-defined GrB_IndexUnaryOp to
    compute these operations instead, and use GrB_select.
* alternative/Makefile: removed; incompatible with the JIT
* zstd: upgraded to v1.5.5 (Apr 4, 2023)

v7.4.4 (Mar 25, 2023)

03 Apr 15:22
Compare
Choose a tag to compare

Version 7.4.4, Mar 25, 2023

* (47) bug fix: OpenMP atomics require seq_cst on the ARM.
    Revised GB_atomics.h accordingly, and added them for all
    architectures (caught by Gabor Szarnyas).

This version will appear as the ACM Collected Algorithm 10xx for this paper: https://dl.acm.org/doi/10.1145/3577195 .

v7.4.3 (Jan 20, 2023)

21 Jan 12:50
0b79097
Compare
Choose a tag to compare

Version 7.4.3, Jan 20, 2023

* debug: turned on in GrB_Matrix_removeElement by mistake.

v7.4.2 (Jan 17, 2023)

19 Jan 00:38
e3d14bc
Compare
Choose a tag to compare

Version 7.4.2, Jan 17, 2023

* minor change to build system: for SuiteSparse v7.0.0
* deprecation notice:  in GraphBLAS v8.0.0, the ability to set the
    # of threads, and chunk size, in the descriptor will be removed.
    It still appears in v7.x, but will be replaced by a Context object
    in v8.0.0.

This version appears in SuiteSparse v7.0.0 as well.

v7.4.1 (Jan 9, 2023)

10 Jan 23:22
62608d5
Compare
Choose a tag to compare

Version 7.4.1, Jan 9, 2023

* global free pool: disabled.  Benefit for single-thread user applications
    was modest, and it causes too much contention in a critical section
    when the user application is multi-threaded.
* GrB_mxm: revised task creation heuristics for sparse-times-sparse for
    better performance.  "chunk" and "very_costly" had been tuned in v7.3.x
    for sparse-times-dense but this slowed down sparse-times-sparse.  The
    new heuristic keeps the chunk & very_costly parameters for
    sparse-times-dense but restores the prior values for
    sparse-times-sparse from v7.2.0 (Aug 8, 2022).  See
    Source/GB_AxB_saxpy3_slice_balanced.c.