Skip to content

Commit

Permalink
Merge pull request #173 from DrTimothyAldenDavis/master
Browse files Browse the repository at this point in the history
Master
  • Loading branch information
DrTimothyAldenDavis authored Oct 21, 2022
2 parents 9248cab + c282dcc commit b5ae1ed
Show file tree
Hide file tree
Showing 19 changed files with 231 additions and 161 deletions.
12 changes: 6 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
cmake_minimum_required ( VERSION 3.19 )

# version of SuiteSparse:GraphBLAS
set ( GraphBLAS_DATE "Oct 14, 2022" )
set ( GraphBLAS_DATE "Oct 21, 2022" )
set ( GraphBLAS_VERSION_MAJOR 7 )
set ( GraphBLAS_VERSION_MINOR 3 )
set ( GraphBLAS_VERSION_SUB 0 )
set ( GraphBLAS_VERSION_SUB 1 )

# GraphBLAS C API Specification version, at graphblas.org
set ( GraphBLAS_API_DATE "Nov 15, 2021" )
Expand Down Expand Up @@ -266,7 +266,7 @@ endif ( )

add_library ( graphblas SHARED ${GRAPHBLAS_SOURCES} )

SET_TARGET_PROPERTIES ( graphblas PROPERTIES
set_target_properties ( graphblas PROPERTIES
VERSION ${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB}
SOVERSION ${GraphBLAS_VERSION_MAJOR}
C_STANDARD_REQUIRED 11
Expand All @@ -286,7 +286,7 @@ if ( BUILD_GRB_STATIC_LIBRARY )

add_library ( graphblas_static STATIC ${GRAPHBLAS_SOURCES} )

SET_TARGET_PROPERTIES ( graphblas_static PROPERTIES
set_target_properties ( graphblas_static PROPERTIES
VERSION ${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB}
OUTPUT_NAME graphblas
SOVERSION ${GraphBLAS_VERSION_MAJOR}
Expand Down Expand Up @@ -391,7 +391,7 @@ if ( DEMO )
file ( GLOB DEMO_SOURCES "Demo/Source/*.c" )
add_library ( graphblasdemo SHARED ${DEMO_SOURCES} )

SET_TARGET_PROPERTIES ( graphblasdemo PROPERTIES
set_target_properties ( graphblasdemo PROPERTIES
VERSION ${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB}
SOVERSION ${GraphBLAS_VERSION_MAJOR}
C_STANDARD_REQUIRED 11 )
Expand All @@ -400,7 +400,7 @@ if ( DEMO )

if ( BUILD_GRB_STATIC_LIBRARY )
add_library ( graphblasdemo_static STATIC ${DEMO_SOURCES} )
SET_TARGET_PROPERTIES ( graphblasdemo_static PROPERTIES
set_target_properties ( graphblasdemo_static PROPERTIES
VERSION ${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB}
C_STANDARD_REQUIRED 11 )
set_property ( TARGET graphblasdemo_static PROPERTY C_STANDARD 11 )
Expand Down
2 changes: 1 addition & 1 deletion CUDA/GB_cuda_kernel.h
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@
GB_ADD (c, c, x_op_y) ; /* c += x_op_y */ \
}

#define GB_DOT_TERMINAL( c ) GB_IF_TERMINAL_BREAK (c)
#define GB_DOT_TERMINAL( c ) GB_IF_TERMINAL_BREAK ( c, z )

#if GB_IS_PLUS_PAIR_REAL_SEMIRING

Expand Down
11 changes: 10 additions & 1 deletion Doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
Version 7.3.0, Oct 11, 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.

Version 7.3.0, Oct 14, 2022

* GrB_Matrix: changes to the internal data structure
* minor internal changes: A->nvals for sparse/hypersparse
Expand Down
Binary file modified Doc/GraphBLAS_UserGuide.pdf
Binary file not shown.
12 changes: 11 additions & 1 deletion Doc/GraphBLAS_UserGuide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -15455,6 +15455,13 @@ \section{Release Notes}

\begin{itemize}

\item Version 7.3.1 (Oct 21, 2022)

\begin{packed_itemize}
\item workaround for a bug in the Microsoft Visual Studio Compiler,
MSC 19.2x (in vs2019).
\end{packed_itemize}

\item Version 7.3.0 (Oct 14, 2022)

\begin{packed_itemize}
Expand Down Expand Up @@ -16121,6 +16128,9 @@ \section{Acknowledgments}
I would like to thank Joe Eaton and Corey Nolet for their collaboration on the
CUDA kernels (still in progress), and for the support of NVIDIA.

I would like to thank Pat Quillen for his
collaboration and for the support of MathWorks.

I would like to thank John Eaton for his collaboration on the integration
with Octave 7.

Expand Down Expand Up @@ -16152,7 +16162,7 @@ \section{Acknowledgments}
\url{https://redislabs.com/blog/new-redisgraph-1-0-achieves-600x-faster-performance-graph-databases/}}).

SuiteSparse:GraphBLAS was developed with support from
NVIDIA, Intel, MIT Lincoln Lab, Redis, IBM,
NVIDIA, Intel, MIT Lincoln Lab, MathWorks, Redis, IBM,
the National Science Foundation (1514406, 1835499), and Julia Computing.

%-------------------------------------------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions Doc/GraphBLAS_version.tex
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
% version of SuiteSparse:GraphBLAS
\date{VERSION
7.3.0,
Oct 14, 2022}
7.3.1,
Oct 21, 2022}

4 changes: 2 additions & 2 deletions GraphBLAS/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ cmake_minimum_required ( VERSION 3.19 )

# date version must match ../CMakeLists.txt:
# version of SuiteSparse:GraphBLAS
set ( GraphBLAS_DATE "Oct 14, 2022" )
set ( GraphBLAS_DATE "Oct 21, 2022" )
set ( GraphBLAS_VERSION_MAJOR 7 )
set ( GraphBLAS_VERSION_MINOR 3 )
set ( GraphBLAS_VERSION_SUB 0 )
set ( GraphBLAS_VERSION_SUB 1 )

message ( STATUS "Building SuiteSparse:GraphBLAS version: v"
${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${GraphBLAS_VERSION_SUB}
Expand Down
4 changes: 2 additions & 2 deletions Include/GraphBLAS.h
Original file line number Diff line number Diff line change
Expand Up @@ -221,10 +221,10 @@

// The version of this implementation, and the GraphBLAS API version:
#define GxB_IMPLEMENTATION_NAME "SuiteSparse:GraphBLAS"
#define GxB_IMPLEMENTATION_DATE "Oct 14, 2022"
#define GxB_IMPLEMENTATION_DATE "Oct 21, 2022"
#define GxB_IMPLEMENTATION_MAJOR 7
#define GxB_IMPLEMENTATION_MINOR 3
#define GxB_IMPLEMENTATION_SUB 0
#define GxB_IMPLEMENTATION_SUB 1
#define GxB_SPEC_DATE "Nov 15, 2021"
#define GxB_SPEC_MAJOR 2
#define GxB_SPEC_MINOR 0
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2022, All Rights Reserved.

SPDX-License-Identifier: Apache-2.0

VERSION 7.3.0, Oct 14, 2022
VERSION 7.3.1, Oct 21, 2022

SuiteSparse:GraphBLAS is a complete implementation of the GraphBLAS standard,
which defines a set of sparse matrix operations on an extended algebra of
Expand Down
13 changes: 13 additions & 0 deletions Source/GB_compiler.h
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,19 @@

#endif

//------------------------------------------------------------------------------
// Workaround for compiler bug in Microsoft Visual Studio 2019
//------------------------------------------------------------------------------

// The GB_COMPILER_MSC_2019 flag disables the FIRST_FC32 and SECOND_FC32 binary
// operators for the MS Visual Studio 2019 compiler (MSC versions 19.20 to
// 19.29). It's possible that the compiler bug appears in 19.30 and later (VS
// 2022), but this hasn't been tested. This macro optimistically assumes the
// bug will be fixed in that version.

#define GB_COMPILER_MSC_2019 ( GB_COMPILER_MSC && (GB_COMPILER_MAJOR == 19) \
&& (GB_COMPILER_MINOR >= 20) && (GB_COMPILER_MINOR <= 29) )

//------------------------------------------------------------------------------
// malloc.h: required include file for Microsoft Visual Studio
//------------------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion Source/Generated2/GB_binop__first_fc32.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@

// disable this operator and use the generic case if these conditions hold
#define GB_DISABLE \
(GxB_NO_FIRST || GxB_NO_FC32 || GxB_NO_FIRST_FC32)
(GxB_NO_FIRST || GxB_NO_FC32 || GxB_NO_FIRST_FC32 || GB_COMPILER_MSC_2019)

//------------------------------------------------------------------------------
// C += A+B, all 3 matrices dense
Expand Down
2 changes: 1 addition & 1 deletion Source/Generated2/GB_binop__second_fc32.c
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@

// disable this operator and use the generic case if these conditions hold
#define GB_DISABLE \
(GxB_NO_SECOND || GxB_NO_FC32 || GxB_NO_SECOND_FC32)
(GxB_NO_SECOND || GxB_NO_FC32 || GxB_NO_SECOND_FC32 || GB_COMPILER_MSC_2019)

//------------------------------------------------------------------------------
// C += A+B, all 3 matrices dense
Expand Down
8 changes: 8 additions & 0 deletions Source/Template/GB_sparse_add_template.c
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,14 @@
{
// C (i,j) = alpha + B(i,j)
GB_LOAD_B (bij, Bx, pB+p, B_iso) ;
// GB_COMPILER_MSC_2019 workaround: the following
// line of code triggers a bug in the MSC 19.2x
// compiler in Visual Studio 2019, only for the
// FIRST_FC32 and SECOND_FC32 operators. As a
// workaround, this template is not used for
// those operators when compiling GraphBLAS with
// this compiler. Note the bug may also appear
// in VS2022, but this has not yet been tested.
GB_BINOP (GB_CX (pC+p), alpha_scalar, bij, i, j) ;
}
#else
Expand Down
6 changes: 6 additions & 0 deletions Source/codegen_binop_method.m
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,12 @@ function codegen_binop_method (binop, op, xtype)
disable = sprintf ('GxB_NO_%s', upper (binop)) ;
disable = [disable (sprintf (' || GxB_NO_%s', upper (fname)))] ;
disable = [disable (sprintf (' || GxB_NO_%s_%s', upper (binop), upper (fname)))] ;
if (isequal (ytype, 'GxB_FC32_t') && ...
(isequal (binop, 'first') || isequal (binop, 'second')))
% disable the FIRST_FC32 and SECOND_FC32 binary operators for
% MS Visual Studio 2019. These files trigger a bug in the compiler.
disable = [disable ' || GB_COMPILER_MSC_2019'] ;
end
fprintf (f, 'define(`GB_disable'', `(%s)'')\n', disable) ;

% ff = fopen ('temp.h', 'a') ;
Expand Down
141 changes: 0 additions & 141 deletions Tcov/log_Oct13.txt

This file was deleted.

Loading

0 comments on commit b5ae1ed

Please sign in to comment.