Skip to content

fix cuda 13.3 errors#6443

Open
jmackay2 wants to merge 1 commit into
PointCloudLibrary:masterfrom
jmackay2:cuda_13_3
Open

fix cuda 13.3 errors#6443
jmackay2 wants to merge 1 commit into
PointCloudLibrary:masterfrom
jmackay2:cuda_13_3

Conversation

@jmackay2
Copy link
Copy Markdown
Contributor

Upgrading to CUDA 13.3 included an update of thrust. This resulted in the following build failures in the cuda module:

pcl/cuda/common/include/pcl/cuda/point_cloud.h(287)
namespace "thrust" has no member "tuple"

pcl/cuda/common/include/pcl/cuda/point_cloud.h(301)
namespace "thrust" has no member "make_tuple"

pcl/cuda/features/include/pcl/cuda/features/normal_3d_kernels.h(172)
namespace "thrust" has no member "get"

...

This fixes the issue by switching to use cuda::std instead of thrust when there is a newer version of thrust.

Testing

This was tested by building on Ubuntu 24.04 with both CUDA 12.9 and 13.3.

@mvieth
Copy link
Copy Markdown
Member

mvieth commented May 30, 2026

Thank you for the fix. However, I have to say I am a bit hesitant to put these three function into the thrust namespace. pcl/cuda/thrust.h is included by pcl/cuda/point_cloud.h, which is in turn included by several other files. Im am worried that there might be problems if a user project uses PCL and some other library which also uses thrust. I guess the less risky fix would be to replace thrust::tuple, thrust::make_tuple, and thrust::get where they are used within PCL, with a preprocessor check. Or alternatively, something like this:

#if THRUST_MAJOR_VERSION >= 3
#include <cuda/std/tuple>
namespace pcl_thrust {
    using ::cuda::std::tuple;
    using ::cuda::std::make_tuple;
    using ::cuda::std::get;
}
#else
namespace pcl_thrust {
    using ::thrust::tuple;
    using ::thrust::make_tuple;
    using ::thrust::get;
}
#endif

And change thrust::tuple to pcl_thrust::tuple etc. within PCL. What do you think?

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

Successfully merging this pull request may close these issues.

2 participants