Open3D icon indicating copy to clipboard operation
Open3D copied to clipboard

Cannot compile open3d CUDA version on Jetson Thor

Open xu-hui-yao opened this issue 1 month ago • 1 comments

Checklist

Steps to reproduce the issue

I first cloned Open3D by:

git clone https://github.com/isl-org/Open3D.git
cd Open3D

Then, I build Open3D (on Ubuntu 24.04, with CUDA 13.0) with:

rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DPython3_EXECUTABLE=/home/xuhuiyao/anaconda3/envs/torch/bin/python -DBUILD_CUDA_MODULE=ON -DCMAKE_CXX_STANDARD=17 -DCMAKE_CUDA_STANDARD=17 -DCMAKE_CXX_FLAGS="-std=c++17" -DCMAKE_CUDA_FLAGS="-std=c++17"
make -j${nproc}

Error message

/usr/include/c++/13/bits/stl_iterator_base_types.h(216): error: reference to void is not allowed
        typedef _Tp& reference;
                   ^
          detected during:
            instantiation of class "std::iterator_traits<_Tp *> [with _Tp=void]" at line 62 of /home/xuhuiyao/Desktop/workfield/Open3D/build/stdgpu/include/stdgpu/iterator.h
            instantiation of class "std::iterator_traits<stdgpu::device_ptr<T>> [with T=void]" at line 179 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/iterator/iterator_traits.h
            instantiation of class "thrust::THRUST_300001_SM_1100_NS::iterator_system<Iterator> [with Iterator=thrust::THRUST_300001_SM_1100_NS::pointer<void, thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>]" at line 291 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/type_traits/pointer_traits.h
            instantiation of class "thrust::THRUST_300001_SM_1100_NS::detail::is_pointer_system_convertible<FromPtr, ToPtr> [with FromPtr=void *, ToPtr=thrust::THRUST_300001_SM_1100_NS::pointer<void, thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>]" at line 44 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/cuda/std/__type_traits/conjunction.h
            instantiation of type "cuda::std::__4::_And<cuda::std::__4::is_convertible<void *, void *>, thrust::THRUST_300001_SM_1100_NS::detail::is_pointer_system_convertible<void *, thrust::THRUST_300001_SM_1100_NS::pointer<void, thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>>>" at line 298 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/type_traits/pointer_traits.h
            [ 16 instantiation contexts not shown ]
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::cuda_cub::__copy::cross_system_copy(thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<System1, System2>, InputIterator, InputIterator, OutputIterator) [with System1=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, System2=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 115 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/copy.h
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::cuda_cub::copy(thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<System1, System2>, InputIterator, InputIterator, OutputIterator) [with System1=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, System2=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 44 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/copy.inl
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::copy(const thrust::THRUST_300001_SM_1100_NS::detail::execution_policy_base<System> &, InputIterator, InputIterator, OutputIterator) [with System=thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag>, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 75 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/copy.inl
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::detail::two_system_copy(const thrust::THRUST_300001_SM_1100_NS::execution_policy<FromSystem> &, const thrust::THRUST_300001_SM_1100_NS::execution_policy<ToSystem> &, InputIterator, InputIterator, OutputIterator) [with FromSystem=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, ToSystem=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 108 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/copy.inl
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::copy(InputIterator, InputIterator, OutputIterator) [with InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 268 of /home/xuhuiyao/Desktop/workfield/Open3D/cpp/open3d/core/hashmap/CUDA/SlabNodeManager.h

/usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/iterator/iterator_adaptor.h(197): error: initial value of reference to non-const must be an lvalue
      return *m_iterator;
             ^
          detected during:
            instantiation of "thrust::THRUST_300001_SM_1100_NS::iterator_adaptor<Derived, Base, Value, System, Traversal, Reference, Difference>::reference thrust::THRUST_300001_SM_1100_NS::iterator_adaptor<Derived, Base, Value, System, Traversal, Reference, Difference>::dereference() const [with Derived=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::pointer<uint32_t, thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>>, Base=thrust::THRUST_300001_SM_1100_NS::pointer<uint32_t, thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>, Value=thrust::THRUST_300001_SM_1100_NS::use_default, System=thrust::THRUST_300001_SM_1100_NS::use_default, Traversal=thrust::THRUST_300001_SM_1100_NS::use_default, Reference=thrust::THRUST_300001_SM_1100_NS::use_default, Difference=thrust::THRUST_300001_SM_1100_NS::use_default]" at line 204 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/iterator/iterator_facade.h
            instantiation of "Facade::reference thrust::THRUST_300001_SM_1100_NS::iterator_core_access::dereference(const Facade &) [with Facade=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::pointer<uint32_t, thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>>]" at line 374 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/iterator/iterator_facade.h
            instantiation of "thrust::THRUST_300001_SM_1100_NS::iterator_facade<Derived, Value, System, Traversal, Reference, Difference>::reference thrust::THRUST_300001_SM_1100_NS::iterator_facade<Derived, Value, System, Traversal, Reference, Difference>::operator*() const [with Derived=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::pointer<uint32_t, thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>>, Value=fmt::v10::detail::bigint::bigit, System=thrust::THRUST_300001_SM_1100_NS::device_system_tag, Traversal=thrust::THRUST_300001_SM_1100_NS::random_access_traversal_tag, Reference=fmt::v10::detail::bigint::bigit &, Difference=std::ptrdiff_t]" at line 128 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/contiguous_storage.inl
            instantiation of "thrust::THRUST_300001_SM_1100_NS::detail::contiguous_storage<T, Alloc>::pointer thrust::THRUST_300001_SM_1100_NS::detail::contiguous_storage<T, Alloc>::data() [with T=uint32_t, Alloc=thrust::THRUST_300001_SM_1100_NS::detail::no_throw_allocator<thrust::THRUST_300001_SM_1100_NS::detail::temporary_allocator<uint32_t, thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag>>]" at line 161 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/internal/copy_cross_system.h
            instantiation of "OutputIt thrust::THRUST_300001_SM_1100_NS::cuda_cub::__copy::cross_system_copy_n(thrust::THRUST_300001_SM_1100_NS::cuda_cub::execution_policy<D> &, thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::execution_policy<H> &, InputIt, Size, OutputIt, thrust::THRUST_300001_SM_1100_NS::detail::false_type) [with D=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, H=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIt=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, Size=ptrdiff_t, OutputIt=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 188 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/internal/copy_cross_system.h
            instantiation of "OutputIt thrust::THRUST_300001_SM_1100_NS::cuda_cub::__copy::cross_system_copy_n(thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<System1, System2>, InputIt, Size, OutputIt) [with System1=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, System2=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIt=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, Size=ptrdiff_t, OutputIt=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 195 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/internal/copy_cross_system.h
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::cuda_cub::__copy::cross_system_copy(thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<System1, System2>, InputIterator, InputIterator, OutputIterator) [with System1=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, System2=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 115 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/copy.h
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::cuda_cub::copy(thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<System1, System2>, InputIterator, InputIterator, OutputIterator) [with System1=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, System2=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 44 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/copy.inl
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::copy(const thrust::THRUST_300001_SM_1100_NS::detail::execution_policy_base<System> &, InputIterator, InputIterator, OutputIterator) [with System=thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag>, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 75 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/copy.inl
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::detail::two_system_copy(const thrust::THRUST_300001_SM_1100_NS::execution_policy<FromSystem> &, const thrust::THRUST_300001_SM_1100_NS::execution_policy<ToSystem> &, InputIterator, InputIterator, OutputIterator) [with FromSystem=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, ToSystem=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 108 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/copy.inl
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::copy(InputIterator, InputIterator, OutputIterator) [with InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 268 of /home/xuhuiyao/Desktop/workfield/Open3D/cpp/open3d/core/hashmap/CUDA/SlabNodeManager.h

/usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/contiguous_storage.inl(128): error: no suitable constructor exists to convert from "fmt::v10::detail::bigint::bigit *" (aka "unsigned int *") to "thrust::THRUST_300001_SM_1100_NS::pointer<thrust::THRUST_300001_SM_1100_NS::detail::it_value_t<thrust::THRUST_300001_SM_1100_NS::detail::vector_base<uint32_t, thrust::THRUST_300001_SM_1100_NS::device_allocator<uint32_t>>::iterator>, thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>" (aka "thrust::THRUST_300001_SM_1100_NS::pointer<unsigned int, thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>")
    return &*m_begin;
           ^
          detected during:
            instantiation of "thrust::THRUST_300001_SM_1100_NS::detail::contiguous_storage<T, Alloc>::pointer thrust::THRUST_300001_SM_1100_NS::detail::contiguous_storage<T, Alloc>::data() [with T=uint32_t, Alloc=thrust::THRUST_300001_SM_1100_NS::detail::no_throw_allocator<thrust::THRUST_300001_SM_1100_NS::detail::temporary_allocator<uint32_t, thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag>>]" at line 161 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/internal/copy_cross_system.h
            instantiation of "OutputIt thrust::THRUST_300001_SM_1100_NS::cuda_cub::__copy::cross_system_copy_n(thrust::THRUST_300001_SM_1100_NS::cuda_cub::execution_policy<D> &, thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::execution_policy<H> &, InputIt, Size, OutputIt, thrust::THRUST_300001_SM_1100_NS::detail::false_type) [with D=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, H=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIt=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, Size=ptrdiff_t, OutputIt=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 188 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/internal/copy_cross_system.h
            instantiation of "OutputIt thrust::THRUST_300001_SM_1100_NS::cuda_cub::__copy::cross_system_copy_n(thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<System1, System2>, InputIt, Size, OutputIt) [with System1=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, System2=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIt=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, Size=ptrdiff_t, OutputIt=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 195 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/internal/copy_cross_system.h
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::cuda_cub::__copy::cross_system_copy(thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<System1, System2>, InputIterator, InputIterator, OutputIterator) [with System1=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, System2=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 115 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/copy.h
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::cuda_cub::copy(thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<System1, System2>, InputIterator, InputIterator, OutputIterator) [with System1=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, System2=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 44 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/copy.inl
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::copy(const thrust::THRUST_300001_SM_1100_NS::detail::execution_policy_base<System> &, InputIterator, InputIterator, OutputIterator) [with System=thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag>, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 75 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/copy.inl
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::detail::two_system_copy(const thrust::THRUST_300001_SM_1100_NS::execution_policy<FromSystem> &, const thrust::THRUST_300001_SM_1100_NS::execution_policy<ToSystem> &, InputIterator, InputIterator, OutputIterator) [with FromSystem=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, ToSystem=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 108 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/copy.inl
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::copy(InputIterator, InputIterator, OutputIterator) [with InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 268 of /home/xuhuiyao/Desktop/workfield/Open3D/cpp/open3d/core/hashmap/CUDA/SlabNodeManager.h

/usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/iterator/iterator_adaptor.h(197): error: initial value of reference to non-const must be an lvalue
      return *m_iterator;
             ^
          detected during:
            instantiation of "thrust::THRUST_300001_SM_1100_NS::iterator_adaptor<Derived, Base, Value, System, Traversal, Reference, Difference>::reference thrust::THRUST_300001_SM_1100_NS::iterator_adaptor<Derived, Base, Value, System, Traversal, Reference, Difference>::dereference() const [with Derived=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::pointer<uint32_t, thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>>, Base=thrust::THRUST_300001_SM_1100_NS::pointer<uint32_t, thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>, Value=thrust::THRUST_300001_SM_1100_NS::use_default, System=thrust::THRUST_300001_SM_1100_NS::use_default, Traversal=thrust::THRUST_300001_SM_1100_NS::use_default, Reference=thrust::THRUST_300001_SM_1100_NS::use_default, Difference=thrust::THRUST_300001_SM_1100_NS::use_default]" at line 204 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/iterator/iterator_facade.h
            instantiation of "Facade::reference thrust::THRUST_300001_SM_1100_NS::iterator_core_access::dereference(const Facade &) [with Facade=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::pointer<uint32_t, thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>>]" at line 374 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/iterator/iterator_facade.h
            instantiation of "thrust::THRUST_300001_SM_1100_NS::iterator_facade<Derived, Value, System, Traversal, Reference, Difference>::reference thrust::THRUST_300001_SM_1100_NS::iterator_facade<Derived, Value, System, Traversal, Reference, Difference>::operator*() const [with Derived=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::pointer<uint32_t, thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, thrust::THRUST_300001_SM_1100_NS::use_default, thrust::THRUST_300001_SM_1100_NS::use_default>>, Value=fmt::v10::detail::bigint::bigit, System=thrust::THRUST_300001_SM_1100_NS::host_system_tag, Traversal=thrust::THRUST_300001_SM_1100_NS::random_access_traversal_tag, Reference=fmt::v10::detail::bigint::bigit &, Difference=std::ptrdiff_t]" at line 128 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/contiguous_storage.inl
            instantiation of "thrust::THRUST_300001_SM_1100_NS::detail::contiguous_storage<T, Alloc>::pointer thrust::THRUST_300001_SM_1100_NS::detail::contiguous_storage<T, Alloc>::data() [with T=uint32_t, Alloc=thrust::THRUST_300001_SM_1100_NS::detail::no_throw_allocator<thrust::THRUST_300001_SM_1100_NS::detail::temporary_allocator<uint32_t, thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag>>]" at line 169 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/internal/copy_cross_system.h
            instantiation of "OutputIt thrust::THRUST_300001_SM_1100_NS::cuda_cub::__copy::cross_system_copy_n(thrust::THRUST_300001_SM_1100_NS::cuda_cub::execution_policy<D> &, thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::execution_policy<H> &, InputIt, Size, OutputIt, thrust::THRUST_300001_SM_1100_NS::detail::false_type) [with D=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, H=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIt=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, Size=ptrdiff_t, OutputIt=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 188 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/internal/copy_cross_system.h
            instantiation of "OutputIt thrust::THRUST_300001_SM_1100_NS::cuda_cub::__copy::cross_system_copy_n(thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<System1, System2>, InputIt, Size, OutputIt) [with System1=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, System2=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIt=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, Size=ptrdiff_t, OutputIt=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 195 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/internal/copy_cross_system.h
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::cuda_cub::__copy::cross_system_copy(thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<System1, System2>, InputIterator, InputIterator, OutputIterator) [with System1=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, System2=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 115 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/system/cuda/detail/copy.h
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::cuda_cub::copy(thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<System1, System2>, InputIterator, InputIterator, OutputIterator) [with System1=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, System2=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 44 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/copy.inl
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::copy(const thrust::THRUST_300001_SM_1100_NS::detail::execution_policy_base<System> &, InputIterator, InputIterator, OutputIterator) [with System=thrust::THRUST_300001_SM_1100_NS::cuda_cub::cross_system<thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag>, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 75 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/copy.inl
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::detail::two_system_copy(const thrust::THRUST_300001_SM_1100_NS::execution_policy<FromSystem> &, const thrust::THRUST_300001_SM_1100_NS::execution_policy<ToSystem> &, InputIterator, InputIterator, OutputIterator) [with FromSystem=thrust::THRUST_300001_SM_1100_NS::cuda_cub::tag, ToSystem=thrust::THRUST_300001_SM_1100_NS::system::cpp::detail::tag, InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 108 of /usr/local/cuda-13.0/targets/sbsa-linux/include/cccl/thrust/detail/copy.inl
            instantiation of "OutputIterator thrust::THRUST_300001_SM_1100_NS::copy(InputIterator, InputIterator, OutputIterator) [with InputIterator=thrust::THRUST_300001_SM_1100_NS::detail::normal_iterator<thrust::THRUST_300001_SM_1100_NS::device_ptr<uint32_t>>, OutputIterator=__gnu_cxx::__normal_iterator<int *, std::vector<int, std::allocator<int>>>]" at line 268 of /home/xuhuiyao/Desktop/workfield/Open3D/cpp/open3d/core/hashmap/CUDA/SlabNodeManager.h

4 errors detected in the compilation of "/home/xuhuiyao/Desktop/workfield/Open3D/cpp/open3d/core/hashmap/CUDA/CreateCUDAHashBackend.cu".

Open3D, Python and System information

- Operating system: Ubuntu 24.04
- Python version: Python 3.12
- System architecture: arm64
- Is this a remote workstation?: no
- How did you install Open3D?: build from source

Additional information

No response

xu-hui-yao avatar Nov 20 '25 08:11 xu-hui-yao

well, I met the same problem when building Open3D for my jetson agx thor. I use the NVIDIA NGC docker and following the official documentation: https://www.open3d.org/docs/release/builddocs.html and this article: https://www.freesion.com/article/13721541688/

But I met the problem as follows:

CMake Error in cpp/open3d/CMakeLists.txt:
  CUDA_ARCHITECTURES is empty for target "Open3D".


CMake Error in cpp/open3d/core/CMakeLists.txt:
  CUDA_ARCHITECTURES is empty for target "core_impl".


CMake Error in cpp/open3d/ml/contrib/CMakeLists.txt:
  CUDA_ARCHITECTURES is empty for target "ml_contrib".


CMake Error in cpp/open3d/t/geometry/kernel/CMakeLists.txt:
  CUDA_ARCHITECTURES is empty for target "tgeometry_kernel".


CMake Error in cpp/open3d/t/pipelines/kernel/CMakeLists.txt:
  CUDA_ARCHITECTURES is empty for target "tpipelines_kernel".


CMake Error in cpp/tests/CMakeLists.txt:
  CUDA_ARCHITECTURES is empty for target "tests".

I guess that Open3D has no support for SM_110 GPU Architecture? So have you solved the problem?

Logos515 avatar Nov 30 '25 13:11 Logos515

Any update on this? Same issue

spomichter avatar Dec 14 '25 11:12 spomichter

Hi, maintainer of stdgpu here. The error mentioned in the initial post has been recently fixed in stdgpu, i.e. support for CUDA 13 has been added (see https://github.com/stotko/stdgpu/pull/466). That said, the version used in Open3D just needs to be bumped to include that fix.

stotko avatar Dec 14 '25 16:12 stotko

https://github.com/isl-org/Open3D/pull/7370 Compatibility highlights

  • CUDA 13 and ARM
  • PyTorch 2.10.0rc1
  • TensorFlow Nightly 2.21.0
  • LibRealsense 2.57.4

johnnynunez avatar Dec 17 '25 13:12 johnnynunez