PointCloudLibrary / PointCloudLibrary/pcl
GPU kinfu textures no longer supported on CUDA 12.0
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
Describe the bug
The GPU kinfu does not build with CUDA 12.0 because this version of CUDA dropped legacy texture references (specifically used in marching_cubes.cu).
Current Behavior
pcl/gpu/kinfu/src/cuda/marching_cubes.cu(51): error: texture is not a template
pcl/gpu/kinfu/src/cuda/marching_cubes.cu(52): error: texture is not a template
pcl/gpu/kinfu/src/cuda/marching_cubes.cu(61): error: identifier "cudaBindTexture" is undefined
pcl/gpu/kinfu/src/cuda/marching_cubes.cu(68): error: identifier "cudaUnbindTexture" is undefined
pcl/gpu/kinfu/src/cuda/marching_cubes.cu(160): error: no instance of overloaded function "tex1Dfetch" matches the argument list
argument types are: (<error-type>, int)
pcl/gpu/kinfu/src/cuda/marching_cubes.cu(344): error: no instance of overloaded function "tex1Dfetch" matches the argument list
argument types are: (<error-type>, int)
pcl/gpu/kinfu/src/cuda/marching_cubes.cu(350): error: no instance of overloaded function "tex1Dfetch" matches the argument list
argument types are: (<error-type>, int)
pcl/gpu/kinfu/src/cuda/marching_cubes.cu(351): error: no instance of overloaded function "tex1Dfetch" matches the argument list
argument types are: (<error-type>, int)
pcl/gpu/kinfu/src/cuda/marching_cubes.cu(352): error: no instance of overloaded function "tex1Dfetch" matches the argument list
argument types are: (<error-type>, int)
9 errors detected in the compilation of "pcl/gpu/kinfu/src/cuda/marching_cubes.cu".
To Reproduce
docker run -it --rm nvidia/cuda:12.0.0-devel-ubuntu22.04
apt update && apt install -y git cmake libeigen3-dev libflann-dev libgl1-mesa-dev libboost-filesystem-dev libboost-date-time-dev libboost-iostreams-dev
git clone https://github.com/PointCloudLibrary/pcl.git
mkdir pcl/build && cd pcl/build
cmake -DBUILD_CUDA=ON -DBUILD_GPU=ON ..
make -j$(nproc)
Your Environment (please complete the following information):
- OS: Ubuntu 22.04
- Compiler: gcc 11.3.0
- PCL Version: HEAD
- CUDA version: 12.0
Possible Solution
Replace texture references with texture objects.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with pcl/gpu/kinfu/src/cuda/marching_cubes.cu and inspect the legacy texture references reported by the CUDA 12.0 compiler. Reproduce the failure in the provided nvidia/cuda:12.0.0-devel-ubuntu22.04 Docker environment using the listed CMake and make commands. Done means the GPU kinfu code builds successfully with CUDA 12.0.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-vision
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100