Recent Releases of graphblas
graphblas - v10.1.1 (July 25, 2025)
July 25, 2025: version 10.1.1
* gcc can now be used on 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.
* OpenMP usage: replace omp critical with lock/unlock.
* MATLAB: added method for getting/setting the JIT cache path.
* JIT file lock/unlock: removed; if multiple user processes use
GraphBLAS at the same time, each must set their own unique JIT cache.
* (65) bug fix: theta type definitions for user-defined index binary ops
were incorrectly typedef'd in the JIT kernels.
New Contributors
- @luszczek made their first contribution in https://github.com/DrTimothyAldenDavis/GraphBLAS/pull/433
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v10.1.0...v10.1.1
- C
Published by DrTimothyAldenDavis 7 months ago
graphblas - v10.1.0 (June 1, 2025)
June 1, 2025: version 10.1.0
* add support for RISC-V vectorization: contributed by Rodion Suvorov
* added GRAPHBLAS_VANILLA: compile-time flag that disables all GxB methods
* gcc and the Power or s390 processor: using gcc on the Power or s390
architecture leads to a failure in the OpenMP atomic capture intrinsic.
See Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c. The cmake
build system has been revised so that it refuses to use gcc on a
Power-based or s390-based system. Use clang or the IBM xlc compiler
instead.
* GxB_STDC_VERSION: this is normally equal to __STDC_VERSION__ and is
determined automatically in GraphBLAS.h. If it is >= 2011012L,
then C11 is being used and the polymorphic functions (based on
_Generic) are available. It can now be #define'd by the user
application prior to its '#include "GraphBLAS.h"' statement.
If a C++ compiler is used to compile the user application then
GxB_STDC_VERSION is set to 199001L to denote C90 (and no _Generic
keyword is used). See GraphBLAS/Demo/Include/graphblas_demo.h
for an example usage.
* minor updates to build system
* iterator methods: revised so they do not conflict with the copy of
GraphBLAS v7.4.4 used inside MATLAB R2024b. No effect on normal
C API, so no change in major SO number for this release.
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v10.0.5...v10.1.0
- C
Published by DrTimothyAldenDavis 9 months ago
graphblas - v10.1.0-beta.2 (May 29, 2025)
May 29, 2025: version 10.1.0
* add support for RISC-V vectorization: contributed by Rodion Suvorov
* added GRAPHBLAS_VANILLA: compile-time flag that disables all GxB methods
* gcc and the Power or s390 processor: using gcc on the Power or s390
architecture leads to a failure in the OpenMP atomic capture intrinsic.
See Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c. The cmake
build system has been revised so that it refuses to use gcc on a
Power-based or s390-based system. Use clang or the IBM xlc compiler
instead.
* GxB_STDC_VERSION: this is normally equal to __STDC_VERSION__ and is
determined automatically in GraphBLAS.h. If it is >= 2011012L,
then C11 is being used and the polymorphic functions (based on
_Generic) are available. It can now be #define'd by the user
application prior to its '#include "GraphBLAS.h"' statement.
If a C++ compiler is used to compile the user application then
GxB_STDC_VERSION is set to 199001L to denote C90 (and no _Generic
keyword is used). See GraphBLAS/Demo/Include/graphblas_demo.h
for an example usage.
* minor updates to build system
* iterator methods: revised so they do not conflict with the copy of
GraphBLAS v7.4.4 used inside MATLAB R2024b. No effect on normal
C API, so no change in major SO number for this release.
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v10.0.5...v10.1.0-beta.2
- C
Published by DrTimothyAldenDavis 9 months ago
graphblas - v10.1.0-beta.1 (May 27, 2025)
May 27, 2025: version 10.1.0-beta.1
* add support for RISC-V vectorization: contributed by Rodion Suvorov
* added GRAPHBLAS_VANILLA: compile-time flag that disables all GxB methods
* gcc and the Power or s390 processor: using gcc on the Power or s390
architecture leads to a failure in the OpenMP atomic capture intrinsic.
See Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c. The cmake
build system has been revised so that it refuses to use gcc on a
Power-based or s390-based system. Use clang or the IBM xlc compiler
instead.
* GxB_STDC_VERSION: this is normally equal to __STDC_VERSION__ and is
determined automatically in GraphBLAS.h. If it is >= 2011012L,
then C11 is being used and the polymorphic functions (based on
_Generic) are available. It can now be #define'd by the user
application prior to its '#include "GraphBLAS.h"' statement.
If a C++ compiler is used to compile the user application then
GxB_STDC_VERSION is set to 199001L to denote C90 (and no _Generic
keyword is used). See GraphBLAS/Demo/Include/graphblas_demo.h
for an example usage.
* minor updates to build system
* iterator methods: revised so they do not conflict with the copy of
GraphBLAS v7.4.4 used inside MATLAB R2024b. No effect on normal
C API, so no change in major SO number for this release.
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v10.0.5...v10.1.0-beta.1
- C
Published by DrTimothyAldenDavis 9 months ago
graphblas - v10.0.5 (May 5, 2025)
May 5, 2025: version 10.0.5
* revised cmake build system
* (64) bug fix: GrB_assign, C<M>+=A, method 08n, when A is full.
Caught by Gabe Gomez.
* (63) bug fix: GrB_mxm when using the masked dot-product
and the output matrix is iso-valued.
- C
Published by DrTimothyAldenDavis 10 months ago
graphblas - v10.0.3 (Apr 10, 2025)
Apr 10, 2025: version 10.0.3
* upgrade xxHash to 0.8.3: contributed by Christoph Grueninger
* upgrade cpu_features to 0.9.0: contributed by Christoph Grueninger
* Octave interface: revised for the recent MacOS (15.3.2), assuming that
both octave and OpenMP are installed via homebrew.
* (62) bug fix: GxB_Matrix_build*Vector when C is held by row and
I,J have different integer types; was broken.
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v10.0.2...v10.0.3
- C
Published by DrTimothyAldenDavis 11 months ago
graphblas - v10.0.2 (Mar 20, 2025)
Mar 20, 2025: version 10.0.2
* performance: improved the performance of GrB_setElement when many
entries are inserted into a matrix that is initially empty.
* (61) bug fix: GxB_Serialized_get_Scalar declared twice in GraphBLAS.h;
caught by Erik Welch.
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v10.0.1...v10.0.2
- C
Published by DrTimothyAldenDavis 12 months ago
graphblas - v10.0.2-beta1 (Mar 16, 2025)
Mar 20, 2025: version 10.0.2
* performance: improved the performance of GrB_setElement when many
entries are inserted into a matrix that is initially empty.
* (61) bug fix: GxB_Serialized_get_Scalar declared twice in GraphBLAS.h;
caught by Erik Welch.
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v10.0.1...v10.0.2-beta1
- C
Published by DrTimothyAldenDavis 12 months ago
graphblas - v10.0.1 (Mar 6, 2025)
Mar 6, 2025: version 10.0.1
* (60) bug fix: one of the GrB_mxm kernels (saxpy4) can hit a segfault for
user-defined types, in the JIT kernels. Caught by Gabe Gomez.
Mar 1, 2025: version 10.0.0
* 32/64 bit matrices and vectors: the GrB_Matrix and GrB_Vector
now exploit 32-bit integers when possible. New methods added to pass
32-bit integer arrays to/from GrB_build, extract, assign, subassign,
and extractTuples. New object, the GxB_Container added for fast
import/export of matrices/vectors with arbitrary integer content.
* GrB_Field: this enum is strongly deprecated, and replaced with
'typedef int GrB_Field'. This is an upward-compatible change to the
API, and will allow the creation of a future mathematical field object
in GraphBLAS. This type should not be used; use an int instead.
It will be removed or replaced in a future version of GraphBLAS.
* enum parameters: replaced all enum parameters with int, to simplify
future updates to enum parameters, including the GrB_Field.
* GxB_JIT_ERROR: added in 9.4.x, changed value to avoid conflict with
LAGraph error codes.
* pack/unpack: these are declared historical; they still work but use
64-bit integers only. Use the new GxB_Container methods instead.
* GxB_Matrix_iso and GxB_Vector_iso: declared historical; use GrB_get
with the new GxB_ISO enum.
* GxB_Matrix_type, GxB_Vector_type, GxB_Scalar_type: no longer historical;
added back to the user guide.
* Summary: the API is upward-compatible with 9.4.x, but only after
the user application is recompiled with GraphBLAS v10.0.0.
As a result, the SO version must increase from 9 to 10.
- C
Published by DrTimothyAldenDavis 12 months ago
graphblas - v10.0.0 (Mar 3, 2025)
Mar 3, 2025: version 10.0.0
* 32/64 bit matrices and vectors: the GrB_Matrix and GrB_Vector
now exploit 32-bit integers when possible. New methods added to pass
32-bit integer arrays to/from GrB_build, extract, assign, subassign,
and extractTuples. New object, the GxB_Container added for fast
import/export of matrices/vectors with arbitrary integer content.
* GrB_Field: this enum is strongly deprecated, and replaced with
'typedef int GrB_Field'. This is an upward-compatible change to the
API, and will allow the creation of a future mathematical field object
in GraphBLAS. This type should not be used; use an int instead.
It will be removed or replaced in a future version of GraphBLAS.
* enum parameters: replaced all enum parameters with int, to simplify
future updates to enum parameters, including the GrB_Field.
* GxB_JIT_ERROR: added in 9.4.x, changed value to avoid conflict with
LAGraph error codes.
* pack/unpack: these are declared historical; they still work but use
64-bit integers only. Use the new GxB_Container methods instead.
* GxB_Matrix_iso and GxB_Vector_iso: declared historical; use GrB_get
with the new GxB_ISO enum.
* GxB_Matrix_type, GxB_Vector_type, GxB_Scalar_type: no longer historical;
added back to the user guide.
* Summary: the API is upward-compatible with 9.4.x, but only after
the user application is recompiled with GraphBLAS v10.0.0.
As a result, the SO version must increase from 9 to 10.
- C
Published by DrTimothyAldenDavis about 1 year ago
graphblas - v10.0.0-beta1 (Feb 27, 2025)
Feb 27, 2025: version 10.0.0-beta1
* 32/64 bit matrices and vectors: the GrB_Matrix and GrB_Vector
now exploit 32-bit integers when possible. New methods added to pass
32-bit integer arrays to/from GrB_build, extract, assign, subassign,
and extractTuples. New object, the GxB_Container added for fast
import/export of matrices/vectors with arbitrary integer content.
* GrB_Field: this enum is strongly deprecated, and replaced with
'typedef int GrB_Field'. This is an upward-compatible change to the
API, and will allow the creation of a future mathematical field object
in GraphBLAS. This type should not be used; use an int instead.
It will be removed or replaced in a future version of GraphBLAS.
* enum parameters: replaced all enum parameters with int, to simplify
future updates to enum parameters, including the GrB_Field.
* GxB_JIT_ERROR: added in 9.4.x, changed value to avoid conflict with
LAGraph error codes.
* pack/unpack: these are declared historical; they still work but use
64-bit integers only. Use the new GxB_Container methods instead.
* GxB_Matrix_iso and GxB_Vector_iso: declared historical; use GrB_get
with the new GxB_ISO enum.
* GxB_Matrix_type, GxB_Vector_type, GxB_Scalar_type: no longer historical;
added back to the user guide.
* Summary: the API is upward-compatible with 9.4.x, but only after
the user application is recompiled with GraphBLAS v10.0.0.
As a result, the SO version must increase from 9 to 10.
- C
Published by DrTimothyAldenDavis about 1 year ago
graphblas - v9.4.5 (Feb 20, 2025)
Feb 20, 2025: version 9.4.5
* (59) bug fix: the GxB_NO_INT32 and GxB_NOT_INT64 flags in GB_control.h
did not completely remove some of the INT32 and INT64 factory kernels.
Caught by Erik Welch, NVIDIA.
* AppleClang compiler bug: On the Mac, the Source/mask/GB_masker.c file
triggers a bug in AppleClang 16.0.0 with -O3 in (MacOS 14.6.1 (23G93),
Xcode 16.2, Apple clang version 16.0.0, clang-1600.0.26.6). It also
fails in MacOS 15.2 (Target: arm64-apple-darwin23.6.0). The bug is
triggered by these tests in LAGraph (v1.2 branch, unreleased, Jan 4,
2025):
39 - LAGraphX_BF (SIGTRAP)
40 - LAGraphX_Coarsen_Matching (Failed)
41 - LAGraphX_FastGraphletTransform (SIGTRAP)
49 - LAGraphX_PageRankGX (SIGTRAP)
54 - LAGraphX_SquareClustering (SIGTRAP)
61 - LAGraphX_msf (Failed)
When using clang, optimization is turned off for this file. This has
no impact on performance since GB_masker.c is very simple, consisting
of a single sequence of calls to other methods.
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v9.4.4...v9.4.5
- C
Published by DrTimothyAldenDavis about 1 year ago
graphblas - v10.0.0.alpha2 (Feb 22, 2025)
v10.0.0.alpha2 (Feb 22, 2025):
user guide updated minor code changes:
- (1) assign scalar with GrBassign, and I and J are GrBVectors of length 1 and of type uint32_t
- (2) added GrBget (blob, &iso, GxBISO, blobsize)
- (3) code cleanup from clang -Wall
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v10.0.0.alpha1...v10.0.0.alpha2
- C
Published by DrTimothyAldenDavis about 1 year ago
graphblas - v10.0.0.alpha1 (Feb 21, 2025)
Feb 21, 2025: version 10.0.0.alpha1
* 32/64 bit matrices and vectors: the GrB_Matrix and GrB_Vector
now exploit 32-bit integers when possible. New methods added to pass
32-bit integer arrays to/from GrB_build, extract, assign, subassign,
and extractTuples. New object, the GxB_Container added for fast
import/export of matrices/vectors with arbitrary integer content.
* GrB_Field: this enum is strongly deprecated, and replaced with
'typedef int GrB_Field'. This is an upward-compatible change to the
API, and will allow the creation of a future mathematical field object
in GraphBLAS. This type should not be used; use an int instead.
It will be removed or replaced in a future version of GraphBLAS.
* enum parameters: replaced all enum parameters with int, to simplify
future updates to enum parameters, including the GrB_Field.
* GxB_JIT_ERROR: added in 9.4.x, changed value to avoid conflict with
LAGraph error codes.
* pack/unpack: these are declared historical; they still work but use
64-bit integers only. Use the new GxB_Container methods instead.
* GxB_Matrix_iso and GxB_Vector_iso: declared historical; use GrB_get
with the new GxB_ISO enum.
* GxB_Matrix_type, GxB_Vector_type, GxB_Scalar_type: no longer historical;
added back to the user guide.
* Summary: the API is upward-compatible with 9.4.x, but only after
the user application is recompiled with GraphBLAS v10.0.0.
As a result, the SO version must increase from 9 to 10.
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v9.4.4...v10.0.0.alpha1
- C
Published by DrTimothyAldenDavis about 1 year ago
graphblas - v9.4.5.beta2 (Feb 20, 2025)
v9.4.5.beta2 (Feb 20, 2025)
- (59) bug fix: the GxBNOINT32 and GxBNOTINT64 flags in GB_control.h did not completely remove some of the INT32 and INT64 factory kernels. Caught by Erik Welch, NVIDIA.
- AppleClang compiler bug: On the Mac, the Source/mask/GBmasker.c file triggers a bug in AppleClang 16.0.0 with -O3 in (MacOS 14.6.1 (23G93), Xcode 16.2, Apple clang version 16.0.0, clang-1600.0.26.6). It also fails in MacOS 15.2 (Target: arm64-apple-darwin23.6.0). The bug is triggered by these tests in LAGraph (v1.2 branch, unreleased, Jan 4, 2025): 39 - LAGraphXBF (SIGTRAP) 40 - LAGraphXCoarsenMatching (Failed) 41 - LAGraphXFastGraphletTransform (SIGTRAP) 49 - LAGraphXPageRankGX (SIGTRAP) 54 - LAGraphXSquareClustering (SIGTRAP) 61 - LAGraphXmsf (Failed) When using clang, optimization is turned off for this file. This has no impact on performance since GB_masker.c is very simple, consisting of a single sequence of calls to other methods.
v9.4.5.beta2: extend pragma in Source/mask/GB_masker.c, since it also fails with clang-cl on MS Windows.
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v9.4.4...v9.4.5.beta2
- C
Published by DrTimothyAldenDavis about 1 year ago
graphblas - v9.4.4 (Feb 17, 2025)
Feb 17, 2025: version 9.4.4
* (58) bug fix: semirings with user-defined monoids and the GrB_ONEB or
GxB_PAIR operators caused a JIT compiler error. Caught by Gabe Gomez.
* (57) bug fix: GraphBLAS.h header: remove duplicate definitions of
GxB_MAX_FIRST_* semirings (incompletely moved to 'historical' section
in 9.4.2).
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v9.4.2...v9.4.4
- C
Published by DrTimothyAldenDavis about 1 year ago
graphblas - v9.4.2 (Nov 18, 2024)
Nov 18, 2024: version 9.4.2
* clarified User Guide: regarding when the hyper-hash is built
* JIT: reduced JIT kernel encodings
* also: includes the updates from 9.4.0.beta and 9.4.1.beta listed below
* new JIT kernels added: for GrB_assign, GrB_extract, GxB_sort,
GrB_kronecker, stand-alone mask phase, and utilities (convert to/from
sparse/bitmap, unjumble). All kernels formerly tagged "JIT: needed"
are now finished.
* removed Factory kernels for: types int8 and uint8, and semirings:
max_min, max_plus, max_times, min_max, min_times, plus_min, plus_max,
non-Boolean land/lor/lxor/lxnor, and integer times_first/second,
to reduce size of compiled library. JIT kernels will be used instead
for these types and semirings.
* GxB_IndexBinaryOp: finalized and named as GxB_*.
* new operator and associated methods: added the draft G*B_IndexBinaryOp
* JIT error-handling behavior changed: if a compiler error occurs in the
JIT, GxB_JIT_ERROR is now returned. Previously, GraphBLAS would fall
back to a generic method if such an error occurred.
- C
Published by DrTimothyAldenDavis over 1 year ago
graphblas - v9.4.0.beta1 (Oct 15, 2024)
Oct 15, 2024: version 9.4.0 (BETA)
* new operator and associated methods: added the GxB_IndexBinaryOp
* JIT error-handling behavior changed: if a compiler error occurs in the
JIT, GxB_JIT_ERROR is now returned. Previously, GraphBLAS would fall
back to a generic method if such an error occurred.
In this beta release, the GzB* methods and objects have a temporary name, to mark them as newly added methods. They will appear as GxB* in the final stable release of GraphBLAS 9.4.0, perhaps with changes in their API.
- C
Published by DrTimothyAldenDavis over 1 year ago
graphblas - v9.3.1 (Aug 12, 2024)
Aug 12, 2024: version 9.3.1
* (56) bug fix: wrong type for fgetc return value in JITpackage; leads
to infinite loop on some systems when building GraphBLAS.
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v9.3.0...v9.3.1
- C
Published by DrTimothyAldenDavis over 1 year ago
graphblas - v9.3.0 (Aug 2, 2024)
Aug 2, 2024: version 9.3.0
* code restructuring: Source folder split into many subfolders, and
some files and internal functions renamed. No visible external change.
* (55) bug fix: GrB_apply with user-defined index-unary op would fail if
A was iso and the JIT was disabled (failure in generic case).
Caught by Christina Koutsou.
* (54) bug fix: reducing a huge iso full matrix to a scalar resulted in
integer overflow if nrows*ncols was larger than about 2^60.
* reduced size of compiled library: int16 and uint16 types and operators
for FactoryKernels are disabled in GB_control.h. The JIT will always
be used instead.
- C
Published by DrTimothyAldenDavis over 1 year ago
graphblas - v9.2.0 (May 22, 2024)
May 22, 2024: version 9.2.0
* Added graphblas_install.m: for a simpler method of compiling
the MATLAB/Octave interface for GraphBLAS.
* JIT: sanitizing the JIT cache path, better burble for compiler errors
* GrB_get/GrB_set: better handling of concurrent get/set between different
user threads
- C
Published by DrTimothyAldenDavis almost 2 years ago
graphblas - v9.2.0.beta1 (May 22, 2024)
May 22, 2024: version 9.2.0
* Added graphblas_install.m: for a simpler method of compiling
the MATLAB/Octave interface for GraphBLAS.
* JIT: sanitizing the JIT cache path, better burble for compiler errors
* GrB_get/GrB_set: better handling of concurrent get/set between different
user threads
- C
Published by DrTimothyAldenDavis almost 2 years ago
graphblas - v9.1.1.beta2 (Apr 9, 2024)
Apr 9, 2024: version 9.1.1
* JIT: sanitizing the JIT cache path, better burble for compiler errors
* GrB_get/GrB_set: better handling of concurrent get/set between different
user threads
- C
Published by DrTimothyAldenDavis almost 2 years ago
graphblas - v9.1.1.beta1 (Apr 3, 2024)
Apr 7, 2024: version 9.1.1
* JIT: sanitizing the JIT cache path, better burble for compiler errors
* GrB_get/GrB_set: better handling of concurrent get/set between different
user threads
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v9.1.0...v9.1.1.beta1
- C
Published by DrTimothyAldenDavis almost 2 years ago
graphblas - v9.1.0 (Mar 22, 2024)
Mar 22, 2024: version 9.1.0
* minor updates to build system
* C11 complex type detection: this is now detected and configured by
cmake, instead of using an #if ... in the GraphBLAS.h header.
This change was required to port GraphBLAS to the clang-cl compiler
on Windows when it simulates the MSVC compiler. Also added a new
feature (thus the minor version update to 9.1.0): GxB_HAVE_COMPLEX* to
GraphBLAS.h to indicate which kind of complex data types are available
in C11 or MSVC. Contributed by Markus Mützel.
* port to clang-cl: fixing the GxB_get and GxB_set macro
* (53) bug fix: eWiseAdd C<M>=A+B when M, A, and B are all hypersparse;
access to M was incorrect (also affects C<M>+=T for any operation, if
M and T are both hypersparse). Caught by Roi Lipman.
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v9.0.3...v9.1.0
- C
Published by DrTimothyAldenDavis almost 2 years ago
graphblas - v9.1.0.beta1 (Mar 22, 2024)
Mar 22, 2024: version 9.1.0
* minor updates to build system
* C11 complex type detection: this is now detected and configured by
cmake, instead of using an #if ... in the GraphBLAS.h header.
This change was required to port GraphBLAS to the clang-cl compiler
on Windows when it simulates the MSVC compiler. Also added a new
feature (thus the minor version update to 9.1.0): GxB_HAVE_COMPLEX* to
GraphBLAS.h to indicate which kind of complex data types are available
in C11 or MSVC. Contributed by Markus Mützel.
* port to clang-cl: fixing the GxB_get and GxB_set macro
* (53) bug fix: eWiseAdd C<M>=A+B when M, A, and B are all hypersparse;
access to M was incorrect (also affects C<M>+=T for any operation, if
M and T are both hypersparse). Caught by Roi Lipman.
- C
Published by DrTimothyAldenDavis almost 2 years ago
graphblas - v9.0.3 (Mar 1, 2024)
Fixes a performance bug, where the JIT kernels (since v8.3.1) were not compiled with openmp.
- C
Published by DrTimothyAldenDavis about 2 years ago
graphblas - v9.0.2 (Feb 26, 2024)
Fixes the Makefile, "make static", which builds just the static library.
- C
Published by DrTimothyAldenDavis about 2 years ago
graphblas - v9.0.1 (Jan 20, 2024)
Jan 20, 2024: version 9.0.1
* minor updates to build system
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v9.0.0...v9.0.1
- C
Published by DrTimothyAldenDavis about 2 years ago
graphblas - v9.0.0 (Jan 10, 2024)
Jan 10, 2024: version 9.0.0
* GrB_get/GrB_set: new functions from the v2.1 C API.
* GrB_Type_new, GrB_UnaryOp_new, GrB_IndexUnaryOp_new: no longer macros,
since GrB_set can be used to set the names of the operators. These
methods no longer extract the name, so the default name is now the
empty string. This is because GrB_get/set can only set these names
once. This is a non-compatible change of behavior for these 3
methods, so SuiteSparse:GraphBLAS must become v9.0.0.
* historical methods: many methods are replaced by GrB_get and GrB_set.
They remain in SuiteSparse:GraphBLAS but have been declared historical.
Terse prototypes exist in GraphBLAS.h, and any discussion is removed
from the User Guide: GxB_get, GxB_set, and the methods they call, and
many more. Use GrB_get/set in place those methods, and for:
GxB_*type_name, GxB_*type, GxB_Monoid_operator, GxB_Monoid_identity,
GxB_Monoid_terminal, GxB_Semiring_add, GxB_Semiring_multiply. Use
GrB_STORAGE_ORIENTATION_HINT in place of GxB_FORMAT.
* hyper_hash: constructed only if the # of non-empty vectors in a
hypersparse matrix is large (> 1024, by default)
* minor updates to build system: *.pc files for pkgconfig
The GraphBLAS v2.1 C API appears at https://github.com/GraphBLAS/graphblas-api-c/releases/tag/v2.1 .
- C
Published by DrTimothyAldenDavis about 2 years ago
graphblas - v8.3.1 (Dec 30, 2023)
Dec 30, 2023: version 8.3.1
* major change to build system: by Markus Mützel
* GraphBLAS.h: remove "undef I"
- C
Published by DrTimothyAldenDavis about 2 years ago
graphblas - v9.0.0.beta7 (Dec 29, 2023)
Jan 1, 2024: version 9.0.0
* GrB_get/GrB_set: new functions from the v2.1 C API.
* GrB_Type_new, GrB_UnaryOp_new, GrB_IndexUnaryOp_new: no longer macros,
since GrB_set can be used to set the names of the operators. These
methods no longer extract the name, so the default name is now the
empty string. This is because GrB_get/set can only set these names
once. This is a non-compatible change of behavior for these 3
methods, so SuiteSparse:GraphBLAS must become v9.0.0.
* historical methods: many methods are replaced by GrB_get and GrB_set.
They remain in SuiteSparse:GraphBLAS but have been declared historical.
Terse prototypes exist in GraphBLAS.h, and any discussion is removed
from the User Guide: GxB_get, GxB_set, and the methods they call, and
many more. Use GrB_get/set in place those methods, and for:
GxB_*type_name, GxB_*type, GxB_Monoid_operator, GxB_Monoid_identity,
GxB_Monoid_terminal, GxB_Semiring_add, GxB_Semiring_multiply. Use
GrB_STORAGE_ORIENTATION_HINT in place of GxB_FORMAT.
* hyper_hash: constructed only if the # of non-empty vectors in a
hypersparse matrix is large (> 1024, by default)
This version of GraphBLAS will appear in SuiteSparse 7.5.0 (see the graphblasdev2 branch of the SuiteSparse repo, at https://github.com/DrTimothyAldenDavis/SuiteSparse/tree/graphblasdev2
- C
Published by DrTimothyAldenDavis about 2 years ago
graphblas - v8.3.1.beta1 (Dec 11, 2023)
Updates to how the JITpackage is built. Remove #undef I after #include <complex.h> in GraphBLAS.h.
- C
Published by DrTimothyAldenDavis about 2 years ago
graphblas - v8.3.0 (Dec 7, 2023)
Dec 7, 2028, version 8.3.0
* major change to build system: by Markus Mützel
- C
Published by DrTimothyAldenDavis about 2 years ago
graphblas - 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
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v9.0.0.beta6 (Oct 11, 2023)
fixes undefined behavior in GBadd.c (Cnvecnonempty)
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v8.2.1.beta3 (Oct 11, 2023)
Fixes undefined behavoir in GBadd.c, by initializing Cnvecnonempty.
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v9.0.0.beta5 (Oct 7, 2023)
Added fixes from v8.2.1.beta2:
* (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
v9.0.0 will remain in beta release until the v2.1 C API is officially released (see https://github.com/GraphBLAS/graphblas-api-c/pull/73).
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v8.2.1.beta2 (Oct 7, 2023)
Oct 7, 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
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v9.0.0.beta4 (Sept 19, 2023)
cmake update from Antonio Rojas, and updates to CUDA kernels (not yet in production however).
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v8.2.1.beta1 (Sept 19, 2023)
cmake update: add "None" build type from Antonio Rojas, for Arch Linux.
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - 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)
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v9.0.0.beta3 (Sept 12, 2023)
Update to build system for CUDA.
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v9.0.0.beta2 (Sept 12, 2023)
sync modifications to GraphBLAS/Include/GraphBLAS.h and Source/GB_jitifyer.c from v8.2.0.
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v8.2.0.beta4 (Sept 12, 2023)
Revise CMakeLists.txt to sync with SuiteSparse v7.2.0.beta4.
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v9.0.0.beta1 (Sept 10, 2023)
version 9.0.0.beta1
* GrB_get/GrB_set: new functions from the v2.1 C API.
* GrB_Type_new, GrB_UnaryOp_new, GrB_IndexUnaryOp_new: no longer macros,
since GrB_set can be used to set the names of the operators. These
methods no longer extract the name, so the default name is now the
empty string. This is because GrB_get/set can only set these names
once. This is a non-compatible change of behaviour for these 3
methods, so SuiteSprase:GraphBLAS must become v9.0.0.
* historical methods: many methods are replaced by GrB_get and GrB_set.
They remain in SuiteSparse:GraphBLAS but have been declared historical.
Terse prototypes exist in GraphBLAS.h, and any discussion is removed
from the User Guide: GxB_get, GxB_set, and the methods they call, and
many more. Use GrB_get/set in place those methods, and for:
GxB_*type_name, GxB_*type, GxB_Monoid_operator, GxB_Monoid_identity,
GxB_Monoid_terminal, GxB_Semiring_add, GxB_Semiring_multiply. Use
GrB_STORAGE_ORIENTATION_HINT in place of GxB_FORMAT.
* hyper_hash: constructed only if the # of non-empty vectors in a
hypersparse matrix is large (> 1024, by default)
Note that there are two concurrent beta versions: v8.2.0 and v9.0.0. Version 8.2.0 is only a minor update in terms of the code itself; the major update to v8.2.0 is the cmake build system (by Markus Muetzel). Version 8.2.0 will appear soon in the next release of SuiteSparse v7.2.0. GraphBLAS v9 adds support for the new functions in the GraphBLAS v2.1 C API.
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v8.2.0.beta3 (Sept 10, 2023)
Revised GBVLAMAXSIZE to 1024 bytes (max size of a user-defined GrB_Type for compilers that do not support variable-sized arrays)
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v8.2.0.beta2 (Sept 8, 2023)
Sync with SuiteSparse v7.2.0.beta release.
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v8.2.0.beta1 (Sept 5, 2023)
updates to cmake build system, by Markus Muetzel.
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - 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.
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v8.0.2.beta4 (June 27, 2023)
What's Changed
- v8.0.2: changelog and docs by @DrTimothyAldenDavis in https://github.com/DrTimothyAldenDavis/GraphBLAS/pull/224
Full Changelog: https://github.com/DrTimothyAldenDavis/GraphBLAS/compare/v8.0.2.beta3...v8.0.2.beta4
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v8.0.2.beta2 (June 16, 2023)
Added -DJITINIT option, and made some minor changes to the build system, for integration into SuiteSparse v7.1.0.
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - v8.0.2.beta1 (June 7, 2023)
Version 8.0.2, June 7, 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.
- C
Published by DrTimothyAldenDavis over 2 years ago
graphblas - 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
- C
Published by DrTimothyAldenDavis almost 3 years ago
graphblas - v8.0.1.beta1 (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
- C
Published by DrTimothyAldenDavis almost 3 years ago
graphblas - 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)
- C
Published by DrTimothyAldenDavis almost 3 years ago
graphblas - v8.0.0.draft9 (May 3, 2023)
Nearing completion. Test coverage is at 99.2%. Need to test on Windows. The GxBget function that reads the GxBJIT_* strings needs to be redesigned; it will differ in the final v8.0.0. Otherwise this version is very stable and passes all tests.
- C
Published by DrTimothyAldenDavis almost 3 years ago
graphblas - v8.0.0.draft8 (Apr 22, 2023)
Getting close to a beta release of v8.0.0. Added file locking mechanism, other features, various bug fixes. Main TODO left: port to Windows.
- C
Published by DrTimothyAldenDavis almost 3 years ago
graphblas - v8.0.0.draft7 (Apr 17, 2023)
GxBTypenew can now be passed a typesize of zero, which indicates that the JIT must be used to compile a kernel with the user-defined type, to determine its actual size. Also fixed some bugs in the user-defined complex type in the Demos folder, some compiler errors on the Arm MacOS build, and enabled debug mode in the JIT. See the top-level TODO.txt file for tasks needing to be done before this can be released as a robust v8.0.0.beta1: port to Windows, a few FIXME's in the code, thread-safety issues, spurious compiler warnings on the Arm MacOS, and needing to trim some files not needed from the GB_JITpackage.c file.
- C
Published by DrTimothyAldenDavis almost 3 years ago
graphblas - v8.0.0.draft6 (Apr 14, 2023)
New features for the JIT:
(1) no more dependency on the GraphBLAS source code. The source is now compressed and embedded inside the binary libgraphblas.so itself, and emitted by GrB_init into your ~/.SuiteSparse/GraphBLAS/8.0.0/src folder.
(2) no more dependency on linking the JIT kernels with -lgraphblas itself. Instead, I pass in a container with a few function pointers so the few JIT kernels that need to can callback into GraphBLAS. This avoids the problem of having my JIT compiler "find itself", and avoids linking with the wrong version of -lgraphblas.
(3) no more C function pointers required when creating user-defined operators. Pass in a NULL function pointer and I'll just use my JIT to make one for you, for the few cases where I still need it (Most computationally intensive uses of user-defined ops use the strings, not the function pointers, but I still need the function pointers in some places, like calling an operator just once to compute a single scalar when the matrix is iso-valued).
- C
Published by DrTimothyAldenDavis almost 3 years ago
graphblas - v8.0.0.draft5 (Apr 10, 2023)
Polishing v8.0.0. The MATLAB interface now works, as do my brutal tests (which require my MATLAB interface). All tests now pass.
- C
Published by DrTimothyAldenDavis almost 3 years ago
graphblas - v8.0.0.draft4 (Apr 3, 2023)
v8.0.0.draft4 adds the PreJIT to SuiteSparse:GraphBLAS. See Section 9 of the User Guide for details.
This is a draft release, not even ready for a beta release. I'm releasing a draft to get feedback on the design of the JIT and the related PreJIT. The limitations of this v8.0.0.draft4 release are listed on pages 2 and 3 of the User Guide.
- C
Published by DrTimothyAldenDavis almost 3 years ago
graphblas - 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 .
- C
Published by DrTimothyAldenDavis almost 3 years ago
graphblas - v8.0.0.draft3c (Mar 29, 2023)
Introduing the SuiteSparse:GraphBLAS JIT!
v8.0.0.draft3 is a draft release. It is working well but not fully tested and is missing some features that will appear in the final release of v8.0.0. In particular, it won't work at all on Windows. I'm tagging this as a draft pre-release to get feedback on the the design of the JIT.
* version 8: This version is a major SO version increase, since
it removes 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).
* 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.
* 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.
Since GxBSelectOpnew and GxBSelectOpfree have been removed, this version of GraphBLAS cannot be used with LAGraph v1.0.1 (the stable branch). It works with the LAGraph dev branch.
- C
Published by DrTimothyAldenDavis almost 3 years ago
graphblas - v7.4.4.beta1 (Mar 27, 2023)
v7.4.4: bug fix for atomics. The seq_cst clause has been added to all #pragma omp atomics. This fixes a bug where the LAGraph SSSP fails in a non-deterministic way on the Arm processor.
- C
Published by DrTimothyAldenDavis almost 3 years ago
graphblas - v7.4.3 (Jan 20, 2023)
Version 7.4.3, Jan 20, 2023
* debug: turned on in GrB_Matrix_removeElement by mistake.
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - 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.
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v7.4.2.beta2 (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.
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - 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.
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v8.0.0.draft1 (Jan 6, 2023) draft version
v8.0.0.draft1 is tagged as a pre-release to ensure reproducibility of an interesting performance result using multi-level parallelism. With the same GraphBLAS code and demo (context_demo.c), gcc 12.2.0 with its included libgomp, and icx 2022.0.1 with its included libiomp, both produce good results. gcc 9.4.0 with its included libgomp does OK with single-level parallelism (where all the threads are used either in the outer parallel loop or inner), but not with true multi-level parallelism.
See the discussion in GraphBLAS/Source/Demo/Program/contextdemo.out and the demo code in contextdemo.c. This demo uses my draft GxB_Context object.
This version is NOT ready for any production use, and not even for any draft uses. The new GxB_Context object is working for this demo but I have not yet put this version through all of my extensive tests.
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v7.4.1.beta4 (Jan 1, 2023)
Windows port of cmake build system.
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v7.4.1.beta3 (Jan 1, 2023)
v7.4.1.beta3
- Remove GBPUBLIC, add GBGLOBAL for global data.
- Windows port
- simplified _Generic macros
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v7.4.1.beta1 (Dec 26, 2022)
Version 7.4.1, Dec 26, 2022
* 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.
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v7.4.0 (Dec 23, 2022)
Version 7.4.0, Dec 23, 2022
* added non-va_arg methods: va_arg-based GxB_get/set methods are ANSI C11
but cause issues for cffi in Python. As a temporary workaround, new
methods have been added that do not use va_arg. The existing
GxB_get/set methods are not changed. The new methods are not in the
user guide, since all of the GxB_get/set methods will be superceded
with GrB_get/set in the v2.1 C API. At that point, all GxB_get/set
methods will become historical (kept, not deprecated, but removed from
the user guide).
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v7.4.0.beta1 (Dec 23, 2022)
Version 7.4.0, Dec 23, 2022
* added non-va_arg methods: va_arg-based GxB_get/set methods are ANSI C11
but cause issues for cffi in Python. As a temporary workaround, new
methods have been added that do not use va_arg. The existing
GxB_get/set methods are not changed. The new methods are not in the
user guide, since all of the GxB_get/set methods will be superceded
with GrB_get/set in the v2.1 C API. At that point, all GxB_get/set
methods will become historical (kept, not deprecated, but removed from
the user guide).
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v7.3.3 (Dec 9, 2022)
Version 7.3.3, Dec 9, 2022
* minor change to build system
* stdatomic.h: using #include <stdatomic.h> and atomic_compare_exchange_weak
instead of GCC/clang/icx __atomic_* variants.
Added -latomic if required.
* chunk factor for C=A*B (saxpy3 method): revised for non-builtin-semirings
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v7.3.3.beta4 (Dec 9, 2022)
Fixes a few issues in the 32-bit builds in CI of SuiteSparse (where size_t is 32-bits).
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v7.3.3.beta3 (Dec 9, 2022)
Changed detection of -latomic: using 'check if c source compiles' instead of 'check if c source runs'.
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v7.3.3-beta2 (Dec 9, 2022)
Minor change to SuiteSparsePolicy.cmake.
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v7.3.3-beta1 (Dec 9, 2022)
Version 7.3.3, Dec 9, 2022
* minor change to build system
* stdatomic.h: using #include <stdatomic.h> and atomic_compare_exchange_weak
instead of GCC/clang/icx __atomic_* variants.
Added -latomic if required.
* chunk factor for C=A*B (saxpy3 method): revised for non-builtin-semirings
- C
Published by DrTimothyAldenDavis about 3 years ago
graphblas - v7.3.2 (Nov 12, 2022)
Version 7.3.2, Nov 12, 2022
* cmake_modules: minor revision to build system, to sync
with SuiteSparse v6.0.0
* Added option -DNOPENMP=1 to disable OpenMP parallelism
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.3.1 (Oct 21, 2022)
v7.3.1 (Oct 21, 2022)
* workaround for Microsoft Visual Studio bug : MSC 19.2x (in vs2019)
encounters a compiler bug when compiling the FIRST_FC32 and SECOND_FC32
binary operators. This version adds a flag that disables those
methods. The operators still work, they are just handled by the
slower generic methods. Thanks to Erik Welch, H. Vetinari, and others
in the conda-forge community for tracking this down.
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.3.1.beta1 (Oct 21, 2022)
Version 7.3.1, Oct 21, 2022
* workaround for Microsoft Visual Studio bug : MSC 19.2x (in vs2019)
encounters a compiler bug when compiling the FIRST_FC32 and SECOND_FC32
binary operators. This version adds a flag that disables those
methods. The operators still work, they are just handled by the
slower generic methods. Thanks to Erik Welch, H. Vetinari, and others
in the conda-forge community for tracking this down.
Fixes https://github.com/conda-forge/graphblas-feedstock/issues/47
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.3.0 (Oct 14, 2022)
Version 7.3.0, Oct 14, 2022
* GrB_Matrix: changes to the internal data structure
* minor internal changes: A->nvals for sparse/hypersparse
* more significant changes: added A->Y hyper_hash for hypersparse case,
speeds up GrB_mxm (C=A*B, C<M>=A*B' (for CSR A'*B for CSC)),
C<M>=A+B (eWiseAdd), C<M>A.*B (eWiseMult), some cases for
GrB_assign, for hypersparse matrices.
* added GxB_unpack_HyperHash and GxB_pack_HyperHash: to pack/unpack
the A->Y hyper_hash
* @GrB MATLAB/Octave interface: changed license to Apache-2.0
* MATLAB library: renamed to libgraphblas_matlab.so
* performance: faster C=A*B when using a single thread and B is a
sparse vector with many entries
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.3.0.beta6 (Oct 12, 2022)
Better performance for corner cases of GrB_mxm, C=A*B, when using a single thread and B is a sparse vector with many entries, by updating the heuristic used to select the method used. This is a beta prerelease.
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.3.0.beta5 (Oct 1, 2022)
Better use of hyper_hash in setElement, extractElement, removeElement.
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.3.0.beta4 (Sept 5, 2022)
Change hyperhash from int64 to uint64. Add a check in GrBMatrixwait to keep the existing hyperhash if the set of non-empty columns doesn't change.
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.3.0.beta2 (Sept 1, 2022)
Added GxBpackHyperHash and GxBunpackHyperHash.
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.3.0.beta1 (Aug 29, 2022)
Version 7.3.0, Aug 29, 2022 (beta1 release)
* GrB_Matrix: changes to the internal data structure
* minor internal changes: A->nvals for sparse/hypersparse
* more significant changes: added A->Y hyper_hash for hypersparse case,
speeds up GrB_mxm (C=A*B, C<M>=A*B' (for CSR A'*B for CSC)),
C<M>=A+B (eWiseAdd), C<M>A.*B (eWiseMult), some cases for
GrB_assign, for hypersparse matrices.
* @GrB MATLAB/Octave interface: changed license to Apache-2.0
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.2.0 (Aug 8, 2022)
Version 7.2.0, Aug 8, 2022
* added ZSTD as a compression option for serialize/deserialize:
Version 1.5.3 by Yann Collet, https://github.com/facebook/zstd.git
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
Included in SuiteSparse:GraphBLAS via its BSD-3-clause license.
The default method is now ZSTD, level 1.
* added GxB_Matrix_reshape and GxB_Matrix_reshapeDup
* MATLAB interface: faster C(:)=A, C=A(:), and reshape.
Better error messages.
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.2.0beta4 (Aug 8, 2022)
Change default compression to ZSTD, level 1. Fix pedantic warnings (see PR 153).
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.2.0beta3 (Aug 6, 2022)
Added ZSTD compression.
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.2.0beta (Aug 4, 2022)
Version 7.2.0, Aug 4, 2022
* added GxB_Matrix_reshape and GxB_Matrix_reshapeDup
* MATLAB interface: faster C(:)=A, C=A(:), and reshape.
Better error messages.
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.1.2 (July 8, 2022)
Version 7.1.2, July 8, 2022
* MATLAB interface: linear indexing added for C(:)=A, C=A(:), and
single-output I=find(C). Faster bandwidth, istriu, istril,
isbanded, isdiag. C(I,J)=A can now grow the size of A.
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.1.1 (June 17, 2022)
Version 7.1.1, June 17, 2022
* minor updates to documentation and error messages
* MATLAB interface: minor revision of GrB.deserialize
- C
Published by DrTimothyAldenDavis over 3 years ago
graphblas - v7.1.0 (May 20, 2022)
Version 7.1.0, May 20, 2022
* added cube root: GxB_CBRT_FP* unary operators
* added GxB_Matrix_isStoredElement and GxB_Vector_isStoredElement
- C
Published by DrTimothyAldenDavis almost 4 years ago
graphblas - v7.0.4 (Apr 25, 2022)
Bug fix for user-defined types of size > 128 bytes.
- C
Published by DrTimothyAldenDavis almost 4 years ago