Skip to content

v8.0.0 (May 18, 2023)

Compare
Choose a tag to compare
@DrTimothyAldenDavis DrTimothyAldenDavis released this 18 May 23:29
· 813 commits to stable since this release
fa22067

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)