PointCloudLibrary / PointCloudLibrary/pcl

[CUDA] pcl_find_cuda selects bad compilers

Open
#3,505 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

kind: bug module: cmake module: cuda needs: testing
Dominant language
C++
Stars
11.1k
Forks
4.7k
Avg merge
4d 10h
Merged PRs (30d)
6

Description

Your Environment

  • Operating System and version: Linux
  • Compiler: GCC 9.2, clang 9.0, nvcc 10.1 (gcc 8.3)
  • PCL Version: master/HEAD

Context

While creating a build from scratch, the compilers selected are based on system cc and c++ if CC and CXX are not set (which makes sense)

However, nvcc has a restriction on what compilers can be used with it and as a result we get compilation errors related to missing compiler intrinsic/standard features.

Expected Behavior

If not outright correct detection, a warning/error if CUDA modules are selected and bad compiler versions are used

Current Behavior

Error is known only on compilation. Sometimes, the error is straightforward:
nvcc only works with clang 8 but sometimes, it complains of missing compiler instrinic variables like __is_constant_evaluated

Possible Solution

Modify pcl_find_cuda.cmake to do magic detection and sane warnings

Temporary solution for normal people

Ensure that last line in bashrc is export PATH=$CUDA_PATH/bin:$PATH

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading pcl_find_cuda.cmake and reproduce a clean Linux build with CUDA modules enabled using the compiler combinations listed in the issue. Trace how system cc and c++ are selected when CC and CXX are unset. Done means incompatible compiler versions are detected early and produce a useful warning or error instead of failing during compilation.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.