GEOS icon indicating copy to clipboard operation
GEOS copied to clipboard

[Bug] Compilation error with CUDA 11.5

Open kcgthb opened this issue 2 years ago • 0 comments

Describe the bug GEOSX fails to compile with CUDA 11.5

To Reproduce Steps to reproduce the behavior:

  1. Compile TPLs with CUDA 11.5
  2. Compile GEOSX with CUDA 11.5
  3. See error below

Expected behavior Successful compilation

Platform (please complete the following information):

  • Machine: Stanford/Sherlock
  • Compiler: gcc 10.1.0
  • GEOSX Version: 2b14bfa4cfc418a5b884bc5a8a7a01d4dfd84980

Additional context Here's the make output:

[ 73%] Built target exampleArrayOfSets
[ 73%] Built target exampleSparsityPatternAndCRSMatrix
[ 74%] Built target exampleTensorOps
Consolidate compiler generated dependencies of target benchmarkInnerProduct
[ 74%] Building CUDA object coreComponents/LvArray/benchmarks/CMakeFiles/benchmarkInnerProduct.dir/benchmarkInnerProduct.cpp.o
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProductKernels.hpp(94): error: template instantiation resulted in unexpected function type of "RAJA::View<LvArray::benchmarking::VALUE_TYPE, RAJA::detail::LayoutBase_impl<camp::int_seq<camp::idx_t, 0L>, LvArray::benchmarking::INDEX_TYPE, 0L>, LvArray::benchmarking::VALUE_TYPE *> (const LvArray::Array<LvArray::benchmarking::VALUE_TYPE, 1, RAJA::PERM_I, LvArray::benchmarking::INDEX_TYPE, LvArray::testing::DEFAULT_BUFFER> &)" (the meaning of a name may have changed since the template declaration -- the type of the template is "LvArray::benchmarking::RajaView<T, PERMUTATION> (const LvArray::benchmarking::ArrayT<T, PERMUTATION> &)")
          detected during instantiation of "LvArray::benchmarking::makeRajaView" based on template arguments <LvArray::benchmarking::VALUE_TYPE, RAJA::PERM_I> 
(94): here

/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProductKernels.hpp(183): error: more than one conversion function from "LvArray::Array<LvArray::benchmarking::VALUE_TYPE, 1, RAJA::PERM_I, LvArray::benchmarking::INDEX_TYPE, LvArray::testing::DEFAULT_BUFFER>" to "<error-type>" applies:
            function "LvArray::Array<T, NDIM, PERMUTATION, INDEX_TYPE, BUFFER_TYPE>::operator LvArray::ArrayView<const T, NDIM, LvArray::ArrayView<T, NDIM, <expression>, INDEX_TYPE, BUFFER_TYPE>::USD, INDEX_TYPE, BUFFER_TYPE>() const & [with T=LvArray::benchmarking::VALUE_TYPE, NDIM=1, PERMUTATION=RAJA::PERM_I, INDEX_TYPE=LvArray::benchmarking::INDEX_TYPE, BUFFER_TYPE=LvArray::testing::DEFAULT_BUFFER]"
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/../src/Array.hpp(268): here
            function "LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::operator LvArray::ArraySlice<T, LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::NDIM, LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::USD, INDEX_TYPE>() const & [with T=LvArray::benchmarking::VALUE_TYPE, NDIM_TPARAM=1, USD_TPARAM=0, INDEX_TYPE=LvArray::benchmarking::INDEX_TYPE, BUFFER_TYPE=LvArray::testing::DEFAULT_BUFFER]"
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/../src/ArrayView.hpp(351): here
          detected during:
            instantiation of "void LvArray::benchmarking::InnerProductRAJA<POLICY>::RAJAView() [with POLICY=LvArray::testing::serialPolicy]" 
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp(110): here
            instantiation of "void LvArray::benchmarking::rajaViewRAJA<POLICY>(benchmark::State &) [with POLICY=LvArray::testing::serialPolicy]" 
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp(152): here

/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProductKernels.hpp(184): error: more than one conversion function from "LvArray::Array<LvArray::benchmarking::VALUE_TYPE, 1, RAJA::PERM_I, LvArray::benchmarking::INDEX_TYPE, LvArray::testing::DEFAULT_BUFFER>" to "<error-type>" applies:
            function "LvArray::Array<T, NDIM, PERMUTATION, INDEX_TYPE, BUFFER_TYPE>::operator LvArray::ArrayView<const T, NDIM, LvArray::ArrayView<T, NDIM, <expression>, INDEX_TYPE, BUFFER_TYPE>::USD, INDEX_TYPE, BUFFER_TYPE>() const & [with T=LvArray::benchmarking::VALUE_TYPE, NDIM=1, PERMUTATION=RAJA::PERM_I, INDEX_TYPE=LvArray::benchmarking::INDEX_TYPE, BUFFER_TYPE=LvArray::testing::DEFAULT_BUFFER]"
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/../src/Array.hpp(268): here
            function "LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::operator LvArray::ArraySlice<T, LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::NDIM, LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::USD, INDEX_TYPE>() const & [with T=LvArray::benchmarking::VALUE_TYPE, NDIM_TPARAM=1, USD_TPARAM=0, INDEX_TYPE=LvArray::benchmarking::INDEX_TYPE, BUFFER_TYPE=LvArray::testing::DEFAULT_BUFFER]"
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/../src/ArrayView.hpp(351): here
          detected during:
            instantiation of "void LvArray::benchmarking::InnerProductRAJA<POLICY>::RAJAView() [with POLICY=LvArray::testing::serialPolicy]" 
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp(110): here
            instantiation of "void LvArray::benchmarking::rajaViewRAJA<POLICY>(benchmark::State &) [with POLICY=LvArray::testing::serialPolicy]" 
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp(152): here

/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProductKernels.hpp(183): error: more than one conversion function from "LvArray::Array<LvArray::benchmarking::VALUE_TYPE, 1, RAJA::PERM_I, LvArray::benchmarking::INDEX_TYPE, LvArray::testing::DEFAULT_BUFFER>" to "<error-type>" applies:
            function "LvArray::Array<T, NDIM, PERMUTATION, INDEX_TYPE, BUFFER_TYPE>::operator LvArray::ArrayView<const T, NDIM, LvArray::ArrayView<T, NDIM, <expression>, INDEX_TYPE, BUFFER_TYPE>::USD, INDEX_TYPE, BUFFER_TYPE>() const & [with T=LvArray::benchmarking::VALUE_TYPE, NDIM=1, PERMUTATION=RAJA::PERM_I, INDEX_TYPE=LvArray::benchmarking::INDEX_TYPE, BUFFER_TYPE=LvArray::testing::DEFAULT_BUFFER]"
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/../src/Array.hpp(268): here
            function "LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::operator LvArray::ArraySlice<T, LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::NDIM, LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::USD, INDEX_TYPE>() const & [with T=LvArray::benchmarking::VALUE_TYPE, NDIM_TPARAM=1, USD_TPARAM=0, INDEX_TYPE=LvArray::benchmarking::INDEX_TYPE, BUFFER_TYPE=LvArray::testing::DEFAULT_BUFFER]"
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/../src/ArrayView.hpp(351): here
          detected during:
            instantiation of "void LvArray::benchmarking::InnerProductRAJA<POLICY>::RAJAView() [with POLICY=LvArray::testing::parallelHostPolicy]" 
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp(110): here
            instantiation of "void LvArray::benchmarking::rajaViewRAJA<POLICY>(benchmark::State &) [with POLICY=LvArray::testing::parallelHostPolicy]" 
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp(152): here

/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProductKernels.hpp(184): error: more than one conversion function from "LvArray::Array<LvArray::benchmarking::VALUE_TYPE, 1, RAJA::PERM_I, LvArray::benchmarking::INDEX_TYPE, LvArray::testing::DEFAULT_BUFFER>" to "<error-type>" applies:
            function "LvArray::Array<T, NDIM, PERMUTATION, INDEX_TYPE, BUFFER_TYPE>::operator LvArray::ArrayView<const T, NDIM, LvArray::ArrayView<T, NDIM, <expression>, INDEX_TYPE, BUFFER_TYPE>::USD, INDEX_TYPE, BUFFER_TYPE>() const & [with T=LvArray::benchmarking::VALUE_TYPE, NDIM=1, PERMUTATION=RAJA::PERM_I, INDEX_TYPE=LvArray::benchmarking::INDEX_TYPE, BUFFER_TYPE=LvArray::testing::DEFAULT_BUFFER]"
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/../src/Array.hpp(268): here
            function "LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::operator LvArray::ArraySlice<T, LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::NDIM, LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::USD, INDEX_TYPE>() const & [with T=LvArray::benchmarking::VALUE_TYPE, NDIM_TPARAM=1, USD_TPARAM=0, INDEX_TYPE=LvArray::benchmarking::INDEX_TYPE, BUFFER_TYPE=LvArray::testing::DEFAULT_BUFFER]"
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/../src/ArrayView.hpp(351): here
          detected during:
            instantiation of "void LvArray::benchmarking::InnerProductRAJA<POLICY>::RAJAView() [with POLICY=LvArray::testing::parallelHostPolicy]" 
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp(110): here
            instantiation of "void LvArray::benchmarking::rajaViewRAJA<POLICY>(benchmark::State &) [with POLICY=LvArray::testing::parallelHostPolicy]" 
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp(152): here

/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProductKernels.hpp(183): error: more than one conversion function from "LvArray::Array<LvArray::benchmarking::VALUE_TYPE, 1, RAJA::PERM_I, LvArray::benchmarking::INDEX_TYPE, LvArray::testing::DEFAULT_BUFFER>" to "<error-type>" applies:
            function "LvArray::Array<T, NDIM, PERMUTATION, INDEX_TYPE, BUFFER_TYPE>::operator LvArray::ArrayView<const T, NDIM, LvArray::ArrayView<T, NDIM, <expression>, INDEX_TYPE, BUFFER_TYPE>::USD, INDEX_TYPE, BUFFER_TYPE>() const & [with T=LvArray::benchmarking::VALUE_TYPE, NDIM=1, PERMUTATION=RAJA::PERM_I, INDEX_TYPE=LvArray::benchmarking::INDEX_TYPE, BUFFER_TYPE=LvArray::testing::DEFAULT_BUFFER]"
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/../src/Array.hpp(268): here
            function "LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::operator LvArray::ArraySlice<T, LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::NDIM, LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::USD, INDEX_TYPE>() const & [with T=LvArray::benchmarking::VALUE_TYPE, NDIM_TPARAM=1, USD_TPARAM=0, INDEX_TYPE=LvArray::benchmarking::INDEX_TYPE, BUFFER_TYPE=LvArray::testing::DEFAULT_BUFFER]"
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/../src/ArrayView.hpp(351): here
          detected during:
            instantiation of "void LvArray::benchmarking::InnerProductRAJA<POLICY>::RAJAView() [with POLICY=RAJA::policy::cuda::cuda_exec<256UL, false>]" 
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp(110): here
            instantiation of "void LvArray::benchmarking::rajaViewRAJA<POLICY>(benchmark::State &) [with POLICY=RAJA::policy::cuda::cuda_exec<256UL, false>]" 
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp(152): here

/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProductKernels.hpp(184): error: more than one conversion function from "LvArray::Array<LvArray::benchmarking::VALUE_TYPE, 1, RAJA::PERM_I, LvArray::benchmarking::INDEX_TYPE, LvArray::testing::DEFAULT_BUFFER>" to "<error-type>" applies:
            function "LvArray::Array<T, NDIM, PERMUTATION, INDEX_TYPE, BUFFER_TYPE>::operator LvArray::ArrayView<const T, NDIM, LvArray::ArrayView<T, NDIM, <expression>, INDEX_TYPE, BUFFER_TYPE>::USD, INDEX_TYPE, BUFFER_TYPE>() const & [with T=LvArray::benchmarking::VALUE_TYPE, NDIM=1, PERMUTATION=RAJA::PERM_I, INDEX_TYPE=LvArray::benchmarking::INDEX_TYPE, BUFFER_TYPE=LvArray::testing::DEFAULT_BUFFER]"
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/../src/Array.hpp(268): here
            function "LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::operator LvArray::ArraySlice<T, LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::NDIM, LvArray::ArrayView<T, NDIM_TPARAM, USD_TPARAM, INDEX_TYPE, BUFFER_TYPE>::USD, INDEX_TYPE>() const & [with T=LvArray::benchmarking::VALUE_TYPE, NDIM_TPARAM=1, USD_TPARAM=0, INDEX_TYPE=LvArray::benchmarking::INDEX_TYPE, BUFFER_TYPE=LvArray::testing::DEFAULT_BUFFER]"
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/../src/ArrayView.hpp(351): here
          detected during:
            instantiation of "void LvArray::benchmarking::InnerProductRAJA<POLICY>::RAJAView() [with POLICY=RAJA::policy::cuda::cuda_exec<256UL, false>]" 
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp(110): here
            instantiation of "void LvArray::benchmarking::rajaViewRAJA<POLICY>(benchmark::State &) [with POLICY=RAJA::policy::cuda::cuda_exec<256UL, false>]" 
/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp(152): here

7 errors detected in the compilation of "/dev/shm/GEOSX/src/coreComponents/LvArray/benchmarks/benchmarkInnerProduct.cpp".
make[2]: *** [coreComponents/LvArray/benchmarks/CMakeFiles/benchmarkInnerProduct.dir/benchmarkInnerProduct.cpp.o] Error 1
make[1]: *** [coreComponents/LvArray/benchmarks/CMakeFiles/benchmarkInnerProduct.dir/all] Error 2
make: *** [all] Error 2

All thirdPartyLibs successfully build with the same host config.

kcgthb avatar May 26 '22 17:05 kcgthb