MSVC Errors when building Stokhos with CUDA enabled
Created by: Ahdhn
I used MinGW to run a 'do-script' (shown below) that invokes cmake on windows. Cmake configured and generated the code successfully. However, building using VC always fails. I am interested in building Stokhos_SPMVTest project only. When I tried to built it, the errors list shown below showed up. The system specs are listed below. Please advise. Thank you.
do-script
#!/bin/sh
rm -f CMakeCache.txt;
rm -rf CMakeFiles
EXTRA_ARGS=$@
cmake \
-D CMAKE_INSTALL_PREFIX="C:/trilinos/install" \
-D CMAKE_BUILD_TYPE:STRING=RELEASE \
-D Trilinos_ENABLE_DEBUG=OFF \
-D Trilinos_ENABLE_CHECKED_STL=OFF \
-D Trilinos_ENABLE_EXPLICIT_INSTANTIATION=ON \
-D Trilinos_WARNINGS_AS_ERRORS_FLAGS="" \
-D Trilinos_ENABLE_ALL_PACKAGES:BOOL=OFF \
-D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF \
-D Trilinos_DUMP_PACKAGE_DEPENDENCIES=OFF \
-D Trilinos_ENABLE_TESTS=ON \
-D Trilinos_ENABLE_OpenMP=ON \
-D Trilinos_ENABLE_CXX11=ON \
-D BUILD_SHARED_LIBS=ON \
-D DART_TESTING_TIMEOUT:STRING=600 \
-D CMAKE_CXX_COMPILER="C:/trilinos/nvcc_wrapper/nvcc_wrapper" \
-D CMAKE_C_COMPILER="C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe" \
-D TPL_BLAS_LIBRARIES="C:/open_blas/OpenBLAS-v0.2.19-Win64-int32/lib/libopenblas.dll.a" \
-D TPL_LAPACK_LIBRARIES="C:/open_blas/OpenBLAS-v0.2.19-Win64-int32/lib/libopenblas.dll.a" \
-D TPL_ENABLE_BinUtils=OFF \
-D TPL_ENABLE_Pthread=OFF \
-D TPL_ENABLE_CUDA=ON \
-D TPL_ENABLE_CUSPARSE=ON \
-D Trilinos_ENABLE_Stokhos=ON \
-D Stokhos_ENABLE_TESTS=ON \
-D Stokhos_ENABLE_EXAMPLES=ON \
-D Stokhos_ENABLE_EpetraExt=ON \
-D Stokhos_ENABLE_KokkosContainers=ON \
-D Kokkos_ENABLE_Cuda=ON \
-D Kokkos_ENABLE_Cuda_UVM=ON \
$EXTRA_ARGS \
../trilinos_source 2>&1 | tee -a configure.out
Error List
DESCRIPTION FILE LINE COLUMN PROJECT
error C2065: 'T' : undeclared identifier C:\trilinos\trilinos_source\packages\kokkos\core\src\impl\Kokkos_Utilities.hpp 61 1 Stokhos_SPMVTest
error C2143: syntax error : missing ';' before '&&' C:\trilinos\trilinos_source\packages\kokkos\core\src\impl\Kokkos_Utilities.hpp 67 1 Stokhos_SPMVTest
error C2144: syntax error : 'int' should be preceded by ';' C:\trilinos\trilinos_source\packages\kokkos\core\src\impl\Kokkos_Utilities.hpp 67 1 Stokhos_SPMVTest
error C2146: syntax error : missing ';' before identifier '__host__' C:\trilinos\trilinos_source\packages\kokkos\core\src\impl\Kokkos_Utilities.hpp 65 1 Stokhos_SPMVTest
error C2146: syntax error : missing ';' before identifier 'T' C:\trilinos\trilinos_source\packages\kokkos\core\src\impl\Kokkos_Utilities.hpp 67 1 Stokhos_SPMVTest
error C2923: 'std::remove_reference' : 'T' is not a valid template type argument for parameter '_Ty' C:\trilinos\trilinos_source\packages\kokkos\core\src\impl\Kokkos_Utilities.hpp 67 1 Stokhos_SPMVTest
error C3646: 'noexcept' : unknown override specifier C:\trilinos\trilinos_source\packages\kokkos\core\src\impl\Kokkos_Utilities.hpp 68 1 Stokhos_SPMVTest
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int C:\trilinos\trilinos_source\packages\kokkos\core\src\impl\Kokkos_Utilities.hpp 68 1 Stokhos_SPMVTest
System Specs:
- Windows 7 - x64
- MSVC 2013
- NVIDIA GeForce GTX 970
- CUDA 7.5
In the nvcc wrapper, the only change made was to specify the host compiler as follows
#host_compiler="C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe"