Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Microsoft Visual Studio Compiler Support #351

Merged
merged 18 commits into from
Oct 17, 2019
Merged

Microsoft Visual Studio Compiler Support #351

merged 18 commits into from
Oct 17, 2019

Conversation

yhmtsai
Copy link
Member

@yhmtsai yhmtsai commented Sep 16, 2019

This PR make Windows be able to compile Ginkgo by Microsoft Visual Studio Compiler (MSVC).
it is part of #281.

The summary of this PR.

  1. use workaround method to make enable_if works.
  2. add CUDA path automatically.
  3. use gko::isfinite not the MSVC isfinite (MSVC isfinite does not support complex but compiler try to use it)
  4. when compile static library, also link static runtime library.
  5. fix inherit problem which is warning in gcc but error in msvc. (thanks @tcojean)
  6. force MSVC to output dynamic library into same folder without build_type.
  7. build the third party with Release and Debug. ginkgo debug links debug third party, and oters link release third party, which is different than previous one.

For testing,

// Without CUDA
cmake -DBUILD_SHARED_LIBS=OFF -DGINKGO_DEVEL_TOOLS=OFF -DGINKGO_BUILD_BENCHMARKS=ON -DGINKGO_BUILD_EXAMPLES=ON -DGINKGO_BUILD_CUDA=OFF ..

// With CUDA
cmake -DBUILD_SHARED_LIBS=OFF -DGINKGO_DEVEL_TOOLS=OFF -DGINKGO_BUILD_BENCHMARKS=ON -DGINKGO_BUILD_EXAMPLES=ON -DGINKGO_BUILD_CUDA=ON ..

// Make
cmake --build . --target ALL_BUILD -j4 --config Debug

// Test
ctest -C Debug
  • Merge Windows compile by MinGW 64 bit #347
  • Compile static library
  • Compile dynamic library
  • Fix the third party libraries links.
  • Force the same output dynamic ginkgo library.
  • Check the warning message in MSVC
  • link cudart correctly

@yhmtsai yhmtsai self-assigned this Sep 16, 2019
@yhmtsai yhmtsai added reg:build This is related to the build system. plat:windows This is related to the Windows Operating system 1:ST:WIP This PR is a work in progress. Not ready for review. labels Sep 16, 2019
@codecov
Copy link

codecov bot commented Sep 16, 2019

Codecov Report

Merging #351 into develop will increase coverage by 0.01%.
The diff coverage is 85.71%.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #351      +/-   ##
===========================================
+ Coverage    89.98%   89.99%   +0.01%     
===========================================
  Files          136      136              
  Lines         6078     6078              
===========================================
+ Hits          5469     5470       +1     
+ Misses         609      608       -1
Impacted Files Coverage Δ
include/ginkgo/core/base/types.hpp 100% <ø> (ø) ⬆️
include/ginkgo/core/base/lin_op.hpp 100% <ø> (ø) ⬆️
include/ginkgo/core/base/matrix_data.hpp 81.25% <ø> (ø) ⬆️
include/ginkgo/core/stop/criterion.hpp 100% <ø> (ø) ⬆️
include/ginkgo/core/base/abstract_factory.hpp 96.15% <ø> (ø) ⬆️
include/ginkgo/core/base/utils.hpp 30% <ø> (ø) ⬆️
include/ginkgo/core/base/executor.hpp 70.83% <ø> (ø) ⬆️
include/ginkgo/core/base/math.hpp 100% <ø> (ø) ⬆️
core/base/combination.cpp 94.44% <100%> (ø) ⬆️
reference/factorization/par_ilu_kernels.cpp 100% <100%> (ø) ⬆️
... and 2 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9d16be7...570aa8c. Read the comment docs.

@thoasm
Copy link
Member

thoasm commented Sep 17, 2019

Currently, it does not work for me. I get the following error when running the cmake for CUDA:

cmake output
PS D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug> cmake -DBUILD_SHARED_LIBS=OFF -DGINKGO_DEVEL_TOOLS=OFF -DGINKGO_BUILD_BENCHMARKS=ON -DGINKGO_BUILD_EXAMPLES=ON -DGINKGO_BUILD_CUDA=ON ../..
-- Building for: Visual Studio 15 2017
-- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.18362.
-- The C compiler identification is MSVC 19.13.26131.1
-- The CXX compiler identification is MSVC 19.13.26131.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- GINKGO_BUILD_TESTS is ON, enabling GINKGO_BUILD_REFERENCE
-- Performing Test Ginkgo_C_COVERAGE_SUPPORTED
-- Performing Test Ginkgo_C_COVERAGE_SUPPORTED - Failed
-- Performing Test Ginkgo_C_TSAN_SUPPORTED
-- Performing Test Ginkgo_C_TSAN_SUPPORTED - Failed
-- Performing Test Ginkgo_C_ASAN_SUPPORTED
-- Performing Test Ginkgo_C_ASAN_SUPPORTED - Failed
-- Performing Test Ginkgo_CXX_COVERAGE_SUPPORTED
-- Performing Test Ginkgo_CXX_COVERAGE_SUPPORTED - Failed
-- Performing Test Ginkgo_CXX_TSAN_SUPPORTED
-- Performing Test Ginkgo_CXX_TSAN_SUPPORTED - Failed
-- Performing Test Ginkgo_CXX_ASAN_SUPPORTED
-- Performing Test Ginkgo_CXX_ASAN_SUPPORTED - Failed
-- Looking for C++ include cxxabi.h
CMake Warning (dev) at C:/Program Files/CMake/share/cmake-3.14/Modules/CheckIncludeFileCXX.cmake:79 (message):
  Policy CMP0075 is not set: Include file check macros honor
  CMAKE_REQUIRED_LIBRARIES.  Run "cmake --help-policy CMP0075" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  CMAKE_REQUIRED_LIBRARIES is set to:

    -fsanitize=address -fno-omit-frame-pointer

  For compatibility with CMake 3.11 and below this check is ignoring it.
Call Stack (most recent call first):
  CMakeLists.txt:88 (check_include_file_cxx)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Looking for C++ include cxxabi.h - not found
-- Could NOT find PAPI (missing: PAPI_LIBRARY PAPI_INCLUDE_DIR)
-- The CUDA compiler identification is unknown
CMake Error at third_party/CMakeLists.txt:2 (enable_language):
  No CMAKE_CUDA_COMPILER could be found.



-- Configuring incomplete, errors occurred!
See also "D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/CMakeFiles/CMakeOutput.log".
See also "D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/CMakeFiles/CMakeError.log".

@yhmtsai
Copy link
Member Author

yhmtsai commented Sep 17, 2019

@thoasm I also face this problem if I install the CUDA Toolkit before Visual Studio. It is solved after I install CUDA Toolkit again.

@yhmtsai yhmtsai force-pushed the msvc_compile branch 2 times, most recently from af7586b to 00767a0 Compare September 23, 2019 10:22
@pratikvn
Copy link
Member

I would also like to point out that you will need to update the documentation and write out which Visual Studio versions we do support , which MinGW versions, which Windows OS versions and the like. I guess mainly you will need to add these to the README.md and add the CMake variables to the INSTALL.md.

Additionally, if there are some special steps(nuances) with Windows/Visual Studio, you could create an additional page on the documentation called running in Windows. There is probably something that needs to be done to get CUDA running on Windows as well, which you could add there.

@yhmtsai yhmtsai force-pushed the msvc_compile branch 8 times, most recently from abff09c to 469cc37 Compare September 24, 2019 21:29
@yhmtsai yhmtsai mentioned this pull request Sep 25, 2019
@yhmtsai
Copy link
Member Author

yhmtsai commented Sep 25, 2019

@thoasm Although it is failed in CI system, it should works in Windows.
Could you try to test it? You maybe need to reinstall the cuda toolkit with visual studio integration.

@thoasm
Copy link
Member

thoasm commented Sep 26, 2019

@yhmtsai Sure, I will try that when I am back home.
With what version of visual studio did you test it? I am not sure what I have installed, maybe it is the 2017 version.

@yhmtsai
Copy link
Member Author

yhmtsai commented Sep 26, 2019

I use Visual studio community 2019 and CUDA 10.1.
Before I reinstalled Cuda toolkit, I could use nvcc but CMake could not find CUDA.

@thoasm
Copy link
Member

thoasm commented Sep 27, 2019

So, I updated my CUDA to 10.1 and did it again.

cmake without CUDA
PS D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug> cmake -DBUILD_SHARED_LIBS=OFF -DGINKGO_DEVEL_TOOLS=OFF -DGINKGO_BUILD_BENCHMARKS=ON -DGINKGO_BUILD_EXAMPLES=ON -DGINKGO_BUILD_CUDA=OFF ../..
-- Building for: Visual Studio 15 2017
-- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.18362.
-- The C compiler identification is MSVC 19.13.26131.1
-- The CXX compiler identification is MSVC 19.13.26131.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test Ginkgo_C_COVERAGE_SUPPORTED
-- Performing Test Ginkgo_C_COVERAGE_SUPPORTED - Failed
-- Performing Test Ginkgo_C_TSAN_SUPPORTED
-- Performing Test Ginkgo_C_TSAN_SUPPORTED - Failed
-- Performing Test Ginkgo_C_ASAN_SUPPORTED
-- Performing Test Ginkgo_C_ASAN_SUPPORTED - Failed
-- Performing Test Ginkgo_CXX_COVERAGE_SUPPORTED
-- Performing Test Ginkgo_CXX_COVERAGE_SUPPORTED - Failed
-- Performing Test Ginkgo_CXX_TSAN_SUPPORTED
-- Performing Test Ginkgo_CXX_TSAN_SUPPORTED - Failed
-- Performing Test Ginkgo_CXX_ASAN_SUPPORTED
-- Performing Test Ginkgo_CXX_ASAN_SUPPORTED - Failed
-- Looking for C++ include cxxabi.h
CMake Warning (dev) at C:/Program Files/CMake/share/cmake-3.14/Modules/CheckIncludeFileCXX.cmake:79 (message):
  Policy CMP0075 is not set: Include file check macros honor
  CMAKE_REQUIRED_LIBRARIES.  Run "cmake --help-policy CMP0075" for policy
  details.  Use the cmake_policy command to set the policy and suppress this
  warning.

  CMAKE_REQUIRED_LIBRARIES is set to:

    -fsanitize=address -fno-omit-frame-pointer

  For compatibility with CMake 3.11 and below this check is ignoring it.
Call Stack (most recent call first):
  CMakeLists.txt:100 (check_include_file_cxx)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Looking for C++ include cxxabi.h - not found
-- Could NOT find PAPI (missing: PAPI_LIBRARY PAPI_INCLUDE_DIR)
-- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.18362.
-- The C compiler identification is MSVC 19.13.26131.1
-- The CXX compiler identification is MSVC 19.13.26131.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/download
Microsoft (R)-Buildmodul, Version 15.6.85.37198 f�r .NET Framework
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

  Checking Build System
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/download/CMakeFiles/generate.stamp is up-to-date.
  Creating directories for 'gtest_external'
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/download/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/download/CMakeFiles/generate.stamp is up-to-date.
  Performing download step (git clone) for 'gtest_external'
  Cloning into 'src'...
  Note: checking out '2fe3bd994b3189899d93f1d5a881e725e046fdc2'.

  You are in 'detached HEAD' state. You can look around, make experimental
  changes and commit them, and you can discard any commits you make in this
  state without impacting any branches by performing another checkout.

  If you want to create a new branch to retain commits you create, you may
  do so (now or later) by using -b with the checkout command again. Example:

    git checkout -b <new-branch-name>

  HEAD is now at 2fe3bd99 Merge pull request #1433 from dsacre/fix-clang-warnings
  Skipping update step for 'gtest_external'
  No patch step for 'gtest_external'
  Performing configure step for 'gtest_external'
  -- The C compiler identification is MSVC 19.13.26131.1
  -- The CXX compiler identification is MSVC 19.13.26131.1
  -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
  -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
  -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Found PythonInterp: C:/Program Files/Python36/python.exe (found version "3.6.5")
  -- Configuring done
  -- Generating done
CUSTOMBUILD : CMake warning :  [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\gtest\download\gtest_external.vcxproj]
    Manually-specified variables were not used by the project:

      CMAKE_BUILD_TYPE
      CMAKE_COMPILER_PREFIX


  -- Build files have been written to: D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build
  Performing build step for 'gtest_external'
  Microsoft (R)-Buildmodul, Version 15.6.85.37198 f�r .NET Framework
  Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

    Checking Build System
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/CMakeFiles/generate.stamp is up-to-date.
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/googlemock/CMakeFiles/generate.stamp is up-to-date.
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/googlemock/gtest/CMakeFiles/generate.stamp is up-to-date.
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/src/googlemock/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/googlemock/CMakeFiles/generate.stamp is up-to-date.
    gtest-all.cc
    gmock-all.cc
    Code wird generiert...
    gmock.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\gtest\build\googlemock\Debug\gmockd.lib
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/src/googlemock/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/googlemock/CMakeFiles/generate.stamp is up-to-date.
    gtest-all.cc
    gmock-all.cc
    gmock_main.cc
    Code wird generiert...
    gmock_main.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\gtest\build\googlemock\Debug\gmock_maind.lib
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/src/googletest/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/googlemock/gtest/CMakeFiles/generate.stamp is up-to-date.
    gtest-all.cc
    gtest.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\gtest\build\googlemock\gtest\Debug\gtestd.lib
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/src/googletest/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/googlemock/gtest/CMakeFiles/generate.stamp is up-to-date.
    gtest_main.cc
    gtest_main.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\gtest\build\googlemock\gtest\Debug\gtest_maind.lib
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/src/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/CMakeFiles/generate.stamp is up-to-date.
  No install step for 'gtest_external'
  No test step for 'gtest_external'
  Completed 'gtest_external'
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/download/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/download/CMakeFiles/generate.stamp is up-to-date.
Microsoft (R)-Buildmodul, Version 15.6.85.37198 f�r .NET Framework
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

  Checking Build System
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/download/CMakeFiles/generate.stamp is up-to-date.
  Creating directories for 'gtest_external'
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/download/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/download/CMakeFiles/generate.stamp is up-to-date.
  Performing download step (git clone) for 'gtest_external'
  -- Avoiding repeated git clone, stamp file is up to date: 'D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/download/gtest_external-prefix/src/gtest_external-stamp/gtest_external-gitclone-lastrun.txt'
  Skipping update step for 'gtest_external'
  No patch step for 'gtest_external'
  Performing configure step for 'gtest_external'
  -- Configuring done
  -- Generating done
  -- Build files have been written to: D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build
  Performing build step for 'gtest_external'
  Microsoft (R)-Buildmodul, Version 15.6.85.37198 f�r .NET Framework
  Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

    Checking Build System
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/CMakeFiles/generate.stamp is up-to-date.
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/googlemock/CMakeFiles/generate.stamp is up-to-date.
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/googlemock/gtest/CMakeFiles/generate.stamp is up-to-date.
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/src/googlemock/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/googlemock/CMakeFiles/generate.stamp is up-to-date.
    gtest-all.cc
    gmock-all.cc
    Code wird generiert...
    gmock.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\gtest\build\googlemock\Release\gmock.lib
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/src/googlemock/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/googlemock/CMakeFiles/generate.stamp is up-to-date.
    gtest-all.cc
    gmock-all.cc
    gmock_main.cc
    Code wird generiert...
    gmock_main.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\gtest\build\googlemock\Release\gmock_main.lib
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/src/googletest/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/googlemock/gtest/CMakeFiles/generate.stamp is up-to-date.
    gtest-all.cc
    gtest.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\gtest\build\googlemock\gtest\Release\gtest.lib
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/src/googletest/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/googlemock/gtest/CMakeFiles/generate.stamp is up-to-date.
    gtest_main.cc
    gtest_main.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\gtest\build\googlemock\gtest\Release\gtest_main.lib
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/src/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/build/CMakeFiles/generate.stamp is up-to-date.
  No install step for 'gtest_external'
  No test step for 'gtest_external'
  Completed 'gtest_external'
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/download/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/download/CMakeFiles/generate.stamp is up-to-date.
-- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.18362.
-- The C compiler identification is MSVC 19.13.26131.1
-- The CXX compiler identification is MSVC 19.13.26131.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/download
Microsoft (R)-Buildmodul, Version 15.6.85.37198 f�r .NET Framework
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

  Checking Build System
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/download/CMakeFiles/generate.stamp is up-to-date.
  Creating directories for 'gflags_external'
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/download/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/download/CMakeFiles/generate.stamp is up-to-date.
  Performing download step (git clone) for 'gflags_external'
  Cloning into 'src'...
  Note: checking out 'e171aa2d15ed9eb17054558e0b3a6a413bb01067'.

  You are in 'detached HEAD' state. You can look around, make experimental
  changes and commit them, and you can discard any commits you make in this
  state without impacting any branches by performing another checkout.

  If you want to create a new branch to retain commits you create, you may
  do so (now or later) by using -b with the checkout command again. Example:

    git checkout -b <new-branch-name>

  HEAD is now at e171aa2 Release v2.2.2
  Submodule 'doc' (https://github.com/gflags/gflags.git) registered for path 'doc'
  Cloning into 'D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/src/doc'...
  Submodule path 'doc': checked out '8411df715cf522606e3b1aca386ddfc0b63d34b4'
  Skipping update step for 'gflags_external'
  No patch step for 'gflags_external'
  Performing configure step for 'gflags_external'
  -- The CXX compiler identification is MSVC 19.13.26131.1
  -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
  -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Check size of __int32
  -- Check size of __int32 - done
  -- Configuring done
  -- Generating done
CUSTOMBUILD : CMake warning :  [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\gflags\download\gflags_external.vcxproj]
    Manually-specified variables were not used by the project:

      CMAKE_COMPILER_PREFIX
      CMAKE_C_COMPILER
      CMAKE_C_FLAGS
      CMAKE_C_FLAGS_DEBUG
      CMAKE_C_FLAGS_RELEASE


  -- Build files have been written to: D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/build
  Performing build step for 'gflags_external'
  Microsoft (R)-Buildmodul, Version 15.6.85.37198 f�r .NET Framework
  Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

    Checking Build System
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/build/CMakeFiles/generate.stamp is up-to-date.
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/src/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/build/CMakeFiles/generate.stamp is up-to-date.
    gflags.cc
    gflags_reporting.cc
    gflags_completions.cc
    windows_port.cc
    Code wird generiert...
    gflags_nothreads_static.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\gflags\build\lib\Debug\gflags_nothreads_static_debug.lib
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/src/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/build/CMakeFiles/generate.stamp is up-to-date.
  No install step for 'gflags_external'
  No test step for 'gflags_external'
  Completed 'gflags_external'
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/download/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/download/CMakeFiles/generate.stamp is up-to-date.
Microsoft (R)-Buildmodul, Version 15.6.85.37198 f�r .NET Framework
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

  Checking Build System
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/download/CMakeFiles/generate.stamp is up-to-date.
  Creating directories for 'gflags_external'
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/download/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/download/CMakeFiles/generate.stamp is up-to-date.
  Performing download step (git clone) for 'gflags_external'
  -- Avoiding repeated git clone, stamp file is up to date: 'D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/download/gflags_external-prefix/src/gflags_external-stamp/gflags_external-gitclone-lastrun.txt'
  Skipping update step for 'gflags_external'
  No patch step for 'gflags_external'
  Performing configure step for 'gflags_external'
  -- Configuring done
  -- Generating done
  -- Build files have been written to: D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/build
  Performing build step for 'gflags_external'
  Microsoft (R)-Buildmodul, Version 15.6.85.37198 f�r .NET Framework
  Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

    Checking Build System
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/build/CMakeFiles/generate.stamp is up-to-date.
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/src/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/build/CMakeFiles/generate.stamp is up-to-date.
    gflags.cc
    gflags_reporting.cc
    gflags_completions.cc
    windows_port.cc
    Code wird generiert...
    gflags_nothreads_static.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\gflags\build\lib\Release\gflags_nothreads_static.lib
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/src/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/build/CMakeFiles/generate.stamp is up-to-date.
  No install step for 'gflags_external'
  No test step for 'gflags_external'
  Completed 'gflags_external'
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/download/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/download/CMakeFiles/generate.stamp is up-to-date.
-- Selecting Windows SDK version 10.0.16299.0 to target Windows 10.0.18362.
-- The C compiler identification is MSVC 19.13.26131.1
-- The CXX compiler identification is MSVC 19.13.26131.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/download
Microsoft (R)-Buildmodul, Version 15.6.85.37198 f�r .NET Framework
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

  Checking Build System
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/download/CMakeFiles/generate.stamp is up-to-date.
  Creating directories for 'rapidjson_external'
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/download/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/download/CMakeFiles/generate.stamp is up-to-date.
  Performing download step (git clone) for 'rapidjson_external'
  Cloning into 'src'...
  Note: checking out '8d272e53a4d1dc405e08ce2dd50159c58f4451e9'.

  You are in 'detached HEAD' state. You can look around, make experimental
  changes and commit them, and you can discard any commits you make in this
  state without impacting any branches by performing another checkout.

  If you want to create a new branch to retain commits you create, you may
  do so (now or later) by using -b with the checkout command again. Example:

    git checkout -b <new-branch-name>

  HEAD is now at 8d272e53 CMake: remove hardcoded CMAKECONFIG_INSTALL_DIR path
  Submodule 'thirdparty/gtest' (https://github.com/google/googletest.git) registered for path 'thirdparty/gtest'
  Cloning into 'D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/src/thirdparty/gtest'...
  Submodule path 'thirdparty/gtest': checked out 'ba96d0b1161f540656efdaed035b3c062b60e006'
  Skipping update step for 'rapidjson_external'
  No patch step for 'rapidjson_external'
  Performing configure step for 'rapidjson_external'
  -- The CXX compiler identification is MSVC 19.13.26131.1
  -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe
  -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/Hostx86/x86/cl.exe -- works
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Configuring done
  -- Generating done
CUSTOMBUILD : CMake warning :  [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\third_party\rapidjson\download\rapidjson_external.vcxproj]
    Manually-specified variables were not used by the project:

      CMAKE_COMPILER_PREFIX
      CMAKE_C_COMPILER
      CMAKE_C_FLAGS


  -- Build files have been written to: D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/build
  Performing build step for 'rapidjson_external'
  Microsoft (R)-Buildmodul, Version 15.6.85.37198 f�r .NET Framework
  Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

    Checking Build System
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/build/CMakeFiles/generate.stamp is up-to-date.
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/src/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/build/CMakeFiles/generate.stamp is up-to-date.
  No install step for 'rapidjson_external'
  No test step for 'rapidjson_external'
  Completed 'rapidjson_external'
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/download/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/download/CMakeFiles/generate.stamp is up-to-date.
Microsoft (R)-Buildmodul, Version 15.6.85.37198 f�r .NET Framework
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

  Checking Build System
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/download/CMakeFiles/generate.stamp is up-to-date.
  Creating directories for 'rapidjson_external'
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/download/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/download/CMakeFiles/generate.stamp is up-to-date.
  Performing download step (git clone) for 'rapidjson_external'
  -- Avoiding repeated git clone, stamp file is up to date: 'D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/download/rapidjson_external-prefix/src/rapidjson_external-stamp/rapidjson_external-gitclone-lastrun.txt'
  Skipping update step for 'rapidjson_external'
  No patch step for 'rapidjson_external'
  Performing configure step for 'rapidjson_external'
  -- Configuring done
  -- Generating done
  -- Build files have been written to: D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/build
  Performing build step for 'rapidjson_external'
  Microsoft (R)-Buildmodul, Version 15.6.85.37198 f�r .NET Framework
  Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

    Checking Build System
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/build/CMakeFiles/generate.stamp is up-to-date.
    Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/src/CMakeLists.txt
    CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/build/CMakeFiles/generate.stamp is up-to-date.
  No install step for 'rapidjson_external'
  No test step for 'rapidjson_external'
  Completed 'rapidjson_external'
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/download/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/download/CMakeFiles/generate.stamp is up-to-date.
CMake Warning (dev) at third_party/CMakeLists.txt:25 (target_link_libraries):
  Policy CMP0079 is not set: target_link_libraries allows use with targets in
  other directories.  Run "cmake --help-policy CMP0079" for policy details.
  Use the cmake_policy command to set the policy and suppress this warning.

  Target

    gflags

  is not created in this directory.  For compatibility with older versions of
  CMake, link library

    shlwapi.lib

  will be looked up in the directory in which the target was created rather
  than in this calling directory.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE
CMake Warning at benchmark/CMakeLists.txt:2 (message):
  Ginkgo is not being built in "Release" mode, benchmark performance will be
  affected


-- Configuring done
-- Generating done
-- Build files have been written to: D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug
make without CUDA
PS D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug> cmake --build . --target ALL_BUILD -j4 --config Debug
Microsoft (R)-Buildmodul, Version 15.6.85.37198 für .NET Framework
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

  Checking Build System
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/matrices/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gtest/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/gflags/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/third_party/rapidjson/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/devices/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/devices/omp/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/devices/cuda/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/devices/reference/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/device_hooks/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/test/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/test/base/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/test/factorization/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/test/log/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/test/matrix/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/test/preconditioner/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/test/solver/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/test/stop/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/test/utils/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/reference/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/reference/test/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/reference/test/base/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/reference/test/factorization/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/reference/test/log/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/reference/test/matrix/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/reference/test/preconditioner/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/reference/test/solver/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/reference/test/stop/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/reference/test/utils/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/custom-logger/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/custom-matrix-format/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/custom-stopping-criterion/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/ginkgo-overhead/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/ginkgo-ranges/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/inverse-iteration/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/minimal-cuda-solver/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/nine-pt-stencil-solver/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/papi-logging/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/poisson-solver/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/preconditioned-solver/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/simple-solver/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/simple-solver-logging/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/three-pt-stencil-solver/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/examples/twentyseven-pt-stencil-solver/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/benchmark/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/benchmark/conversions/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/benchmark/matrix_generator/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/benchmark/matrix_statistics/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/benchmark/preconditioner/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/benchmark/solver/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/benchmark/spmv/CMakeFiles/generate.stamp is up-to-date.
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/core/devices/cuda/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/devices/cuda/CMakeFiles/generate.stamp is up-to-date.
  executor.cpp
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/core/devices/omp/CMakeLists.txt
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/core/devices/reference/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/devices/reference/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/devices/omp/CMakeFiles/generate.stamp is up-to-date.
  dummy.cpp
  executor.cpp
  ginkgo_reference_device.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\core\devices\reference\ginkgo_reference_device.dir\Debug\ginkgo_reference_device.lib
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/reference/CMakeLists.txt
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/benchmark/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/reference/CMakeFiles/generate.stamp is up-to-date.
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/benchmark/CMakeFiles/generate.stamp is up-to-date.
  version.cpp
  ginkgo_cuda_device.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\core\devices\cuda\ginkgo_cuda_device.dir\Debug\ginkgo_cuda_device.lib
  Building Custom Rule D:/Data/Dateien/Programming/Master/ginkgo_github/core/device_hooks/CMakeLists.txt
  CMake does not need to re-run because D:/Data/Dateien/Programming/Master/ginkgo_github/build/debug/core/device_hooks/CMakeFiles/generate.stamp is up-to-date.
  cuda_hooks.cpp
  ginkgo_omp_device.vcxproj -> D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\core\devices\omp\ginkgo_omp_device.dir\Debug\ginkgo_omp_device.lib
  par_ilu_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\core\device_hooks\ginkgo_cuda.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/factorization/par_ilu.hpp(151): warning C4099: "gko::enable_parameters_type<ParametersType,gko::factorization::ParIlu<Va
lueType,IndexType>::Factory>": Geben Sie den zuerst unter Verwendung von "struct" und jetzt unter Verwendung von "class" gesehenen Namen ein [D:\Data\Dateien\Programming\Master\ginkgo_githu
b\build\debug\core\device_hooks\ginkgo_cuda.vcxproj]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/factorization/par_ilu.hpp(151): note: Siehe Deklaration von "gko::enable_parameters_type<ParametersType,gko::factoriza
  tion::ParIlu<ValueType,IndexType>::Factory>"
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/factorization/par_ilu.hpp(151): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::factorization::ParIlu<
  ValueType,IndexType>::Factory", die kompiliert wird.
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/factorization/par_ilu.hpp(181): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::factorization::ParIlu<
  ValueType,IndexType>", die kompiliert wird.
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/factorization/par_ilu.hpp(151): warning C4099: "gko::enable_parameters_type<ParametersType,gko::factorization::ParIlu<Va
lueType,IndexType>::Factory>": Geben Sie den zuerst unter Verwendung von "struct" und jetzt unter Verwendung von "class" gesehenen Namen ein [D:\Data\Dateien\Programming\Master\ginkgo_githu
b\build\debug\reference\ginkgo_reference.vcxproj]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/factorization/par_ilu.hpp(151): note: Siehe Deklaration von "gko::enable_parameters_type<ParametersType,gko::factoriza
  tion::ParIlu<ValueType,IndexType>::Factory>"
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/factorization/par_ilu.hpp(151): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::factorization::ParIlu<
  ValueType,IndexType>::Factory", die kompiliert wird.
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/factorization/par_ilu.hpp(181): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::factorization::ParIlu<
  ValueType,IndexType>", die kompiliert wird.
  coo_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/preconditioner/jacobi.hpp(454): warning C4099: "gko::enable_parameters_type<ParametersType,gko::preconditioner::Jacobi<V
alueType,IndexType>::Factory>": Geben Sie den zuerst unter Verwendung von "struct" und jetzt unter Verwendung von "class" gesehenen Namen ein [D:\Data\Dateien\Programming\Master\ginkgo_gith
ub\build\debug\core\device_hooks\ginkgo_cuda.vcxproj]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/preconditioner/jacobi.hpp(454): note: Siehe Deklaration von "gko::enable_parameters_type<ParametersType,gko::precondit
  ioner::Jacobi<ValueType,IndexType>::Factory>"
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/preconditioner/jacobi.hpp(454): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::preconditioner::Jacobi
  <ValueType,IndexType>::Factory", die kompiliert wird.
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/preconditioner/jacobi.hpp(557): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::preconditioner::Jacobi
  <ValueType,IndexType>", die kompiliert wird.
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/lower_trs.hpp(127): warning C4099: "gko::enable_parameters_type<ParametersType,gko::solver::LowerTrs<ValueType,In
dexType>::Factory>": Geben Sie den zuerst unter Verwendung von "struct" und jetzt unter Verwendung von "class" gesehenen Namen ein [D:\Data\Dateien\Programming\Master\ginkgo_github\build\de
bug\core\device_hooks\ginkgo_cuda.vcxproj]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/lower_trs.hpp(127): note: Siehe Deklaration von "gko::enable_parameters_type<ParametersType,gko::solver::LowerT
  rs<ValueType,IndexType>::Factory>"
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/lower_trs.hpp(127): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::solver::LowerTrs<ValueType,
  IndexType>::Factory", die kompiliert wird.
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/lower_trs.hpp(182): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::solver::LowerTrs<ValueType,
  IndexType>", die kompiliert wird.
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/upper_trs.hpp(127): warning C4099: "gko::enable_parameters_type<ParametersType,gko::solver::UpperTrs<ValueType,In
dexType>::Factory>": Geben Sie den zuerst unter Verwendung von "struct" und jetzt unter Verwendung von "class" gesehenen Namen ein [D:\Data\Dateien\Programming\Master\ginkgo_github\build\de
bug\core\device_hooks\ginkgo_cuda.vcxproj]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/upper_trs.hpp(127): note: Siehe Deklaration von "gko::enable_parameters_type<ParametersType,gko::solver::UpperT
  rs<ValueType,IndexType>::Factory>"
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/upper_trs.hpp(127): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::solver::UpperTrs<ValueType,
  IndexType>::Factory", die kompiliert wird.
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/upper_trs.hpp(182): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::solver::UpperTrs<ValueType,
  IndexType>", die kompiliert wird.
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
  csr_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
  dense_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
  ell_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
  hybrid_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
  sellp_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
  jacobi_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/preconditioner/jacobi.hpp(454): warning C4099: "gko::enable_parameters_type<ParametersType,gko::preconditioner::Jacobi<V
alueType,IndexType>::Factory>": Geben Sie den zuerst unter Verwendung von "struct" und jetzt unter Verwendung von "class" gesehenen Namen ein [D:\Data\Dateien\Programming\Master\ginkgo_gith
ub\build\debug\reference\ginkgo_reference.vcxproj]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/preconditioner/jacobi.hpp(454): note: Siehe Deklaration von "gko::enable_parameters_type<ParametersType,gko::precondit
  ioner::Jacobi<ValueType,IndexType>::Factory>"
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/preconditioner/jacobi.hpp(454): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::preconditioner::Jacobi
  <ValueType,IndexType>::Factory", die kompiliert wird.
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/preconditioner/jacobi.hpp(557): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::preconditioner::Jacobi
  <ValueType,IndexType>", die kompiliert wird.
  bicgstab_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
  cg_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
  cgs_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
  fcg_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
  gmres_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/stop/combined.hpp(73): warning C4099: "gko::enable_parameters_type<gko::stop::Combined::parameters_type,gko::stop::Combi
ned::Factory>": Geben Sie den zuerst unter Verwendung von "struct" und jetzt unter Verwendung von "class" gesehenen Namen ein [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\r
eference\ginkgo_reference.vcxproj]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/stop/combined.hpp(59): note: Siehe Deklaration von "gko::enable_parameters_type<gko::stop::Combined::parameters_type,g
  ko::stop::Combined::Factory>"
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/gmres.hpp(124): warning C4099: "gko::enable_parameters_type<ParametersType,gko::solver::Gmres<ValueType>::Factory
>": Geben Sie den zuerst unter Verwendung von "struct" und jetzt unter Verwendung von "class" gesehenen Namen ein [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\gin
kgo_reference.vcxproj]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/gmres.hpp(124): note: Siehe Deklaration von "gko::enable_parameters_type<ParametersType,gko::solver::Gmres<Valu
  eType>::Factory>"
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/gmres.hpp(124): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::solver::Gmres<ValueType>::Facto
  ry", die kompiliert wird.
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/gmres.hpp(165): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::solver::Gmres<ValueType>", die
  kompiliert wird.
  ir_kernels.cpp
  lower_trs_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/lower_trs.hpp(127): warning C4099: "gko::enable_parameters_type<ParametersType,gko::solver::LowerTrs<ValueType,In
dexType>::Factory>": Geben Sie den zuerst unter Verwendung von "struct" und jetzt unter Verwendung von "class" gesehenen Namen ein [D:\Data\Dateien\Programming\Master\ginkgo_github\build\de
bug\reference\ginkgo_reference.vcxproj]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/lower_trs.hpp(127): note: Siehe Deklaration von "gko::enable_parameters_type<ParametersType,gko::solver::LowerT
  rs<ValueType,IndexType>::Factory>"
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/lower_trs.hpp(127): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::solver::LowerTrs<ValueType,
  IndexType>::Factory", die kompiliert wird.
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/lower_trs.hpp(182): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::solver::LowerTrs<ValueType,
  IndexType>", die kompiliert wird.
  upper_trs_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/upper_trs.hpp(127): warning C4099: "gko::enable_parameters_type<ParametersType,gko::solver::UpperTrs<ValueType,In
dexType>::Factory>": Geben Sie den zuerst unter Verwendung von "struct" und jetzt unter Verwendung von "class" gesehenen Namen ein [D:\Data\Dateien\Programming\Master\ginkgo_github\build\de
bug\reference\ginkgo_reference.vcxproj]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/upper_trs.hpp(127): note: Siehe Deklaration von "gko::enable_parameters_type<ParametersType,gko::solver::UpperT
  rs<ValueType,IndexType>::Factory>"
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/upper_trs.hpp(127): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::solver::UpperTrs<ValueType,
  IndexType>::Factory", die kompiliert wird.
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/solver/upper_trs.hpp(182): note: Siehe Verweis auf die Klasse Vorlage-Instanziierung "gko::solver::UpperTrs<ValueType,
  IndexType>", die kompiliert wird.
  criterion_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\reference\stop\criterion_kernels.cpp(54): warning C4018: "<": Konflikt zwischen "signed" und "unsigned" [D:\Data\Dateien\Programming\Master\
ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
  residual_norm_reduction_kernels.cpp
D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(180): error C2995: "std::enable_if<B,T>::type gko::detail::equal_dimensions(const FirstRange &,const Seco
ndRange &)": Funktionsvorlage wurde bereits definiert. [D:\Data\Dateien\Programming\Master\ginkgo_github\build\debug\reference\ginkgo_reference.vcxproj]
          with
          [
              T=bool
          ]
  D:\Data\Dateien\Programming\Master\ginkgo_github\include\ginkgo/core/base/range.hpp(165): note: Siehe Deklaration von "gko::detail::equal_dimensions"
  Code wird generiert...

With CUDA, I get the exact same error as before.

@yhmtsai
Copy link
Member Author

yhmtsai commented Sep 27, 2019

The problem might be that MSVC can not recognize SFINAE correctly.
They support SFINAE in VS 2017 15.7 in this list
Your version might be 15.6 according to the Microsoft Building Engine but I am not pretty sure.
Could you check the version by opening visual studio->help->about or executing "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" to get installationName?

@yhmtsai
Copy link
Member Author

yhmtsai commented Oct 6, 2019

I have tested this PR on another windows laptop with Nvidia 850M.
There are only two failed tests - cuda/preconditioner/jacobi_kernel and ilu.
ilu can be ignored because this PR does not rebase to the newest develop.
cuda/preconditioner/jacobi_kernel - Maybe the error bound is too small to pass it.
Failed tests

Jacobi.CudaPreconditionerEquivalentToRefWithBlockSize32
Jacobi.CudaPreconditionerEquivalentToRefWithDifferentBlockSize
Jacobi.CudaPreconditionerEquivalentToRefWithMPW
Jacobi.ComputesTheSameConditionNumberAsRef
Jacobi.CudaPreconditionerEquivalentToRefWithFullPrecision
Jacobi.CudaApplyEquivalentToRefWithQuarteredPrecision

CudaPreconditionerEquivalentToRefWithDifferentBlockSize is failed but CudaApplyEquivalentToRefWithDifferentBlockSize is passed - preconditioner x apply o
On the other direction, CudaPreconditionerEquivalentToRefWithQuarteredPrecision is passed but CudaApplyEquivalentToRefWithQuarteredPrecision is failed - preconditioner o apply x
The full output
result.txt

@hartwiganzt
Copy link
Collaborator

@yhmtsai, is this a Windows-related problem? Does the test pass on an Nvidia 850 M (Maxell) when running under Ubuntu?

@yhmtsai
Copy link
Member Author

yhmtsai commented Oct 6, 2019

@hartwiganzt I do not know the answer.
The notebook is in Taiwan, so it is hard to install ubuntu system remotely.

@yhmtsai
Copy link
Member Author

yhmtsai commented Oct 11, 2019

I think the issue #354 will change the cmake behavior on linux.

Copy link
Member

@tcojean tcojean left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have some comments related to documentation and some CMake things, but mostly LGTM.

CMakeLists.txt Outdated Show resolved Hide resolved
INSTALL.md Outdated Show resolved Hide resolved
INSTALL.md Outdated Show resolved Hide resolved
INSTALL.md Show resolved Hide resolved
cmake/build_helpers.cmake Outdated Show resolved Hide resolved
cmake/package_helpers.cmake Show resolved Hide resolved
cmake/package_helpers.cmake Outdated Show resolved Hide resolved
INSTALL.md Outdated Show resolved Hide resolved
@yhmtsai yhmtsai merged commit e26285b into develop Oct 17, 2019
@pratikvn pratikvn deleted the msvc_compile branch October 20, 2019 11:39
tcojean added a commit that referenced this pull request Oct 20, 2019
The Ginkgo team is proud to announce the new minor release of Ginkgo version
1.1.0. This release brings several performance improvements, adds Windows support, 
adds support for factorizations inside Ginkgo and a new ILU preconditioner
based on ParILU algorithm, among other things. For detailed information, check the respective issue.

Supported systems and requirements:
+ For all platforms, cmake 3.9+
+ Linux and MacOS
  + gcc: 5.3+, 6.3+, 7.3+, 8.1+
  + clang: 3.9+
  + Intel compiler: 2017+
  + Apple LLVM: 8.0+
  + CUDA module: CUDA 9.0+
+ Windows
  + MinGW and CygWin: gcc 5.3+, 6.3+, 7.3+, 8.1+
  + Microsoft Visual Studio: VS 2017 15.7+
  + CUDA module: CUDA 9.0+, Microsoft Visual Studio
  + OpenMP module: MinGW or CygWin.


The current known issues can be found in the [known issues
page](https://github.com/ginkgo-project/ginkgo/wiki/Known-Issues).


Additions:
+ Upper and lower triangular solvers ([#327](#327), [#336](#336), [#341](#341), [#342](#342)) 
+ New factorization support in Ginkgo, and addition of the ParILU
  algorithm ([#305](#305), [#315](#315), [#319](#319), [#324](#324))
+ New ILU preconditioner ([#348](#348), [#353](#353))
+ Windows MinGW and Cygwin support ([#347](#347))
+ Windows Visual studio support ([#351](#351))
+ New example showing how to use ParILU as a preconditioner ([#358](#358))
+ New example on using loggers for debugging ([#360](#360))
+ Add two new 9pt and 27pt stencil examples ([#300](#300), [#306](#306))
+ Allow benchmarking CuSPARSE spmv formats through Ginkgo's benchmarks ([#303](#303))
+ New benchmark for sparse matrix format conversions ([#312](#312))
+ Add conversions between CSR and Hybrid formats ([#302](#302), [#310](#310))
+ Support for sorting rows in the CSR format by column idices ([#322](#322))
+ Addition of a CUDA COO SpMM kernel for improved performance ([#345](#345))
+ Addition of a LinOp to handle perturbations of the form (identity + scalar *
  basis * projector) ([#334](#334))
+ New sparsity matrix representation format with Reference and OpenMP
  kernels ([#349](#349), [#350](#350))

Fixes:
+ Accelerate GMRES solver for CUDA executor ([#363](#363))
+ Fix BiCGSTAB solver convergence ([#359](#359))
+ Fix CGS logging by reporting the residual for every sub iteration ([#328](#328))
+ Fix CSR,Dense->Sellp conversion's memory access violation ([#295](#295))
+ Accelerate CSR->Ell,Hybrid conversions on CUDA ([#313](#313), [#318](#318))
+ Fixed slowdown of COO SpMV on OpenMP ([#340](#340))
+ Fix gcc 6.4.0 internal compiler error ([#316](#316))
+ Fix compilation issue on Apple clang++ 10 ([#322](#322))
+ Make Ginkgo able to compile on Intel 2017 and above ([#337](#337))
+ Make the benchmarks spmv/solver use the same matrix formats ([#366](#366))
+ Fix self-written isfinite function ([#348](#348))
+ Fix Jacobi issues shown by cuda-memcheck

Tools and ecosystem:
+ Multiple improvements to the CI system and tools ([#296](#296), [#311](#311), [#365](#365))
+ Multiple improvements to the Ginkgo containers ([#328](#328), [#361](#361))
+ Add sonarqube analysis to Ginkgo ([#304](#304), [#308](#308), [#309](#309))
+ Add clang-tidy and iwyu support to Ginkgo ([#298](#298))
+ Improve Ginkgo's support of xSDK M12 policy by adding the `TPL_` arguments
  to CMake ([#300](#300))
+ Add support for the xSDK R7 policy ([#325](#325))
+ Fix examples in html documentation ([#367](#367))
tcojean added a commit that referenced this pull request Oct 21, 2019
The Ginkgo team is proud to announce the new minor release of Ginkgo version
1.1.0. This release brings several performance improvements, adds Windows support,
adds support for factorizations inside Ginkgo and a new ILU preconditioner
based on ParILU algorithm, among other things. For detailed information, check the respective issue.

Supported systems and requirements:
+ For all platforms, cmake 3.9+
+ Linux and MacOS
  + gcc: 5.3+, 6.3+, 7.3+, 8.1+
  + clang: 3.9+
  + Intel compiler: 2017+
  + Apple LLVM: 8.0+
  + CUDA module: CUDA 9.0+
+ Windows
  + MinGW and Cygwin: gcc 5.3+, 6.3+, 7.3+, 8.1+
  + Microsoft Visual Studio: VS 2017 15.7+
  + CUDA module: CUDA 9.0+, Microsoft Visual Studio
  + OpenMP module: MinGW or Cygwin.


The current known issues can be found in the [known issues
page](https://github.com/ginkgo-project/ginkgo/wiki/Known-Issues).


### Additions
+ Upper and lower triangular solvers ([#327](#327), [#336](#336), [#341](#341), [#342](#342)) 
+ New factorization support in Ginkgo, and addition of the ParILU
  algorithm ([#305](#305), [#315](#315), [#319](#319), [#324](#324))
+ New ILU preconditioner ([#348](#348), [#353](#353))
+ Windows MinGW and Cygwin support ([#347](#347))
+ Windows Visual Studio support ([#351](#351))
+ New example showing how to use ParILU as a preconditioner ([#358](#358))
+ New example on using loggers for debugging ([#360](#360))
+ Add two new 9pt and 27pt stencil examples ([#300](#300), [#306](#306))
+ Allow benchmarking CuSPARSE spmv formats through Ginkgo's benchmarks ([#303](#303))
+ New benchmark for sparse matrix format conversions ([#312](#312))
+ Add conversions between CSR and Hybrid formats ([#302](#302), [#310](#310))
+ Support for sorting rows in the CSR format by column idices ([#322](#322))
+ Addition of a CUDA COO SpMM kernel for improved performance ([#345](#345))
+ Addition of a LinOp to handle perturbations of the form (identity + scalar *
  basis * projector) ([#334](#334))
+ New sparsity matrix representation format with Reference and OpenMP
  kernels ([#349](#349), [#350](#350))

### Fixes
+ Accelerate GMRES solver for CUDA executor ([#363](#363))
+ Fix BiCGSTAB solver convergence ([#359](#359))
+ Fix CGS logging by reporting the residual for every sub iteration ([#328](#328))
+ Fix CSR,Dense->Sellp conversion's memory access violation ([#295](#295))
+ Accelerate CSR->Ell,Hybrid conversions on CUDA ([#313](#313), [#318](#318))
+ Fixed slowdown of COO SpMV on OpenMP ([#340](#340))
+ Fix gcc 6.4.0 internal compiler error ([#316](#316))
+ Fix compilation issue on Apple clang++ 10 ([#322](#322))
+ Make Ginkgo able to compile on Intel 2017 and above ([#337](#337))
+ Make the benchmarks spmv/solver use the same matrix formats ([#366](#366))
+ Fix self-written isfinite function ([#348](#348))
+ Fix Jacobi issues shown by cuda-memcheck

### Tools and ecosystem improvements
+ Multiple improvements to the CI system and tools ([#296](#296), [#311](#311), [#365](#365))
+ Multiple improvements to the Ginkgo containers ([#328](#328), [#361](#361))
+ Add sonarqube analysis to Ginkgo ([#304](#304), [#308](#308), [#309](#309))
+ Add clang-tidy and iwyu support to Ginkgo ([#298](#298))
+ Improve Ginkgo's support of xSDK M12 policy by adding the `TPL_` arguments
  to CMake ([#300](#300))
+ Add support for the xSDK R7 policy ([#325](#325))
+ Fix examples in html documentation ([#367](#367))


Related PR: #370
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1:ST:ready-for-review This PR is ready for review plat:windows This is related to the Windows Operating system reg:build This is related to the build system.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants