GEOS
GEOS copied to clipboard
[Bug] Compilation error with CUDA 11.5
Describe the bug GEOSX fails to compile with CUDA 11.5
To Reproduce Steps to reproduce the behavior:
- Compile TPLs with CUDA 11.5
- Compile GEOSX with CUDA 11.5
- 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.