Releases: DrTimothyAldenDavis/GraphBLAS
Releases · DrTimothyAldenDavis/GraphBLAS
v8.3.0 (Dec 7, 2023)
Dec 7, 2028, version 8.3.0
* major change to build system: by Markus Mützel
v8.2.1 (Oct 13, 2023)
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)
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)
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)
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)
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)
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)
Version 7.4.3, Jan 20, 2023
* debug: turned on in GrB_Matrix_removeElement by mistake.
v7.4.2 (Jan 17, 2023)
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)
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.