diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index c96d494..818e255 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -148,7 +148,7 @@ jobs: brew fetch --retry libomp && brew reinstall libomp echo "MACOSX_DEPLOYMENT_TARGET=$(otool -l "$(brew --prefix libomp)/lib/libomp.dylib" | grep minos | awk '{print $2}')" >> "$GITHUB_ENV" - - uses: pypa/cibuildwheel@b3395e271a35f73dad77f21802abe9b986dfe299 # v4.3.1 + - uses: pypa/cibuildwheel@8c2dcd2e96041a619f5ff03c9638d7941e2553a4 # v4.3.3 with: output-dir: wheelhouse env: @@ -243,7 +243,7 @@ jobs: path: dist merge-multiple: true - - uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2 + - uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # v1.14.3 with: # PyPI does not allow replacing a file. Without this flag the entire action fails if even a single duplicate exists. skip-existing: true @@ -264,7 +264,7 @@ jobs: path: dist merge-multiple: true - - uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2 + - uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # v1.14.3 with: repository-url: https://test.pypi.org/legacy/ # PyPI does not allow replacing a file. Without this flag the entire action fails if even a single duplicate exists. diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c51ee4a..86cebb5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -93,7 +93,7 @@ repos: hooks: - id: actionlint - repo: https://github.com/zizmorcore/zizmor-pre-commit - rev: v1.30.1 + rev: v1.31.1 hooks: - id: zizmor - repo: https://github.com/python-jsonschema/check-jsonschema diff --git a/GB_VERSION.txt b/GB_VERSION.txt index 4a6e70e..a39233b 100644 --- a/GB_VERSION.txt +++ b/GB_VERSION.txt @@ -1 +1 @@ -10.5.1 +10.5.2 diff --git a/suitesparse.sh b/suitesparse.sh index 18edb20..d44b5c9 100755 --- a/suitesparse.sh +++ b/suitesparse.sh @@ -98,7 +98,7 @@ cd "GraphBLAS-${VERSION}/build" || exit # Disable optimizing some rarely-used types for significantly faster builds and significantly smaller wheel size. # Also the build with all types enabled sometimes stalls on GitHub Actions. Probably due to exceeded resource limits. # These can still be used, they'll just have reduced performance (AFAIK similar to UDTs). -# GraphBLAS's own GB_control.h (as of 10.5.1) already disables INT8, INT16, UINT8 and UINT16, so +# GraphBLAS's own GB_control.h (as of 10.5.2) already disables INT8, INT16, UINT8 and UINT16, so # the types left without FactoryKernels here are those four plus FC32, FC64 and UINT32. # shellcheck disable=SC2129 # echo "#define GxB_NO_BOOL 1" >> ../Source/GB_control.h # diff --git a/suitesparse_graphblas/create_headers.py b/suitesparse_graphblas/create_headers.py index dcfb5f4..59d5e8c 100644 --- a/suitesparse_graphblas/create_headers.py +++ b/suitesparse_graphblas/create_headers.py @@ -306,6 +306,7 @@ def groupby(index, seq): "GxB_ARENA_DATA", "GxB_ARENA_HEADER", "GxB_NARENAS", + "GxB_NARENAS_GPU", # Added in version 10.5.2 } CHAR_DEFINES = { @@ -337,6 +338,8 @@ def groupby(index, seq): "GxB_HAVE_COMPLEX_C99", # deprecated "GxB_HYPER", + "GxB_NONBLOCKING_GPU", # GrB_Mode values until 10.5.2; now aliases of GrB_NONBLOCKING + "GxB_BLOCKING_GPU", # and GrB_BLOCKING } IGNORE_LINES = { diff --git a/suitesparse_graphblas/suitesparse_graphblas.h b/suitesparse_graphblas/suitesparse_graphblas.h index c50f31f..30dc2f9 100644 --- a/suitesparse_graphblas/suitesparse_graphblas.h +++ b/suitesparse_graphblas/suitesparse_graphblas.h @@ -126,9 +126,7 @@ typedef enum typedef enum { GrB_NONBLOCKING = 0, - GrB_BLOCKING = 1, - GxB_NONBLOCKING_GPU = 7099, - GxB_BLOCKING_GPU = 7098 + GrB_BLOCKING = 1 } GrB_Mode; typedef enum @@ -3841,6 +3839,7 @@ GrB_Info GxB_unload_Vector_into_Container(GrB_Vector V, GxB_Container Container, #define GxB_INDEX_MAX ... #define GxB_MAX_NAME_LEN ... #define GxB_NARENAS ... +#define GxB_NARENAS_GPU ... #define GxB_NBITMAP_SWITCH ... #define GxB_NGPUS ... #define GxB_NTHREADS ... diff --git a/suitesparse_graphblas/suitesparse_graphblas_no_complex.h b/suitesparse_graphblas/suitesparse_graphblas_no_complex.h index dea3086..9e80f31 100644 --- a/suitesparse_graphblas/suitesparse_graphblas_no_complex.h +++ b/suitesparse_graphblas/suitesparse_graphblas_no_complex.h @@ -124,9 +124,7 @@ typedef enum typedef enum { GrB_NONBLOCKING = 0, - GrB_BLOCKING = 1, - GxB_NONBLOCKING_GPU = 7099, - GxB_BLOCKING_GPU = 7098 + GrB_BLOCKING = 1 } GrB_Mode; typedef enum @@ -3603,6 +3601,7 @@ GrB_Info GxB_unload_Vector_into_Container(GrB_Vector V, GxB_Container Container, #define GxB_INDEX_MAX ... #define GxB_MAX_NAME_LEN ... #define GxB_NARENAS ... +#define GxB_NARENAS_GPU ... #define GxB_NBITMAP_SWITCH ... #define GxB_NGPUS ... #define GxB_NTHREADS ... diff --git a/suitesparse_graphblas/tests/test_memory.py b/suitesparse_graphblas/tests/test_memory.py index d5d26c3..03ef601 100644 --- a/suitesparse_graphblas/tests/test_memory.py +++ b/suitesparse_graphblas/tests/test_memory.py @@ -134,10 +134,7 @@ def roundtrips(): check_status(B, lib.GrB_Matrix_wait(B[0], lib.GrB_MATERIALIZE)) assert matrix.matrix_nvals(B) == 900 - # Another arena, using libc's allocator. The last one, since GraphBLAS means to give - # CUDA an arena of its own (the first 10.4.0 betas reserved arena 1). It needs a realloc: - # without one, GraphBLAS (10.4.0 to 10.5.1) frees the arena's memory with arena 0's - # free when it grows a buffer. + # Another arena, using libc's allocator k = lib.GxB_NARENAS - 1 import cffi