Hi,
I am trying to understand how HPX Compute works with CUDA
and wanted to compile the
examples/compute/cuda/data_copy.cu example. Unfortunately,
I'm getting the following error:
/usr/include/c++/5/bits/stl_iterator_base_types.h(154):
error: class
"std::unique_ptr<hpx::parcelset::locality::impl_base,
std::default_delete<hpx::parcelset::locality::impl_base>>"
has no member "iterator_category"
detected during:
instantiation of class
"std::__iterator_traits<_Iterator, void> [with
_Iterator=std::unique_ptr<hpx::parcelset::locality::impl_base,
std::default_delete<hpx::parcelset::locality::impl_base>>]"
(163): here
instantiation of class
"std::iterator_traits<_Iterator> [with
_Iterator=std::unique_ptr<hpx::parcelset::locality::impl_base,
std::default_delete<hpx::parcelset::locality::impl_base>>]"
/usr/local/include/hpx/traits/is_iterator.hpp(43): here
instantiation of class
"hpx::traits::detail::is_iterator<T> [with
T=std::unique_ptr<hpx::parcelset::locality::impl_base,
std::default_delete<hpx::parcelset::locality::impl_base>>]"
/usr/local/include/hpx/traits/is_iterator.hpp(49): here
instantiation of class
"hpx::traits::is_iterator<Iter, Enable> [with Iter=const
std::unique_ptr<hpx::parcelset::locality::impl_base,
std::default_delete<hpx::parcelset::locality::impl_base>>
&, Enable=void]"
/usr/local/include/hpx/runtime/parcelset/locality.hpp(150):
here
/usr/include/c++/5/bits/stl_iterator_base_types.h(155):
error: class
"std::unique_ptr<hpx::parcelset::locality::impl_base,
std::default_delete<hpx::parcelset::locality::impl_base>>"
has no member "value_type"
detected during:
instantiation of class
"std::__iterator_traits<_Iterator, void> [with
_Iterator=std::unique_ptr<hpx::parcelset::locality::impl_base,
std::default_delete<hpx::parcelset::locality::impl_base>>]"
(163): here
instantiation of class
"std::iterator_traits<_Iterator> [with
_Iterator=std::unique_ptr<hpx::parcelset::locality::impl_base,
std::default_delete<hpx::parcelset::locality::impl_base>>]"
/usr/local/include/hpx/traits/is_iterator.hpp(43): here
instantiation of class
"hpx::traits::detail::is_iterator<T> [with
T=std::unique_ptr<hpx::parcelset::locality::impl_base,
std::default_delete<hpx::parcelset::locality::impl_base>>]"
/usr/local/include/hpx/traits/is_iterator.hpp(49): here
instantiation of class
"hpx::traits::is_iterator<Iter, Enable> [with Iter=const
std::unique_ptr<hpx::parcelset::locality::impl_base,
std::default_delete<hpx::parcelset::locality::impl_base>>
&, Enable=void]"
/usr/local/include/hpx/runtime/parcelset/locality.hpp(150):
here
/usr/include/c++/5/bits/stl_iterator_base_types.h(156):
error: class
"std::unique_ptr<hpx::parcelset::locality::impl_base,
std::default_delete<hpx::parcelset::locality::impl_base>>"
has no member "difference_type"
....
and it continues like this for a while.
I am running an Ubuntu 16.04, gcc 5.4.0., cuda 7.5.17
this is the cmake file i used to compile the example
cmake_minimum_required(VERSION 3.3)
project(hpxvr CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(HPX_IGNORE_COMPILER_COMPATIBILITY ON)
find_package(HPX REQUIRED)
include_directories(${HPX_INCLUDE_DIR})
set( CMAKE_CXX_FLAGS "-D_MWAITXINTRIN_H_INCLUDED
-D_FORCE_INLINES -D__STRICT_ANSI__")
add_hpx_executable(cuda_copy_expl
ESSENTIAL
SOURCES data_copy.cu
)
I used to have another two error messages
/usr/lib/gcc/x86_64-linux-gnu/5/include/mwaitxintrin.h(36):
error: identifier "__builtin_ia32_monitorx" is undefined
/usr/lib/gcc/x86_64-linux-gnu/5/include/mwaitxintrin.h(42):
error: identifier "__builtin_ia32_mwaitx" is undefined
which were solved using this workaround -
https://github.com/NVIDIA/nccl/issues/29
As a last case solution we could upgrade to Ubuntu 17 and
hope that the problem resolves itself with newer CUDA
versions, but would rather remain on Ubuntu 16. Do you
have any solution ideas that could help?
Best regards,
Ivan
_______________________________________________
hpx-users mailing list
[email protected]
https://mail.cct.lsu.edu/mailman/listinfo/hpx-users