Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

thrust::device_reference<pcl::cuda::PointXYZRGB> has no member named x or y or z #2321

Closed
ahmadhasan2k8 opened this issue May 25, 2018 · 2 comments

Comments

@ahmadhasan2k8
Copy link

ahmadhasan2k8 commented May 25, 2018

Your Environment

  • Operating System and version: Windows 10
  • CUDA version: 9.2
  • Compiler: Visual Studio 2017
  • PCL Version: Latest Release 1.8.1

Context

Trying to build PCL for windows

Expected Behavior

It should just build. For Linux it builds perfectly fine.

Current Behavior

C:/vcpkg/buildtrees/pcl/src/pcl-1.8.1-4ad2313dce/cuda/sample_consensus/src/sac_model_plane.cu(195): error: class "thrust::device_reference" has no member "x"
detected during:
instantiation of "__nv_bool pcl::cuda::CountPlanarInlier::operator()(const Tuple &) [with Tuple=thrust::detail::tuple_of_iterator_references<thrust::device_reference, thrust::device_reference, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>]"
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\thrust/system/cuda/detail/util.h(290): here
instantiation of "thrust::cuda_cub::transform_input_iterator_t<ValueType, InputIt, UnaryOp>::reference thrust::cuda_cub::transform_input_iterator_t<ValueType, InputIt, UnaryOp>::operator[](thrust::cuda_cub::transform_input_iterator_t<ValueType, InputIt, UnaryOp>::difference_type) const [with ValueType=thrust::detail::intmax_t, InputIt=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr>, thrust::detail::normal_iterator<thrust::device_ptr>, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, UnaryOp=pcl::cuda::CountPlanarInlier]"
c:\program files\nvidia gpu computing toolkit\cuda\v9.2\include\thrust\system\cuda\detail\cub\device\dispatch../../agent/agent_reduce.cuh(290): here
instantiation of "void thrust::cuda_cub::cub::AgentReduce<AgentReducePolicy, InputIteratorT, OutputIteratorT, OffsetT, ReductionOp>::ConsumeTile<IS_FIRST_TILE,CAN_VECTORIZE>(thrust::cuda_cub::cub::AgentReduce<AgentReducePolicy, InputIteratorT, OutputIteratorT, OffsetT, ReductionOp>::OutputT &, OffsetT, int, thrust::cuda_cub::cub::Int2Type<0>, thrust::cuda_cub::cub::Int2Type<CAN_VECTORIZE>) [with AgentReducePolicy=thrust::cuda_cub::cub::AgentReducePolicy<128, 16, 4, thrust::cuda_cub::cub::BLOCK_REDUCE_WARP_REDUCTIONS, thrust::cuda_cub::cub::LOAD_LDG>, InputIteratorT=thrust::cuda_cub::transform_input_iterator_t<thrust::detail::intmax_t, thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr>, thrust::detail::normal_iterator<thrust::device_ptr>, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, pcl::cuda::CountPlanarInlier>, OutputIteratorT=thrust::detail::intmax_t *, OffsetT=int, ReductionOp=thrust::plusthrust::detail::intmax_t, IS_FIRST_TILE=1, CAN_VECTORIZE=0]"
c:\program files\nvidia gpu computing toolkit\cuda\v9.2\include\thrust\system\cuda\detail\cub\device\dispatch../../agent/agent_reduce.cuh(322): here
instantiation of "thrust::cuda_cub::cub::AgentReduce<AgentReducePolicy, InputIteratorT, OutputIteratorT, OffsetT, ReductionOp>::OutputT thrust::cuda_cub::cub::AgentReduce<AgentReducePolicy, InputIteratorT, OutputIteratorT, OffsetT, ReductionOp>::ConsumeRange(thrust::cuda_cub::cub::GridEvenShare &, thrust::cuda_cub::cub::Int2Type<CAN_VECTORIZE>) [with AgentReducePolicy=thrust::cuda_cub::cub::AgentReducePolicy<128, 16, 4, thrust::cuda_cub::cub::BLOCK_REDUCE_WARP_REDUCTIONS, thrust::cuda_cub::cub::LOAD_LDG>, InputIteratorT=thrust::cuda_cub::transform_input_iterator_t<thrust::detail::intmax_t, thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr>, thrust::detail::normal_iterator<thrust::device_ptr>, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, pcl::cuda::CountPlanarInlier>, OutputIteratorT=thrust::detail::intmax_t *, OffsetT=int, ReductionOp=thrust::plusthrust::detail::intmax_t, CAN_VECTORIZE=0]"
c:\program files\nvidia gpu computing toolkit\cuda\v9.2\include\thrust\system\cuda\detail\cub\device\dispatch../../agent/agent_reduce.cuh(360): here
instantiation of "thrust::cuda_cub::cub::AgentReduce<AgentReducePolicy, InputIteratorT, OutputIteratorT, OffsetT, ReductionOp>::OutputT thrust::cuda_cub::cub::AgentReduce<AgentReducePolicy, InputIteratorT, OutputIteratorT, OffsetT, ReductionOp>::ConsumeRange(OffsetT, OffsetT) [with AgentReducePolicy=thrust::cuda_cub::cub::AgentReducePolicy<128, 16, 4, thrust::cuda_cub::cub::BLOCK_REDUCE_WARP_REDUCTIONS, thrust::cuda_cub::cub::LOAD_LDG>, InputIteratorT=thrust::cuda_cub::transform_input_iterator_t<thrust::detail::intmax_t, thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr>, thrust::detail::normal_iterator<thrust::device_ptr>, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, pcl::cuda::CountPlanarInlier>, OutputIteratorT=thrust::detail::intmax_t *, OffsetT=int, ReductionOp=thrust::plusthrust::detail::intmax_t]"
c:\program files\nvidia gpu computing toolkit\cuda\v9.2\include\thrust\system\cuda\detail\cub\device\dispatch/dispatch_reduce.cuh(143): here
[ 9 instantiation contexts not shown ]
instantiation of "T thrust::cuda_cub::reduce_n(thrust::cuda_cub::execution_policy &, InputIt, Size, T, BinaryOp) [with Derived=thrust::cuda_cub::tag, InputIt=thrust::cuda_cub::transform_input_iterator_t<thrust::detail::intmax_t, thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr>, thrust::detail::normal_iterator<thrust::device_ptr>, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, pcl::cuda::CountPlanarInlier>, Size=thrust::detail::intmax_t, T=thrust::detail::intmax_t, BinaryOp=thrust::plusthrust::detail::intmax_t]"
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\thrust/system/cuda/detail/count.h(59): here
instantiation of "thrust::iterator_traits::difference_type thrust::cuda_cub::count_if(thrust::cuda_cub::execution_policy &, InputIt, InputIt, UnaryPred) [with Derived=thrust::cuda_cub::tag, InputIt=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr>, thrust::detail::normal_iterator<thrust::device_ptr>, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, UnaryPred=pcl::cuda::CountPlanarInlier]"
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\thrust/detail/count.inl(51): here
instantiation of "thrust::iterator_traits::difference_type thrust::count_if(const thrust::detail::execution_policy_base &, InputIterator, InputIterator, Predicate) [with DerivedPolicy=thrust::cuda_cub::tag, InputIterator=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr>, thrust::detail::normal_iterator<thrust::device_ptr>, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, Predicate=pcl::cuda::CountPlanarInlier]"
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\include\thrust/detail/count.inl(79): here
instantiation of "thrust::iterator_traits::difference_type thrust::count_if(InputIterator, InputIterator, Predicate) [with InputIterator=thrust::zip_iterator<thrust::tuple<thrust::detail::normal_iterator<thrust::device_ptr>, thrust::detail::normal_iterator<thrust::device_ptr>, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, Predicate=pcl::cuda::CountPlanarInlier]"
(249): here
instantiation of "int pcl::cuda::SampleConsensusModelPlane::countWithinDistance(const pcl::cuda::SampleConsensusModelPlane::Coefficients &, float) [with Storage=pcl::cuda::Device]"
(394): here

Code to Reproduce

Latest github code for PCL should reproduce it

Possible Solution

No clue in this case

@moncio
Copy link

moncio commented Sep 3, 2018

Has there been any solution to this error?

@SergioRAgostinho
Copy link
Member

There might have been. Have you tried compiling what's in the master branch and have a go at it? These are the changes we currently have on our changelog, merged after 1.8.1.

libpcl_cuda:

  • Fix compilation issues with CUDA 9.1 [#2212]
  • Fix some CUDA 9 related errors [#2181]
  • Added CUDA compute capability 5.3 [#1929]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants