trilinos / Trilinos

Primary repository for the Trilinos Project
https://trilinos.org/
Other
1.19k stars 564 forks source link

Tpetra: ImportExport2_UnitTests build error #13495

Open cgcgcg opened 3 days ago

cgcgcg commented 3 days ago

Bug Report

Build error in a Cuda UVM build: https://sems-cdash-son.sandia.gov/cdash/viewBuildError.php?buildid=235465

/builds/muelu/nightly-testing/Trilinos/packages/tpetra/core/src/Tpetra_Details_DistributorActor.hpp(872): error: static assertion failed with "Please do not use Tpetra::Distributor with UVM allocations.  See GitHub issue #1088."
          detected during:
            instantiation of "void Tpetra::Details::DistributorActor::doPosts(const Tpetra::Details::DistributorPlan &, const ExpView &, const Teuchos::ArrayView<const size_t> &, const ImpView &, const Teuchos::ArrayView<const size_t> &) [with ExpView=Kokkos::View<char *, std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::HostSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>, ImpView=Kokkos::View<char *, std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::CudaUVMSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>]" 
(146): here
            instantiation of "void Tpetra::Details::DistributorActor::doPostsAndWaits(const Tpetra::Details::DistributorPlan &, const ExpView &, const Teuchos::ArrayView<const size_t> &, const ImpView &, const Teuchos::ArrayView<const size_t> &) [with ExpView=Kokkos::View<char *, std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::HostSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>, ImpView=Kokkos::View<char *, std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::CudaUVMSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>]" 
/builds/muelu/nightly-testing/Trilinos/packages/tpetra/core/src/Tpetra_Distributor.hpp(640): here
            instantiation of "std::enable_if<<expression>, void>::type Tpetra::Distributor::doPostsAndWaits(const ExpView &, const Teuchos::ArrayView<const size_t> &, const ImpView &, const Teuchos::ArrayView<const size_t> &) [with ExpView=Kokkos::View<char *, std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::HostSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>, ImpView=Kokkos::View<char *, std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::CudaUVMSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>]" 
/builds/muelu/nightly-testing/Trilinos/packages/tpetra/core/test/ImportExport2/ImportExport2_UnitTests.cpp(2361): here
            instantiation of "void <unnamed>::Import_Util_UnpackAndCombineWithOwningPIDs_UnitTest<LO, GO, Scalar>::runUnitTestImpl(Teuchos::FancyOStream &, __nv_bool &) const [with LO=int, GO=<unnamed>::longlong, Scalar=double]" 
/builds/muelu/nightly-testing/Trilinos/packages/tpetra/core/test/ImportExport2/ImportExport2_UnitTests.cpp(3076): here

/builds/muelu/nightly-testing/Trilinos/packages/kokkos/core/src/Kokkos_View.hpp(1331): error: static assertion failed with "Incompatible View copy construction"
          detected during:
            instantiation of "Kokkos::View<DataType, Properties...>::View(const Kokkos::View<RT, RP...> &, std::enable_if_t<Kokkos::Impl::ViewMapping<Kokkos::View<DataType, Properties...>::traits, Kokkos::View<RT, RP...>::traits, Kokkos::ViewTraits<DataType, Properties...>::specialize>::is_assignable_data_type, void> *) [with DataType=char *, Properties=<std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::CudaUVMSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>, RT=char *, RP=<std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::HostSpace::memory_space>, Kokkos::MemoryTraits<0U>>]" 
/builds/muelu/nightly-testing/Trilinos/packages/tpetra/core/src/Tpetra_Details_DistributorActor.hpp(1158): here
            instantiation of "void Tpetra::Details::DistributorActor::doPosts(const Tpetra::Details::DistributorPlan &, const ExpView &, const Teuchos::ArrayView<const size_t> &, const ImpView &, const Teuchos::ArrayView<const size_t> &) [with ExpView=Kokkos::View<char *, std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::HostSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>, ImpView=Kokkos::View<char *, std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::CudaUVMSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>]" 
/builds/muelu/nightly-testing/Trilinos/packages/tpetra/core/src/Tpetra_Details_DistributorActor.hpp(146): here
            instantiation of "void Tpetra::Details::DistributorActor::doPostsAndWaits(const Tpetra::Details::DistributorPlan &, const ExpView &, const Teuchos::ArrayView<const size_t> &, const ImpView &, const Teuchos::ArrayView<const size_t> &) [with ExpView=Kokkos::View<char *, std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::HostSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>, ImpView=Kokkos::View<char *, std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::CudaUVMSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>]" 
/builds/muelu/nightly-testing/Trilinos/packages/tpetra/core/src/Tpetra_Distributor.hpp(640): here
            instantiation of "std::enable_if<<expression>, void>::type Tpetra::Distributor::doPostsAndWaits(const ExpView &, const Teuchos::ArrayView<const size_t> &, const ImpView &, const Teuchos::ArrayView<const size_t> &) [with ExpView=Kokkos::View<char *, std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::HostSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>, ImpView=Kokkos::View<char *, std::conditional_t<true, Kokkos::Cuda::array_layout, Kokkos::Cuda::array_layout>, Kokkos::Device<Kokkos::HostSpace::execution_space, Kokkos::CudaUVMSpace::memory_space>, std::conditional_t<false, void, Kokkos::Experimental::DefaultViewHooks>>]" 
/builds/muelu/nightly-testing/Trilinos/packages/tpetra/core/test/ImportExport2/ImportExport2_UnitTests.cpp(2361): here
            instantiation of "void <unnamed>::Import_Util_UnpackAndCombineWithOwningPIDs_UnitTest<LO, GO, Scalar>::runUnitTestImpl(Teuchos::FancyOStream &, __nv_bool &) const [with LO=int, GO=<unnamed>::longlong, Scalar=double]" 
/builds/muelu/nightly-testing/Trilinos/packages/tpetra/core/test/ImportExport2/ImportExport2_UnitTests.cpp(3076): here

Reproducer:

NODE_TYPE="Cuda" ENABLE_UVM="ON" ./reproducer.sh
cd Trilinos-build/packages/tpetra/core/test/ImportExport2/
make

from https://gitlab-ex.sandia.gov/muelu/nightly-testing

csiefer2 commented 2 days ago

@cgcgcg Yeah, this was a "Doesn't build on MI300+UVM without the fix; but the fix breaks A100+UVM"

Fun times.