v8.0.0 (May 18, 2023)
DrTimothyAldenDavis
released this
18 May 23:29
·
813 commits
to stable
since this release
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)